Repository navigation
chore(deps): adopt plugin-task v0.2026297.2108 — the plugin half of the data channel - #1068
Conversation
…he data channel `plugin-task` is compiled into the charly binary, so the pinned module version IS the behaviour of `charly task`. `charly/go.mod:141` moves `github.com/opencharly/plugin-task/candy/plugin-task` from v0.2026297.1542 to v0.2026297.2108, and `charly/go.sum` moves with it, derived by `go mod tidy`: the superseded v0.2026297.1542 pair goes and the live v0.2026297.2108 pair arrives. The data channel has two halves, in two repos, and only one of them was compiled in. The SDK's seam (`kit.RunnerConfig.StepEnv`) came with sdk v0.2026297.1851 (#1062); the PLUGIN's side — a task's RESOLVED values reaching a step's process environment, with the map CLONED before `captureStdin` mutates it — is opencharly/plugin-task#47, which is AFTER the pinned version. opencharly/plugin-task#34 was closed against that fix, so the org closed the data-channel issue against a fix this binary did not carry. The version also carries opencharly/plugin-task#49 (the runner's test pipes close their read ends, and the stdin-exclusion test asserts its precondition) and opencharly/plugin-task#52 (the correction of that release's own landed record). The two versions' own `candy/plugin-task/go.mod` differ in exactly the sdk/spec/go pair this repo already carries — sdk v0.2026297.1851, spec v0.2026296.1036, go 1.26.8 — so the bump needs no other change. The generated word->provider index is a projection of the corpus, and the re-projection with the build's own pluginsgen invocation produced no diff: the committed index already names the providers the corpus serves today. Closes #1064 Agent: charly *Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated)*
The branch carries this repo's main (facd361), so the change-class gate ran on exactly the tree this PR's checks will run and the diff against main is the two files this change names. The change itself is the commit below: the plugin-task module pin, the plugin half of the data channel. Agent: charly *Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated)*
|
STATUS — the plugin half of the data channel is open as a PR, with its premise machine-checked.
Agent: charly Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated) |
Review — PASSWhat the diff doesTwo files, both mechanical:
That is Correctness and internal consistency
TestsNo test files change, which is correct for a module-pin bump — the changed behaviour is the pinned module's behaviour, exercised through the compiled-in plugin path. The body routes the verification to the repo's core gate ( Honesty of the bodyEvery checkable number reproduces against the diff: 2 files, +3/−3, the two named files, the single pin move, the old pair gone. The negative-control claim (gate fails if the old pin already carried CommentsOne comment, by @aitrawog (the PR author), timestamped after the push. It is a status update, not an approval, and no designated maintainers are configured for this run, so it is not a sign-off and I do not treat it as one. Its claims re-derive cleanly against current state: head SHA matches, branch/base match, the file set and pin move match, and the filed issues are stated as filed rather than as fixed. Nothing stale, nothing contradicted. The phrase "spliced log" is the author describing how the body was assembled from the gate's own output; it is an odd word choice but the substance — the gate ran on this head and returned Non-blocking notes (no action required for merge)
The change is coherent, minimal, complete for its stated class, and honest about what it does and does not prove. Verdict: PASS ollama-cloud/deepseek-v4.1-flash — action-review. |
|
STATUS — the branch now carries
Agent: charly Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated) |
Review — PASSWhat the diff isTwo files, both mechanical and internally consistent:
That is Correctness and internal consistency
TestsNo test files change. For a compiled-in plugin's module pin this is right: the changed behaviour is the pinned module's behaviour, exercised through the core gate and the R9 build the body routes verification to. Asking for a new unit test here would be asking this repo to test another repo's code. Security / scopeNo secrets, no new dependency introduced by this diff (the indirect set is unchanged in the lock), no source, schema, generated file or unrelated churn. The superseded hash pair is removed — no dead legacy pin left behind. Comments, re-derived against current state
No designated maintainers are configured for this run, so no comment counts as a sign-off; the change must stand on its own evidence, and it does. Non-blocking notes (no action required to merge)
The change is minimal, coherent for its stated class, honest about what it does and does not prove, and its only checkable numbers reproduce exactly against the diff. Verdict: PASS ollama-cloud/deepseek-v4.1-flash — action-review. |
The org ruleset judges a branch against a strict up-to-date policy, so `main` comes IN — by merge, never by a rebase and never by a reset. The merge brought in two commits, and they touch the module manifests and this repo's CHANGELOG: #1068's squash (the plugin-task pin that closes the plugin half of the data channel) and its merge-time changelog. The diff this branch carries against its base is therefore the eight files the PR body names, and the change-class gate ran on this merge commit — a re-gate, because the incoming merge moves the module lock the gate's build reads. Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated)
Summary
Head
5e0c084647e428be9d500ce460c79ca2908d47c2— 2 files changed, 3 insertions(+), 3 deletions(-).The data channel has two halves, in two repos, and this binary carried only
one of them. The SDK's seam —
kit.RunnerConfig.StepEnv— came with sdkv0.2026297.1851 (#1062). The PLUGIN's side, which is the half
that actually opens the channel — a task's RESOLVED values reach a step's
process environment, with the map CLONED before
captureStdinmutates it — isopencharly/plugin-task#47, which is after the pinned version.
opencharly/plugin-task#34 was closed against that fix, so the org closed the
data-channel issue against a fix the shipped binary did not carry.
charly/go.mod:141movesgithub.com/opencharly/plugin-task/candy/plugin-taskfrom v0.2026297.1542 to v0.2026297.2108, and
charly/go.summoves with it,derived by
go mod tidy: the superseded v0.2026297.1542 pair goes and the livev0.2026297.2108 pair arrives.
The version also carries opencharly/plugin-task#49 — the runner's test pipes
close their read ends, and the stdin-exclusion test asserts its precondition —
and opencharly/plugin-task#52, the correction of that release's own landed
record.
The split is measured, not asserted, and the measurement is in the gate
below. The old pin's source carries no
StepEnvanywhere; the new pin'scarries it in the runner and in its test; the SDK carries the seam. The gate
asserts all three, and it FAILS if the old pin turns out to carry the channel
too — in which case this diff buys nothing and the premise is false.
Nothing else in the diff moves, and the reason is visible in the two module
versions' own manifests. The new version's
candy/plugin-task/go.modasksfor a newer
go(1.26.8), a newersdk(v0.2026297.1851) and a newerspec(v0.2026296.1036) — all three the versions this repo already carries — and it
adds and moves INDIRECT requirements as well (containerd, logrus, go-toml,
golang.org/x/net, grpc, protobuf). This repo's lock already pins the newer of
each pair, so
go mod tidyre-derives the same indirect set and the ONLY pairthat moves is plugin-task's own. The COMPLETE diff of the two manifests is
pasted below — no hunk is elided.
The generated word→provider index is a PROJECTION of the corpus, and the
re-projection with the build's own
pluginsgeninvocation produced no diff toit: the committed index already names the providers the corpus serves today.
The branch carries
main. The head is a merge of this repo'smain(
ad7e4e67) intofeat/pt-2108, so the evidence below was produced on thetree the PR's own checks will run, and the diff against
mainis exactly thetwo files named below.
charly/go.modv0.2026297.1542→v0.2026297.2108charly/go.sumgo mod tidy: the superseded v0.2026297.1542 pair goes, the live v0.2026297.2108 pair arrivesHow tested
The head this body describes
The branch update, and what it brought in. The org ruleset judges the
branch against a strict up-to-date policy, so the branch was brought up to
mainwith a merge — never a rebase, never a reset, never a history rewrite.The merge brought in exactly two commits, and neither touches a Go file, a
module pin or a schema: #1067's release-binary toolchain fix
and the changelog that records it. The diff this PR carries against its base is
therefore the same as it was — still
charly/go.modandcharly/go.sum, stillthe same +3/-3 — and the gate below ran on the MERGE COMMIT itself, not on the
pre-merge head.
The change-class gate, on the committed tree this body describes. A compiled-in
plugin's module version IS the behaviour of
charly task, so the gate that ownsthis diff is this repo's own core Go gate —
go test ./...andgo vet ./...from
charly/, as this repo'sAGENTS.mdstates ("The core gate isgo test ./...andgo vet ./...fromcharly/, then the R9 build above") — and thenthe R9 build, the worktree-local CalVer-stamped binary. The build also runs the
repo's own generated-file guard, and the gate asserts the tree is clean after
it. The gate then checks the DATA CHANNEL in the two module versions, and
finally the head it ran on. The whole gate log is pasted below.
The pin, and what the two module versions' own manifests carry. The
complete diff — every hunk, nothing elided:
The
go/sdk/speclines are the DIRECT pair, and this repo already carriesexactly those three versions (
charly/go.moddeclaresgo 1.26.8, sdkv0.2026297.1851, spec v0.2026296.1036). The indirect lines move too, and they
cost this repo nothing: its own lock already pins the newer of each pair, so
the re-derived
charly/go.sumdiffers from the old one by exactly plugin-task'sown hash pair.
Rulebook compliance
/charly-internals:git-workflow,/charly-internals:go,/charly-internals:strict-policyand/charly-internals:root-cause-analyzerwere loaded before the first action, and this repo's ownAGENTS.md("R9 and the core Go gate", "The pin-currency control") was read for the class this change falls in.mods-tidytask tidies thetools/*modules and does not cover the core module's lock, so a core-module bump has no canonical tidy path: ago getbump that is not followed by ago mod tidyleaves the superseded hash pair behind, and nothing in the repo detects that. FILED as charly/go.sum can carry a superseded module version's hash pair: nothing checks that the core module's lock is the tidy artifact of its go.mod #1058; this diff is one instance of its remedy, not its closure. A second finding — the trackedgo.work.sumholds 180 module@version lines (167 distinct pairs), and 134 of them name a version no lock in this repo carries, a fossil of the pre-cutover workspace, owned by no generator and read by no check — is FILED as go.work.sum is a fossil lock: 174 of its 180 entries name versions no lock carries, and nothing prunes it #1065, and the same issue's own cutover now deletes that fossil. Neither is introduced by this change, and neither is a reason to carry a hand-edited lock file in this diff. A third finding was raised on this PR's own body while it was being re-measured — the first version of this body pasted a TRUNCATED diff of the two module manifests and claimed they "differ in exactly thesdk/spec/gopair", which the complete diff above contradicts (the indirect requirements move too). It is FIXED here: the diff is pasted in full, and the prose now says what the measurement says.charly/go.mod;charly/go.sumis derived from it bygo mod tidyand carries no hand-written version of the same fact. The compiled-in plugin WORD (plugin-task) is named incharly/charly.yml, and a version never belongs in that file — the version lives in the module lock, and the module lock ischarly/go.mod.go get, and the lock was re-derived bygo mod tidy— the sameGOWORK=offform the repo's ownmods-tidytask uses. No hand-editedgo.sum, no--replace(there is noreplacedirective in the file), no vendored copy.charly/go.sum, proven by the diff above; the live v0.2026297.2108 pair is the only plugin-task pair the file carries.git statuswas read first, the tree carried only this change's two files, the change lives in the session worktree onfeat/pt-2108,mainwas merged in (never a rebase, never a reset), no submodule was edited, no published history was rewritten, and nothing was pushed tomain.charly task's behaviour, and the core Go gate ran it live on the committed tree: the wholecharlymodule's suite and thepluginsgenpackage, plusgo vetover the same module — the elapsed times are in the pasted log.TestPluginsRefsIndexSoundis inside that package: it compares the committed word→provider index against what the corpus serves RIGHT NOW — a live fetch of the corpus repos, not a fixture — and the build's own re-projection of that index produced no diff. The data channel itself is checked against the two module versions' real sources, and the check is discriminating: it fails if the old pin already carries the channel.scripts/bootstrap-charly.shfrom the head's source, andbin/charly versionreports its stamp. A shared install is never used, and the build's own guard confirms the source and the generated files agree.-count=1), the R9 build, and the data-channel check — with the whole log pasted below and zero warnings.Change classification
charly/go.mod+ the derivedcharly/go.sum. No Go source, no schema, no gitlink, no box pin, no behavioural configuration.go test -count=1 ./...andgo vet ./...fromcharly/) plus the R9 build, run on the committed tree — all pasted above. No bed run and no image build: a module pin is not a runtime target, and the suite that covers the changed behaviour is the core one.Filed issues
charly/go.sum, so the superseded v0.2026297.1542 pair goes and only the live v0.2026297.2108 pair remains in that file. The CONTROL that would make that true of every future bump is what the issue carries, and it is not closed by this change — ago getbump still leaves the superseded pair unless a tidy follows it. It is separable from this bump and is filed rather than fixed here.go.work.sumis a fossil lock: 134 of its 180 lines name a version no lock in this repo carries (123 of its 167 distinct module@version pairs), and nothing prunes it. The same class of defect as charly/go.sum can carry a superseded module version's hash pair: nothing checks that the core module's lock is the tidy artifact of its go.mod #1058, in the workspace's lock rather than the module's: a different file, a different owner (the generator that already writesgo.work, not the module's own tidy) and a different blast radius (a checksum conflict rather than a stale hash pair). This diff leaves that file alone, and one is not a fix for the other. It is separable from this bump and is filed rather than fixed here.Agent: charly
Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated)