Skip to content

feat(shell): plan safe BundleDock workspace initialization - #83

Merged
wstein merged 7 commits into
mainfrom
codex/81-bundledock-shell-policy
Oct 16, 2026
Merged

wstein merged 7 commits into
mainfrom
codex/81-bundledock-shell-policy

Conversation

@wstein

@wstein wstein commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

Implement a bounded executable shell-policy port for follow-up to #81: future new-session launchers can obtain deterministic toolbox-last PATH, toolbox-first XDG data directories, guarded interactive bash/zsh snippets, and complete shortcuts opt-out. Every plan forces BDOCK_STARSHIP=0, including inherited enablement and absent attachment. The port performs no effects and grants no artifact execution or attachment trust.

Draft dependency: this branch builds on unmerged installable-pilot 832dd63000257bad01656154b639251d643f2a2d. The main-target diff includes that prerequisite history; review this slice using pilot baseline…policy head. Owner-merged design #82 is retained. No existing T009 provider/schema/mount admission or accepted feature tasks are widened. The current main comparison conflicts with this unmerged prerequisite history, so no synthetic main-merge CI is available. Promote the prerequisite through its own owner-reviewed route, then restack the owned policy commits and refresh exact-head review/checks; accepted pilot history is not rewritten here.

Validation: failure-first behavior cases observed before implementation; focused Go tests/vet and formatting pass; Bash and manual zsh interactive/noninteractive checks use harmless surrogate fixtures. Independent Sol design review CLEAR; independent Sol code review CLEAR at exact head ea8d5b4a04392ff6440df52287f92935ac5967b8. Acceptance inventory pins all 23 parent/subcase identities without changing prior requirements. Repository structure, inventory schema and whitespace checks pass; final pinned Linux canonical CI passed: 850 Python outcomes with zero raw failures/errors, 464 host-agent Go, 162 API-client Go, 1 CLI Go and 187 ExUnit outcomes; all required IDs present. The PR stays draft for the prerequisite/main-conflict gate. Native make check was attempted and failed under the unintended system Python 3.9/toolchain and sandbox; those raw failures are retained and are not reported passing.

Contract, proposed Feature 007, and evidence/gaps distinguish this tested planning slice from missing resolver/attacher/new-session launcher adoption. Actual Linux read-only mounts, immutable artifact verification, image rc order, all-four-shell vendor behavior and prompt-rendering sentinels remain unverified. The historical issue was auto-closed by #82; this PR does not claim full workspace integration, choose shared-HOME prompt trust, or activate anything.

Refs #81.

@wstein

wstein commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

Restacked (H51:b): this PR now builds on the pilot PR instead of carrying it. It holds only the 5 shell-policy commits for spec 007 (refs #81).

  • The earlier merge of main into this branch is gone, so history is linear.
  • That merge had resolved a conflict by keeping both versions of a paragraph in docs/papers/bundledock-workspace-shell.md. The rebase drops the duplicated lines.

Not yet: independent review of this exact head. Draft until the pilot PR merges.

🤖 Generated with Claude Code

wstein added a commit that referenced this pull request Oct 16, 2026
c3ce22a and 036e8e0 predate the rebase; point to PR #83 for the review
of the current head.

Refs: #81

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@wstein
wstein force-pushed the codex/81-bundledock-shell-policy branch from c4792e8 to 5430b30 Compare October 16, 2026 10:35
wstein added a commit that referenced this pull request Oct 16, 2026
c3ce22a and 036e8e0 predate the rebase; point to PR #83 for the review
of the current head.

Refs: #81

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@wstein

wstein commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

Review CLEAR on c4792e8 (Opus 5.5). Restacked onto pilot 75526bb (CI boundary fix); git range-diff shows every commit identical, so the review carries over. make check on this head: pending.

@wstein
wstein force-pushed the pilot/installable-pilot-pr branch from 75526bb to 7656115 Compare October 16, 2026 10:42
@wstein
wstein force-pushed the codex/81-bundledock-shell-policy branch from 5430b30 to 6f36269 Compare October 16, 2026 10:42
wstein added a commit that referenced this pull request Oct 16, 2026
c3ce22a and 036e8e0 predate the rebase; point to PR #83 for the review
of the current head.

Refs: #81

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
wstein added a commit that referenced this pull request Oct 16, 2026
The split from PR #83 rebased every pilot commit, so evidence IDs cited
in the plan no longer resolve on the branch. Map them by subject, mark
them historical, and record the independent review's fixed and deferred
findings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wstein

wstein commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

Rebased onto main 54a002f after #95 merged; git range-diff shows every patch identical (for #83 only one context line in docs/index.md differs), so the review carries to 6f36269. make check on this head: pending.

@wstein

wstein commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

Ready per owner: review CLEAR on this head; local make check replaced by one final check on main after the stack merges (owner rule).

@wstein
wstein force-pushed the pilot/installable-pilot-pr branch from 7656115 to 866e46c Compare October 16, 2026 11:19
wstein added a commit that referenced this pull request Oct 16, 2026
c3ce22a and 036e8e0 predate the rebase; point to PR #83 for the review
of the current head.

Refs: #81

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@wstein
wstein force-pushed the codex/81-bundledock-shell-policy branch from 6f36269 to 2686b2d Compare October 16, 2026 11:19
@wstein

wstein commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

Restacked onto pilot 866e46c; git range-diff identical, review carries to this head.

@wstein
wstein force-pushed the pilot/installable-pilot-pr branch from 866e46c to 2235c20 Compare October 16, 2026 11:31
wstein added a commit that referenced this pull request Oct 16, 2026
The split from PR #83 rebased every pilot commit, so evidence IDs cited
in the plan no longer resolve on the branch. Map them by subject, mark
them historical, and record the independent review's fixed and deferred
findings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Base automatically changed from pilot/installable-pilot-pr to main October 16, 2026 11:31
wstein added a commit that referenced this pull request Oct 16, 2026
The split from PR #83 rebased every pilot commit, so evidence IDs cited
in the plan no longer resolve on the branch. Map them by subject, mark
them historical, and record the independent review's fixed and deferred
findings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
wstein and others added 7 commits October 16, 2026 13:32
Separate deterministic shell planning from missing attachment and launcher authority so the safe default-deny slice is reviewable without widening T009.

Refs: #81
Pin denial, layout refusals, path ordering, opt-out and idempotence before behavior. The compiled stub fails the intended behavior cases.

Refs: #81
Give future new-session launchers deterministic image-first tool paths and guarded startup fragments while agent-writable prompt inputs remain disabled. This pure policy performs no attachment or execution.

Refs: #81
Keep observed unit and surrogate results distinct from missing artifact, mount and all-shell runtime acceptance. Preserve the independent review and failure-first trail for the main-target dependent draft.

Refs: #81
Fail closed if the new policy package or reviewed planning/refusal subcases disappear from application acceptance. Append only its 23 identities while preserving every prior gate and required outcome.

Refs: #81
The refusal table did not cover a deleted bin entry, nil Entries or
wrong-length digest and revision values. Add them as subtests, register
their IDs in the CI acceptance manifest, and resolve bash via LookPath,
failing rather than skipping since this is a required acceptance test.

Refs: #81

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
c3ce22a and 036e8e0 predate the rebase; point to PR #83 for the review
of the current head.

Refs: #81

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@wstein
wstein force-pushed the codex/81-bundledock-shell-policy branch from 2686b2d to 013c58b Compare October 16, 2026 11:32
@wstein

wstein commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

Restacked onto main e82167b after #96/#91 merged; range-diff identical, review carries to 013c58b.

@wstein
wstein merged commit 0990e89 into main Oct 16, 2026
3 checks passed
@wstein
wstein deleted the codex/81-bundledock-shell-policy branch October 16, 2026 11:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant