You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
packages CLI: add local Packages and list installed state #298
Category: enhancement Summary: Add the local-folder installation tracer and the installed Package inventory.
Current behavior:
Core discovers enabled Package folders at build time, but the CLI cannot install a local Package, record its source, or list enabled and disabled Packages.
Desired behavior: lyracore packages add <local-folder> copies the Package into the checkout. It never creates a symlink. Before copying, it validates the Package name and shape, checks enabled and disabled-name collisions, shows a confirmation prompt, and prints a best-effort trust review. The review reports explicit tables, reducers, hooks, Runtime Scripts, Datascripts, addons, and client overrides. It warns that trusted Rust may do more than the review can detect.
The install records the local Package Source and copied-content identity. It runs preflight after installation and prints the remaining publish and client sync steps without running them. lyracore packages list reports enabled state, Package Source, recorded revision or content identity, drift, and content kinds.
Key interfaces:
lyracore packages add <local-folder>
lyracore packages list
Package provenance stamp
Enabled Package inventory and disabled Package inventory
Acceptance criteria:
Adding a valid local Package copies it into the enabled Package directory and records its source.
Client-only and Rust-only Packages are accepted; when src/ exists, src/mod.rs is required.
Invalid names and enabled or disabled-name collisions fail before copying.
The trust review is deterministic and labels unclassified Rust as trusted code, not as a security guarantee.
A failed preflight leaves a precise recovery message and does not publish.
packages list distinguishes enabled, disabled, clean, and locally drifted Packages.
Out of scope:
Git URL sources
Official Package lookup
Enabling, disabling, removing, or updating Packages
Not closed automatically: preflight is red in the checkout for an unrelated pre-existing reason (check 4 flags importer/scripts/import-world.sh), so the green tail of packages add — where it prints the remaining publish and client sync steps — was covered by a unit test rather than seen end to end. Everything else in the acceptance criteria was verified from the checkout; see #325 for the run.
CLI side: lyracore-cli PR Multi-realm support — realm list at login, N independent DB+gateway stacks #33 (feat/298-packages-add-list, merged 2026-08-24) implements packages add and packages list in src/cmd/packages/ (name/shape validation mirroring module/build.rs::package_ident(), enabled+disabled collision checks, copy-never-symlink, deterministic trust review in review.rs, provenance stamp .lyracore-package.toml in stamp.rs with FNV-1a/64 content identity, preflight after install, prints the remaining publish / client sync steps without running them).
Engine side: PR feat(cli): install a local Package and see what is installed #325 pinned that revision; the current .lyracore-cli-rev (e67044d) is a descendant of the merge. docs/development-cli.md already documents both verbs, the trust review, and drift semantics.
Acceptance criteria check out in the merged code: client-only and Rust-only Packages accepted, src/mod.rs required when src/ exists, collisions fail before copying, failed preflight leaves a recovery message, packages list distinguishes enabled/disabled/clean/drifted.
Activity
Mathih13 commentedon Aug 24, 2026
Implemented across two stacked PRs:
feat/298-packages-add-list, based on Gateway movement input batching — one reducer call per window carrying N players' moves #32)feat/298-cli-pin-packages, based on feat(cli): pinlyracore client sync#322)Merge order: lyracore-cli #31, #32, #33; then LyraCore #321, #322, #325.
Not closed automatically: preflight is red in the checkout for an unrelated pre-existing reason (check 4 flags
importer/scripts/import-world.sh), so the green tail ofpackages add— where it prints the remainingpublishandclient syncsteps — was covered by a unit test rather than seen end to end. Everything else in the acceptance criteria was verified from the checkout; see #325 for the run.Mathih13 commentedon Aug 31, 2026
Verified shipped, closing.
lyracore-cliPR Multi-realm support — realm list at login, N independent DB+gateway stacks #33 (feat/298-packages-add-list, merged 2026-08-24) implementspackages addandpackages listinsrc/cmd/packages/(name/shape validation mirroringmodule/build.rs::package_ident(), enabled+disabled collision checks, copy-never-symlink, deterministic trust review inreview.rs, provenance stamp.lyracore-package.tomlinstamp.rswith FNV-1a/64 content identity, preflight after install, prints the remainingpublish/client syncsteps without running them)..lyracore-cli-rev(e67044d) is a descendant of the merge.docs/development-cli.mdalready documents both verbs, the trust review, and drift semantics.src/mod.rsrequired whensrc/exists, collisions fail before copying, failed preflight leaves a recovery message,packages listdistinguishes enabled/disabled/clean/drifted.