Skip to content

1.0.0-alpha.53: delivery card summary, autonomy shadow, worker context, CLI-INSAN rest, Docker probe hold - #111

Merged
AlbSar merged 56 commits into
mainfrom
alpha53/beta-items
Oct 23, 2026
Merged

AlbSar merged 56 commits into
mainfrom
alpha53/beta-items

Conversation

@AlbSar

@AlbSar AlbSar commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Summary

1.0.0-alpha.53 pulls beta items forward (owner 2026-10-23; new pre-beta surfaces opened by the owner).

Delivery card summary (TESLIM-KARTI-OZET)

  • Every delivery and queue card now shows, in human words: the title, what changed, why it was accepted (the worker report is labelled a claim, the verification Run is labelled system evidence), the model verdict, the risk, and what yes or no will do.
  • The summary sits above the unchanged consent card. Consent is still bound by the batch digest.
  • The queue list gains Title, Risk and Rule (off) columns.

Autonomy shadow (OTONOM-TESLIM)

  • Rule data autonomy@1 records would-deliver or would-hold in a store outside the audit chain.
  • It is written as system. It never appears on a consent path and is never an authority input.
  • Adopt and rollback stay y/N.

Worker context (BETA-ISCI-BAGLAM)

  • Codex discovery is disabled, enforced by strict-config probes.
  • Cursor checkout shaping hides the instruction files. The delivery patch is equal to the one from a full checkout.
  • There is a per-project worker instruction snapshot (.deckent/worker-instructions.md), consumed only after a human trusts it. Trust is managed with deckent coding instructions status|trust|revoke, through the owner's terminal card, bound to the exact place shown.
  • Writes to the instruction surface without an explicit scope are refused at the delivery gate.

CLI-INSAN rest

  • Scope defaults for reads, and refusals that list the valid scopes for changes.
  • CLI_ARGUMENT_MISSING now names the missing argument.
  • Locale is taken from config.
  • Human ticket views.
  • An acceptance evidence line in /runs.

Docker probe

  • A timed-out environment probe now holds the Run instead of parking it as an installation defect.
  • Image probe errors keep a bounded cause.

Evidence

  • Astra: REVISE 2734 on ad02fc7e (R1 F1 place binding; R2 scoped shadow id; R3 summary known secrets; R4 Unicode bounds). All four were fixed with red→green negatives and raw logs. PASS 2736 on d5846702.
  • Full suite on 946e46e2: 1104 files, 10313 passed, 2 failed (test-only, fixed in ad02fc7e), 8 skipped (environment-gated, same as alpha.52).
  • REVISE fan-in on the built d5846702: 21 files, 253/253, including the Docker queue e2e, startup-graph, pack-smoke-dist and ai-floor tests.
  • Static checks: typecheck, ESLint, lint-arch and lint-docs are all 0.
  • Proof folder: plan, law audit (HOLD, folded), Jev records (5154b68e, 8e791e09) and lane reports are in the lead proof folder ALPHA53-2026-10-23.
  • Package ceiling: adapters raised 29650 → 29900, approved by the owner.

Doors and blast radius

  • No ledger, protocol or wire change (ledger v59, protocol v29).
  • Two-way door for most of this release: the summary is display-only and the shadow store is ignored by alpha.52.
  • Rollback to alpha.52 has preconditions:
    • unset execution.workerInstructions;
    • finish or release Cursor attempts that are running on sparse clones;
    • Codex and Cursor disabled-discovery kinds are refused by alpha.52;
    • switch with an empty queue (titled tickets).
  • After the switch:
    1. Trust the worker instruction file on the work-target clones (owner card).
    2. Rebind the Codex and Cursor templates (owner card).
    3. Take the N1 before/after measurement: tokens, find .. count and acceptance outcome.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob

AlbSar and others added 30 commits October 22, 2026 23:53
…w-row, n1-switch teslim sync done, post-release findings

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…pha.53 D5, owner Q5)

Reuses cli-human acceptanceEvidenceQualifier; new termrun i18n family.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…(run propose, init, monitor help, project-instructions, dispatcher, deckent-mcp help/failure, run lifecycle approvals)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ws (alpha.53 D1)

Queue list/inspect and task reads default the scope to terminal.scopeId and say so; changes without --scope get CLI_SCOPE_REQUIRED;
missing flags are CLI_ARGUMENT_MISSING, invalid values CLI_USAGE naming the flag (no raw zod array). inspect/enqueue/rollback/confirm
print human views (--json unchanged); ticketSummaryLines is the empty seam for the A3 DeliverySummary block.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…ews (CLI-INSAN S1)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…idden preflight probes (alpha.53 C1)

Owner 2026-10-23 Q2: Codex workers stop reading repository skills.
- commands.json: codex disabledArgs = --strict-config -c skills.include_instructions=false
  -c skills.bundled.enabled=false (keys verified against codex 0.163.0 and the codex config
  schema); new registry capability `discovery` {requiredFlags, hiddenProbes} paired with
  disabledArgs (claude: --safe-mode, no probes; cursor: null).
- Compiler: preflight requiredFlags take the capability's help flags, never raw -c values
  (Claude output unchanged).
- Mounted worker preflight: for disabled discovery every registered probe must draw its exact
  parser refusal before credentials are written; otherwise preflight failure (78).
- init registry: --discovery optional (adapter default disabled); coding template: optional
  --discovery override, default keeps the admitted pin's mode; typed CODING_DISCOVERY_UNSUPPORTED
  (EN/TR) instead of a generic refusal; card shows the discovery line; help/doctor/docs updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ation, autonomy@1 rule as data, queue commit title (alpha.53 A1)

- New engine unit src/engine/core/delivery-summary: typed envelope (operation, target, title, outcome claim,
  acceptance evidence, worker checks vs system verification Run, model verdict, risk class/size/flags, typed
  yes/no actions, adapter-filled change) with available|withheld|unavailable per section; strings redacted
  then bounded. DeliverySummaryApplication.describe reads only under Run inspect + Attempt read-output.
- Rule autonomy@1: pure evaluator over generic facts; thresholds and eligible model verdicts (owner Q1:
  verified, start-name-matched) in assets/delivery-summary/autonomy-1.json; risk data in risk.json.
- Evaluator evidence kinds move to capabilities/evaluation-evidence (one registry); cli-human reads it.
- workspacePatchChangeFacts fills the change section for workspace targets.
- Queue commit title = work-input title, else task id; planQueueCommit replays candidates planned with the
  task-id title (pre-alpha.53) without weakening the exact candidate commit match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…INSAN S2)

A catalog action declares the arguments it never runs without (flag, positional or
alternatives; never --scope). When the family handler refuses such a call with
CLI_USAGE and a declared argument is absent, the catalog wrapper turns the refusal into
CLI_ARGUMENT_MISSING naming it in the caller's language (exit 2 kept). A present but
invalid value, a strict help call and a missing --scope keep CLI_USAGE; terminal pickers
and handler validation are unchanged because only a refusal is read. Action help shows a
"Required:" line ("Required without a terminal:" where a person picks on a terminal).

Covers models binding/activation/activate/deactivate/invoke/invocation/cancel/
purge-content/spending forms/connect/catalog register|activate|deactivate, policy
delegate/undelegate/revoke/upgrade/mcp grant|revoke, mcp add/add-json/get/remove/approve/
revoke, config set/unset, secret delete, audit rebaseline, decide *, operation *,
coding prepare, init policy/registry, run create/propose/inspect-proposal/reserve/inspect/
cancel/close/hold/resume, task inspect/execute/transcript/patch-preview.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… fails preflight closed (C1)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…on (alpha.53 C3, owner Q3)

- execution.workerInstructions {schemaVersion 1, source deckent-md|agents-md|none}; absent = DECKENT.md when it exists, else nothing; CLAUDE.md never a source
- admission reads exactly the selected root file of the Git work target through the project instruction reader and the user-global trust store;
  only a human-trusted (ready) snapshot becomes one prompt context part (id carries a digest prefix, text names the full sha256), frozen in the Run profile so replays are exact
- untrusted/changed, unsafe, unreadable or explicitly selected but absent: left out with a typed WORKER_INSTRUCTIONS_WITHHELD admission warning (run create EN/TR line)
- prompt budget overflow (part, context count or total composition) and a file above the reader bound: typed WORKER_INSTRUCTIONS_TOO_LARGE at planning and creation
- no Git execution configured: explicit no-op; native compiler stays pure (admitted parts are an input)
- repository DECKENT.md: worker-only conventions (tracked; .gitignore and markdown allowlist updated)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…terminal

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… data (TESLIM-KARTI-OZET, OTONOM shadow evaluator)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…missing argument (CLI-INSAN S2)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob

# Conflicts:
#	tests/fixtures/cli-help/commands-en.json
#	tests/fixtures/cli-help/commands-tr.json
…s.md, never the terminal's DECKENT.md (lead decision on C3 Q1)

- sources worker-md | agents-md | none (registry data); unset = worker-md when .deckent/worker-instructions.md exists at the target root, else none
- root DECKENT.md removed and ignored again; the worker file is tracked (.gitignore exception, markdown allowlist)
- the terminal lookup (DECKENT.md → AGENTS.md) is unchanged: a repo with only the worker file still gives the terminal AGENTS.md (test)
- a nested instruction name refuses a symlinked or non-directory parent (worker file through a symlinked .deckent is blocked unsafe)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r-instructions.md; owner Q3)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…iverySummary and the autonomy shadow line (alpha.53 A2)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-KARTI-OZET)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…mage probe keeps a bounded cause (E1)

- DockerSupervisor.probe: stopped by its own deadline with the container proven gone answers `timed-out`
  (was `unmet`); exit/missing stay `unmet`, a caller's signal stays SUPERVISOR_CONTROL_FAILED.
- assertTaskEnvironment refuses `timed-out` as EXECUTION_ENVIRONMENT_TIMED_OUT {requirement, kind};
  classifyLaunchRefusal classifies it `held`: nothing is recorded on the attempt (record shape unchanged),
  executeConfiguredTask holds a running Run through the existing progression park (failureCode = the code);
  the operator re-runs explicitly (resume), the same attempt probes again. No automatic retry.
- DockerImageProbeError keeps probeCause deadline|exit|signal|parse (no Docker text); queryFailure passes it
  as the `cause` param and the registry renders it in words (EN/TR).
- Journal line, run inspect and monitor name the timed-out hold in words (EN/TR, run.json).

Lead decision via Jev 8e791e09 (deadline_uncertain). Fixture timeouts unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ons (CLI-INSAN S4, D2 leftovers)

run create/reserve/cancel/close/hold/resume and task changes without --scope name the valid scopes
(CLI_SCOPE_REQUIRED) instead of blaming another flag; models catalog list and identity choices read the
configured default scope (named) and a change never defaults; task accept/reject name the wrong flag;
task actions declare the attempt tuple in requires; config set <key> is required on a terminal too
(picks may now list the arguments a terminal fills).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…+ D2 leftovers (CLI-INSAN S4)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…ted (E1)

Only RUN_PARKED / RUN_TERMINAL / RUN_STORE_CONFLICT (another transition already holds, ended or changed the Run)
keep the EXECUTION_ENVIRONMENT_TIMED_OUT refusal; any other park failure (denied, store) is the error, so no
surface says "Run held" for a hold that was not written. Negative test: park denied → Run stays running,
nothing recorded. The E1 test also measures that the held task keeps its pool slot (capacity 1) until the re-run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ion-defect park); image probe keeps a bounded cause

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…ame patch as a full tree (alpha.53 C2)

Owner 2026-10-23 Q4: Cursor workers no longer receive the repository instruction surface.
- Registry: `capabilities.discovery.checkout.hiddenPaths` (literal `name` at any depth or
  `/root/path`, domain schema) as the realisation for a CLI without a suppression flag; Cursor
  gets disabledArgs [] and AGENTS.md, CLAUDE.md, .agents, .claude, .codex, .cursor, /DECKENT.md,
  /.deckent/worker-instructions.md (lead note: C3's admitted sources). Claude/Codex stay argv-only
  (checkout null), so their compiled profiles are byte-identical.
- Compiler freezes the set into the pinned profile (`nativeSubscription.checkout`); a template's
  `invocation.discovery.hiddenPaths` replaces it per project; the binding check requires the part
  exactly for checkout-realised disabled profiles.
- Git broker: fresh clone checked out sparse (non-cone, config persisted in the clone, clean
  git status); queue verification Runs keep the full tree.
- Patch capture and handoff start read the set from the Run's frozen profile and complete absent
  hidden base paths from their blobs: sparse and full checkouts give the same patch digest; a
  hidden path the worker writes stays a visible change; without the set the deletions show.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, written by the queue service (alpha.53 B1)

- Engine (delivery-summary): AutonomyShadowRecord v1 {id autonomy-shadow:<commandId>:<revision>, at, actor system,
  scopeId, commandId, revision, rule {id, version, digest}, verdict, reasons, summaryDigest}, per-line digest over
  sorted-key JSON, AutonomyShadowStore port; readSystemDeliverySummary = the describe sources read from the service's
  own stores without a principal grant (describe keeps its authorization; shared Run/report/model readers).
- Driver: optional TargetQueuePreparation.shadow called once, right after the awaiting-confirmation transition;
  a failure is caught and kept on the driver, the service reports it after the whole turn as
  AUTONOMY_SHADOW_NOT_RECORDED (EN/TR). Rollbacks never reach it.
- Workspace target: workspaceQueueShadow reads the ticket's retained candidate patch (change facts + K6 scope),
  the Run, the verification Run, worker report and model evidence, evaluates autonomy@1 and appends.
- Adapter: FileAutonomyShadowStore, bounded append-only JSONL under state/autonomy-shadow (new layout resource,
  `deckent paths` label EN/TR): 0600, no link followed, idempotent by id, active + one rotated file by limits data,
  damaged/altered lines skipped on read; reader creates nothing. Composition: readAutonomyShadow for A3.
- No audit subject, ledger or protocol change; alpha.52 ignores the directory.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…et for an argv CLI is refused (C2)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ting-confirmation, from the real stores (alpha.53 B1)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…idden instruction paths, patch-digest equal; owner Q4)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
AlbSar and others added 26 commits October 23, 2026 01:01
…n by the queue service as system (OTONOM-TESLIM shadow)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…53 (Cursor checkout shaping, autonomy shadow store, worker instructions; owner 2026-10-23)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…list/inspect/confirm, terminal /deliver window and task delivery (alpha.53 A3, WIP before B1 merge)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e (alpha.53 F1)

- deckent coding instructions [status] | trust | revoke [--target <id>] --scope <id>: status (read-only, --json) shows the
  work target (project root when none), file path, bytes, sha256 and whether workers get it now; one resolver for admission,
  status and trust (same folder = same user-global trust key)
- trust/revoke only from a person's terminal card (path, size, sha256, first lines; nothing preselected): AI tools, MCP, pipes and
  --json refused with AUTHORITY_WITNESS_REQUIRED before anything is read; the composition checks the terminal witness again
- decided on the existing config/write cell for project:execution.workerInstructions (AI floor: execution is protected) and sealed as
  an authority-decision (worker-instructions-trust|-revoke, basisDigest = content sha256) BEFORE the record changes, refusals too;
  no new audit kind, policy resource or ledger version
- persisted trust only: a CLI trust never falls back to session-only consent; revoke removes exactly that folder+digest record;
  the card's digest must still be the file's content (WORKER_INSTRUCTIONS_CHANGED), otherwise WORKER_INSTRUCTIONS_UNAVAILABLE names why
- C3 untrusted warning and AUTHORITY_WITNESS_REQUIRED name the new path (EN/TR); help goldens updated

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… (deckent coding instructions status|trust|revoke)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
CHANGELOG alpha.53 line (alpha.52 finalized as landed PR #110), known-limits EN/TR, ARCHITECTURE worker instructions line, approval-and-delivery summary/shadow/timed-out probe, config-and-cli-help coding instructions and requires/scope rules, PLAN status, version bump.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…itch teslim sync done, post-release findings

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob

# Conflicts:
#	CHANGELOG.md
… list/inspect; card summary tests; queue e2e follow the human confirm view (alpha.53 A3)

- host binds readAutonomyShadow (B1 store, layout from the composed config) for tickets the service already returned; list column and inspect line only.
- e2e: confirm assertions read D1's human view ('Confirmed batch: N of', 'q1: refused (published)'); the consent card shows the summary above
  the exact card with the system verification Run and no shadow; the list shows the risk word and the rule-off column.
- Tests: window/port, task delivery cards, prompt, list/inspect/confirm CLI, card helpers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…shadow only in list/inspect (TESLIM-KARTI-OZET)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…nspect; follow-ups (job-window queue rows, list read cost); owner opens pre-beta surfaces

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…ntained declarations; AI-floor report regenerated

- delivery-summary cards no longer import engine at run time: the request carries the ticket command id and the host derives the verification
  Run id (composition summary.ts), so `deckent --version`/--help load none of the host graph (startup-graph).
- WorkerInstructionSource derives from the config enum, not the JSON module, so published declarations resolve (pack-smoke-dist).
- docs/reports/ai-floor-compliance regenerated for the coding instructions trust route (0 violations).
- arch.json: project-instructions adapter depends on platform config; delivery-summary surface no longer on workspace-patch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…e (alpha.53 G1)

Native workers (any provider) could write AGENTS.md, CLAUDE.md, .agents/** or
overwrite an instruction file a sparse Cursor clone never showed them; only the
card showed it. Now delivery refuses it.
- One list: the native CLI registry's top-level `instructionSurface.hiddenPaths`
  (domain INSTRUCTION_SURFACE_PATHS). Cursor's checkout realisation draws from it
  (`checkout: {}`), so its compiled `nativeSubscription.checkout` bytes are
  unchanged; a template's own hiddenPaths still replaces it per project.
- `instructionSurfacePaths(profile)`: the Run's frozen checkout set, else the
  registry list (Claude/Codex). `instructionSurfaceWrites` (domain primitive):
  explicit = the exact path or a wildcard-free `dir/**` whose dir is inside the
  surface; `**`, `*.md`, `src/**` for src/AGENTS.md are never a grant.
- K6 `classifyPatchScope` derives `instructionSurface` (present only when
  non-empty); `assertPatchScope` refuses it first in warn and enforce with
  `PATCH_INSTRUCTION_SURFACE_WRITE` (count, first 16 paths, omitted), before the
  integration intent claim or the delivery claim; queue tickets keep the code.
- DeliverySummary change facts carry the paths; risk flag `instruction-surface`
  (EN/TR).
- Derived, never persisted: Run snapshot, evaluation, ledger v59, protocol v29
  and the patch artifact are unchanged (a new not-accepted reason literal would
  have broken alpha.52's strict run-snapshot read).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sed at the delivery/queue gate)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…d id; the host derives the verification Run id

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
… the exact folder and file it showed (red on ad02fc7)

REVISE 2734 R1: same target id moved to byte-identical folder, null target then a target,
source switch to identical AGENTS.md, file replaced with identical bytes (new inode), revoke
bound the same way; the CLI hands the host-made binding to the writer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
R2: two scopes with the same commandId/revision must both write; an old-format shadow line never blocks another scope.
R3: a config-known secret matching no pattern is masked in title, outcome and paths through the real describeConfiguredDeliverySummaries.
R4: projector and envelope schema count the same unit; boundary astral/combining/flag text; one bad card degrades alone in a host batch.

Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…he human card, one length unit, per-card degradation (REVISE 2734 R2-R4)

R2: shadow id autonomy-shadow:<scopeId>:<commandId>:<revision>; the store deduplicates by (scope, commandId, revision), so two scopes with the
same command id both write; an ad02fc7 line (no scope in the id) stays readable as its own scope field and never blocks another scope.
R3: describeConfiguredDeliverySummaries passes getConfigKnownSecrets(c.config) into DeliverySummaryApplication (as the shadow path does).
R4: the envelope schema counts code points like the projector and the *Chars limits; the projector cuts at the last grapheme boundary that
fits (no split surrogate pair, combining sequence or flag). An invalid request or a failed read/projection makes only that card null.

Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… in the composition batch (REVISE 2734 R4)

Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ts, R4 code-point bounds + per-card isolation

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…e card showed (REVISE 2734 R1)

The status row carries a host-made binding (target, real root + dev/ino, source, file, file
path + dev/ino, digest); the CLI hands exactly that to the writer. The writer re-reads the
place from current config and compares all of it before the no-op answer, again just before
sealing the authority decision, and the adapter checks path + identity + digest in its own
read just before the trust record is written or removed. Any mismatch is
WORKER_INSTRUCTIONS_CHANGED (reason place, new EN/TR text) with nothing sealed or written.
The decision inputDigest covers the whole binding (projection tag worker-instructions-trust:2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… read before the write is not the card's (path, identity, digest)

REVISE 2734 R1 adapter-level evidence: red with the ad02fc7 files.ts (second argument ignored),
green with a2f930b.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…(root/file identity + digest re-verified before seal and write)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…osition budget after REVISE 2734

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.

Tip: disable this comment in your organization's Code Review settings.

@AlbSar
AlbSar merged commit b10f46a into main Oct 23, 2026
41 checks passed
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