Repository navigation
chore(deps): adopt plugin-check v0.2026295.2128 (kind:local bed teardown via deploy del) - #1029
Conversation
…own via deploy del) A host-rooted (kind:local) bed was torn down with the container verb `charly remove --purge` in both cleanup switches, so every local bed on a venue without a container engine failed its LAST step after every authored assertion had passed (opencharly/plugin-check#129). The merged fix (tag v2026.295.2128, squash 37f4fe6) makes bedInPlace(local|external) the ONE predicate behind bedRootTeardownArgs, and both the pre-run and final cleanup call it; the local failure hint now prints `charly deploy del`. Proved live: check-k3s-shared-containerd (a host: local bed) on a disposable containerd-host guest with this binary — 4 steps: 4 passed, 0 failed, 0 skipped, and [cleanup] PASS (cleanup.log: Removed external deploy ... (local)). The previous binary (v0.2026293.1223) contains no bedRootTeardownArgs symbol. Assisted-by: Claude Code deepseek-v4.1-flash:cloud (fully tested and validated)
Review — PASSWhat the diff doesThe change is exactly what the body claims: one Consistency checks I could re-derive
TestsA dependency pin bump cannot ship new in-repo tests; the appropriate gate is the existing suite plus an artifact-level and live-path check, which the body documents (CI Security / scopeNo secrets, no injection surface, no privilege change, no new dependency beyond the bumped module. Scope is coherent and minimal — no leftover legacy pin, no duplicated implementation, no dead code. CommentsThere are zero comments, so there is no sign-off to weigh and no third-party claim to re-derive. The change stands on its own evidence. Minor notes (non-blocking)
Everything required for a dependency-pin adoption is present and consistent with the diff; nothing in the current state justifies a block. Verdict: PASS ollama-cloud/deepseek-v4.1-flash — action-review. |
Summary
charlypinnedgithub.com/opencharly/plugin-check/candy/plugin-check v0.2026293.1223, which predates two merged producer fixes: opencharly/plugin-check#128 (a nested child's deploy key built from its root) and opencharly/plugin-check#130 (akind:localbed torn down in place, never with the container verb). Without #130 ahost: localbed's cleanup callscharly remove --purge, so a local bed on a venue without a container engine fails its LAST step after every authored assertion passed (opencharly/plugin-check#129).This change is the pin bump to
v0.2026295.2128(tagv2026.295.2128, squash37f4fe6) and its twogo.sumhash lines. Two files, no Go source change. One bump closes #128 and #130 for this pin; in the new modulebedRootTeardownArgs(bed_run.go:335) is the one predicate behind both cleanup switches (bed_run.go:760,bed_run.go:988).Head
fa0382b5e18c89dc4b5f8bd2283cd046ae4d35d2, treeca520dc07e75460cee69723299c85ebf8706e162; baseorigin/main9fd74793, treebe0eb882e33a481f2ed1f660abfdfea2d41439e5.How tested
Every command below ran on the worktree
.worktrees/containerd-crabbox-program/charlypin/charly, headfa0382b5, treeca520dc07e75460cee69723299c85ebf8706e162.The repository's own CI gate (
.github/workflows/ci.yml, thegojob)charly/go.moddeclaresgo 1.26.8, which is the toolchain CI'ssetup-goinstalls fromgo-version-file. The host's Go is 1.27.3, and running golangci-lint under it produced export-data typecheck errors in every module including untouchedtools/*; re-running under the pinnedGOTOOLCHAIN=go1.26.8is the faithful reproduction and is what is pasted here.The core gate (
charly/AGENTS.mdR9)The pin at the artifact boundary
Before = a binary rebuilt from
origin/main9fd74793(pinv0.2026293.1223, version 2026.295.1709), treebe0eb882e33a481f2ed1f660abfdfea2d41439e5. After = the worktree binary above (pinv0.2026295.2128, version 2026.295.2200), treeca520dc07e75460cee69723299c85ebf8706e162.The module source agrees:
grep -rl bedRootTeardownArgsreturns 0 files underplugin-check@v0.2026293.1223and 3 files underplugin-check@v0.2026295.2128.The live R10 bed (the changed path)
check-commands-localis ahost: local,disposable: truebed in this repo'scharly.yml— the exact shape #130 fixes. It ran on the rebuilt worktree binary (driver_version: 2026.295.2200).The bed's
summary.ymlrolls up 6 steps, 6 ok, 0 failed, 0 skipped, and the nested check-live leg reports10 steps: 10 passed, 0 failed, 0 skipped.cleanup.logends withRemoved external deploy a7e4d6f0029f360d (local)— the teardown now uses the deploy verb (charly deploy del), notcharly remove.The
-raceresult, reported in fullgo test -race ./on the root package is RED onTestConnectPluginReady_HonorsACallerCancellation(about 32 s against its 10 s bound) — on this head AND onorigin/main9fd74793with the old pin, whose Go source is byte-identical to this head's. The per_attempt handshake fallback is 120 s, so the ~32 s tracks the test's own 30 sReadyTimeout; the same test passes without-race(4.46 s) and CI's configured suite above is green. It is a pre-existing defect in the connect-cancellation path, not this change, and it is filed asopencharly/charly#1028. No production connect site passes a cancellable context today (plugin_connect_deadline.gousescontext.Background()), so the shipped path is unaffected.Rulebook compliance
AGENTS.md,charly/AGENTS.md, and the/charly-internals:{git-workflow,go,strict-policy,root-cause-analyzer}skills before any git action.-racefailure is non-blocking and separable (identical source fails onorigin/main) and is filed asopencharly/charly#1028. The local golangci-lint export-data failure was an instrument/toolchain error, reproduced on untouched modules and cleared under the pinned 1.26.8 toolchain. The change-class gate above carries zero warnings.podman/systemctlcommand; the bed was driven only throughcharly check run.git statuswas run before any action; all work is in the session worktree.worktrees/containerd-crabbox-program/charlypin/charly; no force-push, no direct push tomain, no hook bypass, and no other session's branch, PR, or file was touched.0before,1after) and the module-source scan (0vs3files); the emitted binary is validated at its boundary, and the changed path executed live in the bed above.scripts/bootstrap-charly.sh) produced2026.295.2200, the binary the bed ran; no new runtime OS dependency, sopackaging:is unchanged.disposable: truetarget (check-commands-local,host: local): PASS, 6 of 6 steps, cleanup throughcharly deploy del.charly/charly.ymlnames the plugin without a version, sogo.modis its only version declaration).Change classification
charlyGo code — a compiled-in plugin's dependency pin. Not documentation-only: no.md, comment-only, or documentation-submodule path is in the diff.fully tested and validated— the class's gate (CI's configured Go job, the corego build/go vet, the R9 build) passed on this tree, and the changed runtime path ran live on a disposable target.charly/946): the extra-raceinstrument is red on a PRE-EXISTING, filed test (opencharly/charly#1028) that fails identically onorigin/mainwith identical source; it is not part of the change-class gate and does not affect the shipped path.Filed issues
TestConnectPluginReady_HonorsACallerCancellationis RED under-race(pre-existing; reproduces onorigin/mainwith identical source); non-blocking for this pin bump.Closes #1026
Agent:
containerd-crabbox-program/charlypin· session8b1c01cf-7f79-4a75-bff8-240415a06208Assisted-by: Claude Code deepseek-v4.1-flash:cloud (fully tested and validated)