docs: archive superseded records, rootless-backend reference, evaluations (#40, #41) - #44
Merged
Conversation
…0.0.22 ddev-e2e-test.md header said 'PLANNED — not implemented' but the suite shipped with 0.0.21 (make e2e-ddev, run-ddev.sh, DD0-DD14, camino + bare-origin tiers, first green CI run 2026-08-23). Status now reflects that, records the two as-built deltas (golden image save/load tar instead of docker commit v1; weekly CI schedule still pending) and the phase table is marked complete. project-history-summary.md gains the 0.0.20 (dev-owned mode, #23/#24), 0.0.21 (real-ddev e2e suite, TUI mode line, prompt-free wrapper) and 0.0.22 (headless ecosystem mode #42, root-equivalent audit #37, skills-only .claude migration) rows — problem -> decision, sourced from the tag ranges.
Move legacy/superseded documents out of the live tree (mirroring the subfolder structure — _archive/design/, _archive/security/): - design/: container-tools (implemented; how-to is the user doc), ddev-sandbox (superseded by ddev-working), docker-rootless (superseded in parts), improve-docs (docs overhaul landed), plan-ui-tui-opencode (implemented), ux-improvement (decided; conventions.md is living), ddev-as-user-issues (planning record; issues realized via e2e suite) - security/: proof-1/2/3 (analyses of the pre-soft-model era; security-model.md is current) All inbound links and code-comment pointers updated to the _archive paths (wrapper.md, conventions.md, ddev-working.md, ddev-e2e-test.md, install.sh, update.sh, wrapper, ui.sh, setup-container-backend.sh, kit-mode.tsx, tests incl. tests/ux). docs/README.md and AGENTS.md describe the new layout; _archive/README.md states the convention. Link check, ShellCheck, and the full unit suite pass.
…e archive docker-rootless.md was archived wholesale, but its current sections (selection defaults, provisioning reference incl. subuid/subgid allocation, host impact, podman-CLI path, ddev gate) are live design reference the code points at. New docs/design/rootless-backend.md holds them, rewritten for the soft-only model (ACL rationale dropped, e2e proofs referenced). setup-container-backend.sh + both e2e runners now point at the living doc instead of _archive; docs/README.md lists it. Archived original stays untouched as history.
…ddons (#41) New docs/evaluate/ section: one record per tool/addon plus per-area indexes and a verdict vocabulary. container-tools/ evaluates bubblewrap (conflicting — the mount-namespace boundary excludes ddev's shared filesystem), opencode-sandbox (conflicting as default; interesting only as a per-project network egress fence) and Docker sbx (not applicable — local-microVM alternative model, replaces the kit, WSL2 KVM blocker). ddev-addons/ evaluates trebormc/ddev-opencode (parallel model, config drift, in-container sudo), trebormc/ddev-ai-ssh (foreign-agent sidecar infra the one-owner model does not need) and e0ipso/ddev-assistant-opencode (agent inside the app container — inverts the separation goal, though notably the kit's soft-layer config would apply). Cross-cutting: every hard boundary lands on the layer the kit deliberately leaves soft for ddev.
All five evaluable repos now checked out under github/ (workspace) — re-verify each record against the pinned commits and stamp the source lines: - bubblewrap @ 2f55bae: setuid-deprecation + userns claims hold; note the new upstream --not-a-security-boundary fail-open flag - opencode-sandbox @ 328c963: hooks, config keys and explicit fail-open (Windows + swallowed setup errors) confirmed in src/ - ddev-opencode @ b972091: sleep-infinity sidecar, DDEV_UID user, passwordless-ALL sudoers line, auth.json-only credential mount, ro host config deep-merge cascade, vendored sshd confirmed - ddev-ai-ssh @ cf26f3e: eval ForceCommand, PermitRootLogin no, per-project ed25519 keys confirmed - ddev-assistant-opencode @ 5cb552b: correction — the FULL ~/.local/share/opencode is mounted (auth.json included), secret posture even weaker than first recorded docker-sbx stays research-only (closed source, no repo).
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.
What's in here
Docs-only branch: status corrections, a new
docs/_archive/structure, aliving design reference carried out of the archive, and evaluation records
for the open research issues #40 and #41.
Status corrections
design/ddev-e2e-test.mdsaid "PLANNED — not implemented" but the suiteshipped with 0.0.21 (
make e2e-ddev, DD0–DD14, camino + bare-origintiers, first green CI run 2026-08-23). Status now reflects that, records
the two as-built deltas (golden image via save/load tar instead of
docker commit; weekly CI schedule still pending) and marks the phasetable complete.
design/project-history-summary.mdgains the 0.0.20 (dev-owned mode),0.0.21 (real-ddev e2e suite, TUI mode line, prompt-free wrapper) and
0.0.22 (headless ecosystem mode, root-equivalent audit, skills-only
.claudemigration) rows — problem → decision, sourced from the tagranges.
docs/_archive/
Superseded or purely historical records move out of the live tree
(
_archive/design/,_archive/security/— mirroring the structure):plan-ui-tui-opencode, ux-improvement, ddev-as-user-issues
All inbound links and code-comment pointers updated (wrapper.md,
conventions.md, ddev-working.md, install.sh, update.sh, wrapper, ui.sh,
setup-container-backend.sh, kit-mode.tsx, tests incl. tests/ux).
docs/README.md+AGENTS.mddescribe the new layout;_archive/README.mdstates the convention.rootless-backend.md (new living reference)
docker-rootless.mdwas archived wholesale, but its current sections arelive design reference the code points at. New
design/rootless-backend.mdholds them, rewritten for the soft-only model: selection & defaults,
provisioning reference (subuid/subgid allocation, linger, router ports),
host impact, podman-CLI path, ddev gate.
setup-container-backend.shandboth e2e runners now point at the living doc; the archived original stays
untouched as history.
Evaluations (#40, #41)
New
docs/evaluate/section: one record per tool/addon, per-area indexes,verdict vocabulary. All five evaluable repos verified against pinned local
clones; verdicts:
boundary excludes ddev's shared filesystem; confirms the pre-0.0.11
outcome); opencode-sandbox — conflicting as default (breaks
~/.ddev,image pulls, DOCKER_HOST; fail-open confirmed in code), interesting only
as a per-project network fence; Docker
sbx— not applicable (localmicroVMs replace the kit's model; WSL2 KVM blocker; closed source).
model: second opencode home, config drift, in-container passwordless
sudo); trebormc/ddev-ai-ssh — not applicable (foreign-agent sidecar
infra the one-owner model does not need); e0ipso/
ddev-assistant-opencode — conflicting (agent inside the app container
inverts the separation goal — though notably the kit's soft-layer config
would apply; correction from source: the full
~/.local/share/opencodeincl.auth.jsonis mounted).Cross-cutting: every hard boundary lands on the layer the kit
deliberately leaves soft for ddev.
Testing
Docs link check green; ShellCheck + full unit suite green (code changes
are comment-path updates only).
Closes #40
Closes #41