Unify LDS shell, core and CLI execution - #22
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
Unifies LocalDevStack's execution UX around a new canonical
lds shellcommand while preserving the existing hardened Core/CLI execution substrate and legacy compatibility surfaces.lds shellCanonical forms:
lds shelllds shell <target>lds shell <target> [--] <command> [args...]lds shell <target> --shell <shell-expression>lds shell <target> --interactive <command> [args...]Bare selector
lds shellwith no arguments presents a stable numbered catalog grouped as:The selector accepts a global number or exact name. Collisions require a qualified selector such as
domain:,app:,service:,container:, orutility:tools.Explicit target resolution
Unqualified targets resolve deterministically:
tools;server-tools:/app/<target>;There is no fuzzy matching, implicit case conversion, or hostname-shape guessing. Image names are not implicitly instantiated.
Execution behavior
/app;/app, then/;/app/<name>;--shellis the explicit shell-syntax escape hatch;--interactiveuses the real-TTY interactive argv helper;Compatibility consolidation
The following surfaces now share the same normalized shell-context execution layer instead of maintaining parallel generic execution orchestration:
lds shelllds corelds clilds stack exec/lds execlds tools sh|exec|shell-execlds uiLegacy contracts remain intentionally narrow where required:
cliremains service/container-only;corekeeps its existing domain behavior;stack execremains Compose-service-only;tools fileremains inspection functionality.No runtime deprecation warnings are emitted in this release; compatibility is documented instead so existing automation stays quiet.
Hardening retained
lib/container-exec.shsubstrate;Validation
Final head:
de5dd8f0ae2185ab3c80c713591ae4fd6c32976bFinal push run #1119: green.
Final pull-request run #1145: green.
Validated:
The completed shell-unification plan has been retired, and the docs contract again rejects lingering completed planning artifacts under
docs/plans.Branch is synchronized with
main(0 commits behind).No merge performed.
Documentation audit
User-facing documentation was rechecked against the unified shell implementation after the code work:
utility:tools;lds shellas a first-check navigation surface;lds shellinstead oflds core/lds clias the primary workflow;lds shell service:<name>for normal command/shell execution;utility:tools;llmis an operational alias whilelds shell service:<name>is intentionally exact;Remaining references to
core,cli,stack exec,exec, andtools share intentional compatibility documentation only.Documentation build and documentation contract are green on PR run #1145.