Skip to content

v1.18.5 — a pipe reaches the guard, and the installers stop deleting blind - #9

Merged
sshlg merged 5 commits into
mainfrom
asy-05-wave15-installer
Aug 30, 2026
Merged

v1.18.5 — a pipe reaches the guard, and the installers stop deleting blind#9
sshlg merged 5 commits into
mainfrom
asy-05-wave15-installer

Conversation

@sshlg

@sshlg sshlg commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

What

  • ASY-05 (MEDIUM, enforcement bypass): guard.sh's tokenizer claimed | and consumed only ||echo msg | git commit -F - bypassed the lease guard entirely. | and |& are now consumed (ordered after ||); three new GUARD_SHAPES (both piped commits blocked, git log | grep commit not) were watched failing against the pre-fix guard (exit 0 where 2 was required), and a self-test plant restores the shipped tokenizer.
  • Installer shadow canon (make-skill v0.25.0, distribution.md §3), adapted to this member's delegating shape: the installers never write ~/.claude/skills/agent-sync themselves — the skills CLI does — and both deleted that copy unconditionally. The fate of the copy is now read from the target home's installed_plugins.json (spec from the JSON; marketplaces/<name> dir kept only as the fallback signal): plugin present → pruned with the real spec and the plugin-channel remedy; no plugin → kept, because it IS the Claude Code channel; --force → kept deliberately. Absent/corrupt JSON = no plugin (fail open, never crash). Only the Claude Code channel is gated.
  • The install success path now says how the next version arrives.
  • test/installer_test.js: 11 cases, throwaway HOMEs, delegated CLIs stubbed through PATH; 10 of 11 watched failing against the pre-fix installers. Wired into npm test and CI.

Gate

npm testPASS: agent-sync v1.18.5 — all checks green; self-test 59/59 detected (incl. the new plant); claim cell 24; SessionStart 5; installer 11. claude plugin validate --strict green on both manifests.

🤖 Generated with Claude Code

NGHTBOY and others added 5 commits August 29, 2026 23:31
…-05)

guard.sh's tokenizer said "each &&/;/| segment is its own command" and
consumed only &&, ; and || — so 'echo msg | git commit -F -', the ordinary
way to commit a generated message, was one segment whose first token is
echo, and the whole pipeline skipped the lease guard. | and |& are now
consumed, ordered after || so neither shatters the other. Three new
GUARD_SHAPES (both piped commits blocked, 'git log | grep commit' not),
watched failing against the pre-fix guard (exit 0 where 2 was required),
and a self-test plant that restores the shipped tokenizer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Neither installer writes ~/.claude/skills/agent-sync itself — the skills
CLI they drive recreates it — and both deleted that copy unconditionally,
consulting nothing. That is the family's fail-open class (make-skill
v0.25.0, distribution.md §3) in mirror image: on a home where the plugin
is NOT installed, the prune destroyed the only Claude Code channel the
very same run had just installed, and exited 0. The copy's fate is now a
decision read from the target home's installed_plugins.json (spec taken
from the JSON — plugin and marketplace names differ), marketplaces/<name>
kept only as the fallback signal; no plugin → kept, plugin → pruned with
the spec, remedy and family launcher named, --force → kept as the
recorded choice to run two channels. Absent or corrupt JSON reads as no
plugin. The success path now says how the next version arrives.

test/installer_test.js: 11 cases against throwaway HOMEs, delegated CLIs
stubbed through PATH, 10 of 11 watched failing against the pre-fix
installers. In CI beside the SessionStart identity suite npm test already
carried.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…deleting blind

Version on all five surfaces, installer_test.js joins npm test, CHANGELOG
section, verification ledger rows (ASY-05, REQ-I01, REQ-I02, gate), retro
run stamp. Gate at this tree: PASS: agent-sync v1.18.5 — all checks green;
self-test 59 fixtures all detected; installer 11 cases; claim cell 24;
SessionStart 5.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sshlg
sshlg merged commit 7ca31c6 into main Aug 30, 2026
2 checks passed
@sshlg
sshlg deleted the asy-05-wave15-installer branch August 30, 2026 07:17
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