Compare commits

...
Author SHA1 Message Date
branderson fbae599618 Merge main back into development, reconciling the cherry-pick
tests / confined (proxy) (pull_request_target) Successful in 1m13s
tests / confined (conversation) (pull_request_target) Successful in 1m24s
tests / runner-env (confined) (pull_request_target) Successful in 35s
tests / confined (shellcheck) (pull_request_target) Successful in 50s
tests / confined (providers) (pull_request_target) Successful in 2m21s
tests / confined (remote) (pull_request_target) Successful in 3m53s
tests / privileged (pull_request_target) Successful in 3m59s
tests / runner-env (privileged) (pull_request_target) Successful in 38s
tests / confined (static) (pull_request_target) Successful in 5m11s
tests / confined (project) (pull_request_target) Successful in 5m21s
tests / confined (config) (pull_request_target) Successful in 7m11s
tests / confined (audit) (pull_request_target) Successful in 9m52s
main carries #173, which took the plugin-seeding fix and the launch
optimisation across without Cline. Cherry-picking made the two branches
diverge by construction: the same changes exist on both with different
commit identities, so the release merge conflicts on exactly the files
that were carried.

Three conflicts, all the same shape - main holds the cherry-picked state
and development holds what that state became. Resolved to development's
side in each case, after checking that nothing only main had is dropped:
the harness hook list is a strict superset, the entrypoint's seed loop is
the same loop further down the file, and the guard descriptions were
reworded when the PATH shadows stopped depending on the harness.
2026-08-24 01:01:33 -07:00
branderson c57c6ba778 Merge pull request 'Bring the plugin fix and the launch optimisation to main, without Cline' (#173) from main-without-cline into main
Reviewed-on: #173
Reviewed-by: branderson <brad@branderson.io>
2026-08-22 01:44:54 -07:00
branderson 1e6711d1b2 Carry the two static-test helpers the plugin change depends on
tests / confined (conversation) (pull_request_target) Successful in 58s
tests / confined (proxy) (pull_request_target) Successful in 1m12s
tests / confined (providers) (pull_request_target) Successful in 2m1s
tests / confined (remote) (pull_request_target) Successful in 3m31s
tests / runner-env (privileged) (pull_request_target) Successful in 34s
tests / confined (project) (pull_request_target) Successful in 4m48s
tests / confined (audit) (pull_request_target) Successful in 8m22s
tests / runner-env (confined) (pull_request_target) Successful in 35s
tests / confined (shellcheck) (pull_request_target) Successful in 53s
tests / confined (static) (pull_request_target) Successful in 2m59s
tests / privileged (pull_request_target) Successful in 3m51s
tests / confined (config) (pull_request_target) Successful in 6m7s
Both came from the Cline branch, which is not on this branch, and the plugin
change was written against them.

lib() runs a function from the provider library in a subshell, the way
providers.bats does. Its absence here is not only a missing convenience: the
test added with the briefing work already calls it, so `lib manifest_get
harness claude-code briefing_args` ran as a command that does not exist, `run`
captured the 127 and its message as output, and the assertion that the output
is non-empty passed on that. The test has been asserting nothing on this
branch since it landed.

The other is the rule that a plugin function whose name starts with an
underscore is the plugin's own helper rather than a misspelled hook. The
plugin change adds _plugin_version_mounts, which without this reads as a hook
core never calls.

Both are byte-identical to the versions on development, so the merge that
eventually brings Cline across sees the same content on both sides rather
than two spellings of it.
2026-08-22 01:23:36 -07:00
branderson 8d61332742 Let a session update a plugin, by seeding the tree instead of mounting it
Cherry-picked from #172, which landed on development after the Cline harness.
Cline is deliberately not carried across with it: it has not been exercised
beyond its own tests yet, and holding it back is the point of taking this
route rather than merging development whole.

Three hunks needed adapting, all of them places where the Cline branch had
added something adjacent: the harness hook list gains harness_seed without
Cline's two, docker-compose passes SANDBOX_HARNESS_SEED without the
briefing_path variable that only Cline uses, and entrypoint.sh keeps the
argument-only briefing block this branch already had rather than the
two-route version. Nothing else differed.

The change itself is unmodified. ~/.claude/plugins was mounted read-only,
which meant Claude Code could neither materialise a plugin update nor record
it, so the plugin was left at a version the catalogue no longer matched -
presenting as a plugin that would not load, fixable only by running Claude
Code on the host and restarting. What the harness rewrites is now seeded as a
writable copy it owns, and each already-installed version stays a read-only
mount of the host's.
2026-08-22 01:23:36 -07:00
branderson d356191859 Merge commit 'efc5d63' into main-without-cline 2026-08-22 01:09:15 -07:00
branderson 86e1a5be71 Merge pull request 'Release: the harness-decoupling programme, and a briefing that actually arrives' (#168) from development into main
Reviewed-on: #168
Reviewed-by: branderson <brad@branderson.io>
2026-08-21 20:12:04 -07:00
branderson fce3dbc2ac Merge pull request 'Release: epitaph, the threat model, and the development branch process' (#132) from development into main
Reviewed-on: #132
Reviewed-by: branderson <brad@branderson.io>
2026-08-13 17:53:32 -07:00

Diff Content Not Available