Skip to content

alpha.54: pre-beta Track 1 (worker file from ref, Codex client-reported, first job via init, terminal gaps) - #112

Merged
AlbSar merged 59 commits into
mainfrom
alpha54/prebeta-track1
Oct 23, 2026
Merged

AlbSar merged 59 commits into
mainfrom
alpha54/prebeta-track1

Conversation

@AlbSar

@AlbSar AlbSar commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Summary

alpha.54 — pre-beta Track 1 (owner 2026-10-23). One live-bound release: worker instruction file read from the work target's ref (trust binds ref + content digest), Codex client-reported model evidence, first durable job without hand JSON (deckent init worker image + execution + kind/pool), answer a worker's question from /runs, honest next step for uncertain effects, terminal gaps (/copy, unfocused bell, /rename, Alt+Up withdraw, Ctrl+G editor, response style), alpha.53 gaps, docs audit + README rewrite.

Evidence

  • Full suite once on cd34a10: 10489 passed / 8 failed / 8 skipped → 4 causes fixed in f6bfc42; exact-head targeted rerun on 38bdd22: 17 files / 250 tests green (proof ALPHA54-2026-10-23/exact-head-38bdd222.log).
  • Astra: REVISE 2738 (R1 trust not keyed by ref) → fixed in a54/r1b → PASS 2740 on exact 38bdd222bc8fd77b59997e3ea3b45b8797949379.
  • No ledger (v59) or runtime protocol (v29) change.

Doors

  • Two-way: rollback to alpha.53 after unsetting terminal.responseStyle and terminal.notify; ref trusts given on alpha.54 are asked again after rollback; folder trusts stay valid.
  • Blast radius: worker admission (instruction context), Codex evidence labels, setup/init, terminal UI.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob

AlbSar and others added 30 commits October 23, 2026 04:14
…he operator reference

README.md and README.tr.md now read hero -> what Deckent is (problem, what it
does, solo to enterprise, ERP/CRM as well as code) -> how it works (request
flow, Govern/Execute/Prove, architecture) -> get started (requirements, source
install, first session) -> first job -> everyday use (terminal, CLI, MCP,
runtime service) -> safety and control -> what works today / not yet ->
roadmap -> learn more -> license. Claims were checked against the alpha.53
source, CHANGELOG and known limits (npm not published, no Desktop, delivery
advisory rule only, coding tasks accepted on exit code). The stale alpha.23
roadmap is replaced by the beta order (npm, Brain/Nervous orchestration, then
Desktop). Long operator detail (bubblewrap build and Ubuntu userns, provider
secret names and vaults, first-job values and messages, delivery queue undo,
runtime service, sandbox views, secret stores and strict install, spend
settlement, extension entry, MCP groups, backup caveats) moved to new sections
of operator-reference EN/TR. Inbound anchors (#get-started, #your-first-session
and their Turkish twins) are kept.

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

Restore --discovery repository on the first-job init registry lines so the
commands match the clean-machine rehearsal the paragraph cites; name the
planned @verhex/deckent package as not final; say the /help table shows the
most used commands; drop the one-section "moved from README" note in the
operator reference.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…, policy modes and vault grants, maintainer review wording)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…and-ai, CONTRIBUTING, SECURITY)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…Desktop in parallel during it

Owner 2026-10-23 via the lead: memory, agent/skill emergence, worker execution
and assignment, evaluation, Brain, Nervous with automatic recovery and the
Auditor are built before the beta; the beta hardens them through real use and
tests while Desktop app development starts in parallel. README EN/TR roadmap
and known-limits EN/TR (Desktop: in beta after the core layers, not shipped
today) now say the same; no dates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…2, alternate screen, restore) into terminal-host; add empty tui* i18n families; reserve /copy and /rename names

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…ARNESS-FARK P0)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…ort onto Y1 Runs control)

`a` on a Run whose task waits with a needs-input question opens an answer
card (question, state/revision, identity). The answer is written with Tab and
sent only with a single typed y; y with nothing written sends nothing. The
terminal ledger port answerTask builds the same runLifecycleCommandSchema
`answer` command as `deckent run resume --task --answer` in-process: no
protocol or MCP change. A stale store conflict rereads the Run and asks again
(bounded by run-control.json, same codes as the CLI); any other refusal or a
dropped connection is the typed line and nothing is retried. EN/TR words in
the new termanswer family; /runs help text updated with its i18n fixture.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…dow (K7 ported alone; owner Q1)

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

# Conflicts:
#	arch.json
#	src/platform/core/i18n/internal/families.ts
…PRE-8/PRE-9/alpha.53 reference (set B)

- ARCHITECTURE: ~40 "author/source candidate" labels now name the release that
  landed them (verified against CHANGELOG and release ancestry); the stale
  DECKENT-MD "worker context is deferred" paragraph now states the alpha.53
  worker instruction snapshot contract; opening reads intro -> Northstar ->
  document map; W3-AUTHORITY / MCP-NO-DECIDE moved verbatim under Task approval;
  host-kit/skill/Jev/board notes moved verbatim to a new module note; test
  budget names declared test cases; two Turkish contract lines in English;
  Packages table gains run-planning and the new note (1200 -> 1149 lines).
- architecture/**: same relabelling incl. headings (S6 anchor updated);
  "verbatim" headers say later dated additions are marked; decisions.md rows
  for PRE-8, PRE-9, worker instruction snapshot, DeliverySummary + autonomy
  shadow.
- operator-reference EN/TR: secret set needs --main|--project (no piped
  value), .deck format, grant/revoke/handover, list --all, doctor key rows,
  registry connection kinds incl. openrouter, Cursor catalog seed, init policy
  --modes, coding instructions status/trust/revoke.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…l-window terminal (EN/TR)

All 17 EN and 17 TR images re-recorded from the compiled alpha.53 CLI in a real
120x36 PTY against its own runtime service and a loopback test model, in a
throwaway installation under /tmp/claude-1000/shots-ev with a fake HOME (no
owner, live or N1 state; no provider call, no real key). Tooling reused from
the alpha.17 capture (proof DOCS-SCREENSHOTS-2026-10-08), copied to proof
DOCS-2026-10-23/screenshots/tool with three changes: SHOT_REPO defaults to this
worktree, the secret-store switch runs in its own PTY (alpha.53 refuses an
authority change off a person's terminal) and the placeholder piped key is
dropped (SECRET_SET_TERMINAL_REQUIRED), the /model ready wait text follows the
current catalog, and the renderer trims the blank conversation rows above the
content of the full-window layout. Captions now describe what the new screens
show (Create budget in /model, local model usable without a budget, answer
list on the approval card, OpenRouter in /provider).

Commands: npm run build; SHOT_LANG=en|tr node capture.mjs (all 11 scenes
status 0); SHOT_LANG=en|tr uv run --with pyte --with cairosvg --with pillow
python render.py.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…t; real 0.163.0 stream seals measured tokens (alpha.54 CX)

Step 0: a recorded Codex 0.163.0 exec --json stream (redacted fixture) runs
through normalizer -> schema -> seal -> summary and keeps measured tokens,
so known-limits 'no token use' is stale since B09-3 (4eec455).
cache_write_input_tokens is a detail of input_tokens (Codex rust-v0.163.0
parses_cache_write_token_usage: 100 = 40 + 60) and is now counted apart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ntext paragraph, operator reference alpha.51–53)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…creenshots, roadmap); operator detail moved to operator-reference

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

# Conflicts:
#	.deckent/docs/architecture/operator-reference.md
#	.deckent/docs/architecture/operator-reference.tr.md
…up and missing owner decisions

CHANGELOG alpha.53 marked released (PR #111, live/N1 2026-10-23, switch
b10f46a-12aed6973728) and alpha.19 skip noted. PLAN: current release
record, owner direction and beta gates as of 2026-10-23, Şimdi rewritten
around the alpha.54/alpha.55 program, CLI-INSAN and BETA-ISCI-BAGLAM
landed/open split, closed inbox items moved to COMPLETED-PLAN, duplicates
linked to one place, K1-K8 branch status, decision index in date order.
COMPLETED-PLAN: alpha.53/52 sections, alpha.25-35 and 39-49 short records,
alpha.24 live record corrected. owner-decisions: 2026-10-16..19, 10-22 and
10-23 decisions recorded; header states it is a living record. Changed PLAN
lines kept verbatim in the plan archive.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ext step for uncertain outcomes (BETA-RAKIP-3)

- test-ERP fixture: replyLate holds the next operation request past the client deadline until
  releaseLate(); then it is processed as usual and its reply goes to a client that gave up.
- test-erp-operations (sdk + runtime): late reply keeps unknown and settles by lookup with one
  write; a resubmission before the late write lands resends the same keyed conditional write
  once and the late original writes nothing; a card decided after a restart executes after
  another restart with one write; the installed CLI names the next step on an unknown outcome.
- CLI: EFFECT_OUTCOME_UNKNOWN / EFFECT_TARGET_BUSY carry a next-step suggestion; `deckent
  operation` adds scope/command/record params so it names the exact inspect command; `operation
  inspect` shows the next step for unknown/claimed records.
- run inspect: the lost-worker line says what is known and that no automatic recovery exists yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…le, 78 broken links, snapshot notes

roadmap-2026-10-15: status note (alpha.38 -> alpha.53), D0-D2 landed in
alpha.39 and Y3/Y4/D3 moved to beta, native Windows/macOS in beta scope,
protected queue exits (DECKENT-MD-WORKERS, NODE-26), ORG-Q1..Q6 answered
2026-10-16, npm name, BETA-RAKIP in alpha.54, status column in the PRE
table. cli-review: closure table per common item (alpha.48 / alpha.53,
verified in source; unverified items said so). work-list, workstreams,
status, open-findings, capability-map, qwen-host-pilot: 78 root-relative
links rebased; frozen-snapshot notes on the 10-05/06 pages. Archive notes
that verbatim PLAN lines keep repository-root links.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nd /resume picker filter (T2, T5)

T2: focus reports (mode 1004) are taken out of the input; the host rings BEL when work finishes or a card waits only after the window reported it lost focus.
Setting terminal.notify bell|off (default bell).
T5: /rename <title> stores a private sidecar next to the session snapshot (snapshot file unchanged); /resume shows the title and filters by typed text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…g, closed wave-8 item, archive labels

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ed / client-reported-mismatch verdicts (alpha.54 CX, owner Q4)

Owner Q4 2026-10-23: a model name the client resolved and wrote to its own
session log is its own evidence label, never verified or start-name-matched.

- provider-catalog: modelUsageEvidence 'client-reported'.
- verifyWorkerModels: admitted exact id (or a catalog name of the admitted
  model) -> client-reported; any other name -> client-reported-mismatch
  (listed); no name -> unverified. Never substituted on a forgeable name.
- New statuses sealed as model.verification v4; unverified stays v2.
- Evaluation: verdict enum widened; mismatch held ('unknown'); match and
  missing accepted by criteria (missing = as before the capability).
- Delivery verdict list widened; autonomy rule data unchanged (not eligible).
- Monitor EN/TR verdict texts; notice text updated (text-change entry).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…TED-PLAN, owner decisions 10-16…10-23, roadmap, links)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…sals), blank line above the person's message, terminal.responseStyle setting (T1, T6)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…om its base ref (alpha.54 R1)

With a configured work target, `.deckent/worker-instructions.md` (or AGENTS.md) is read from the
commit the target's base ref names (owner Q5 2026-10-23), never the working tree: each directory
must be a tree, the file a plain blob whose listed size is within the registry bound before
cat-file, and the read blob's object id is recomputed. The commit is resolved through the work
target's own checks (resolveGitWorkTarget now returns baseCommit) on every read.

Trust key unchanged (folder identity + content digest): alpha.53 trust records stay valid and a
branch advancing with the same bytes stays trusted. The trust card binding gains ref, commit and
blobOid (shown and sealed, not compared); path is `<ref>:<file>`; file dev/ino are null for a ref
read and kept for the no-target working-tree read; decision input tag :3. Status and card name
ref@commit (EN/TR); the worker prompt part names `<ref>:<file> at commit <sha>`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nal.responseStyle (HARNESS-FARK T1, T6)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…default sandbox realm, and the full-access mark glyph

The /usage shot now shows the same 20 USD budget the budget steps create; the /mcp
example server uses the default realm (sandbox with network) instead of host; the
full-access status mark is rendered without a bold fallback face that lacked the glyph.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
# Conflicts:
#	src/adapters/core/contract/internal/terminal.ts
#	src/surfaces/core/terminal-host/index.ts
#	src/surfaces/core/terminal-host/internal/host.ts
#	src/surfaces/core/terminal-kit/internal/slash-registry.ts
#	src/surfaces/core/terminal/internal/workline.tsx
#	tests/contracts/platform/config-zod-equivalence.test.ts
#	tests/contracts/surfaces/terminal-slash-registry.test.ts
…ename + /resume filter (HARNESS-FARK T2, T5)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
… and a restart-apply setting applies on restart

TR used "kabul" for both admission (the Run started) and acceptance (the result met its
criterion), so "Run ... kabul edildi" read as an accepted result. Admission strings now say
başlatıldı / başlatılırken; acceptance keeps kabul. The config apply word "yeniden" becomes
"yeniden başlatınca". EN unchanged; each change is recorded in cli-text-changes.json.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…); Ctrl+G edits the draft in $VISUAL/$EDITOR through a new adapter port (T4)

- panel controller: withdraw-queued input (only a still-queued input; the active one never)
- composer: withdraw/editor/restore keys; restore is one undo step; Ctrl+G stays Esc without an editor
- terminal-host: useDraftHandoffs (queued entries, Ink suspendTerminal + host handover: mouse off, real TTY paused, SIGINT ignored, held rows)
- adapters/terminal-editor: 0700 dir + 0600 file, VISUAL then EDITOR, no shell, lstat/no-follow, byte bound from editor.json, cleanup on every path
- i18n families tuiqueue, tuieditor (EN/TR); help panel lines

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… log; registry flips codex to client-reported (alpha.54 CX, owner Q4)

- Bootstrap: after thread.started the Codex rollout log
  (<CODEX_HOME>/sessions/Y/M/D/rollout-*-<thread_id>.jsonl) is polled while
  the worker runs and read once more at the end; bounds from providers.json
  limits.clientModelReport (poll/wait/file bytes/line bytes/walk entries);
  no symbolic link is followed, the thread id must be a session id, a
  partial last line is not read. Only the first turn_context.model and
  session_meta.cli_version leave the container (redacted, bounded), as the
  one session.started; a later turn_context is counted unmapped; a missing,
  unsafe or oversized log yields a start without a model plus its cause.
- Registry: codex modelUsageEvidence none -> client-reported; profiles
  stamped none are refused by the binding check (re-create at the switch).
- Gateway: the first session.started is the one the verdict compares.
- Codex seed: reportedNames = nativeId per model (source codex rollout
  turn_context.model, 0.163.0), revision codex-cli-subscription-2026-10-23.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AlbSar and others added 28 commits October 23, 2026 05:03
…(EN/TR)

Who answers an approval, MCP and shell sandbox fallback, macOS/non-Linux limits for the
service, delivery and key grants, release status of alpha.53, the build retry, init,
connect vs choose, worker login, discovery flag, admission vs acceptance wording,
recovery-set encryption, screen-note placement and plainer contract words.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
… log and seals client-reported / mismatch; EN/TR monitor label (alpha.54 CX)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… the execution settings and declares the first kind and pool (BR1)

- execution family: worker image stage (a person is asked; build or --image-id adopt
  as a foreground stage after a card with size and time) and execution settings stage
  (config.set composed from the detected Docker/Git paths and the receipt's image)
- engine: WorkerImageSetupApplication + planFirstWorkerImage (packaged recipe, or the
  next counter past the daemon-held one), work family (first kind from the native CLI
  registry, then the pool; both foreground stages through the existing owners)
- adapters: receipts reader, read-only image presence, buildWorkerImageInHome shared
  with toolchains update (same failed-context retention), built-lineage reader moved
- doctor: work.workerImage row (read-only image inspect); first-job steps 1-2 become
  one `deckent init` step; no npm run worker:image, no hand config JSON

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nal codenames (EN/TR)

Restructured after the reader review: README flow first (build, first-run setup, providers,
first job, worker instructions and discovery, delivery, runtime service, sandbox, modes,
keys, spending), terminal keys and CLI commands next, internals last. Merged the duplicated
spending, key vault, delivery, restart, upgrade, Run control, backup, pool and MCP texts;
removed stale "not yet" catalog notes, codenames and the ledger version; corrected
discovery per CLI, backup integrity, BACKUP_PASSPHRASE via secret set, non-Linux refusals
and the decision grant (template v13). TR uses policy, dala alma, siz and yükseltme.

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

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

# Conflicts:
#	tests/fixtures/i18n/cli-text-changes.json
…trust binds ref + content digest; owner Q5)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
… composition 8200; owner 2026-10-23) on alpha.54 too; re-measured when alpha.54 and alpha.55 meet on main

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…/do text), not its remembered history form

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…reads no key and draws nothing while it owns the TTY (a paused stream re-arms a read); handover only switches mouse/focus reports; real-PTY tests for fullscreen, inline and SIGINT

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…after the card, composed settings, kind, pool; second init reads done)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… the draft in $VISUAL/$EDITOR (HARNESS-FARK T3, T4)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…step for uncertain outcomes (BETA-RAKIP-3)

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

# Conflicts:
#	tests/fixtures/i18n/cli-text-changes.json
…e/setup keeps no runtime, source-control or coding vocabulary)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s the worker image, composes execution, kind + pool stages; read-only image check)

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

# Conflicts:
#	tests/fixtures/i18n/cli-text-changes.json
… Runs list and run list name a held Run (alpha.54 g)

Queue rows in the /run window now show the DeliverySummary (or its not-available line) through the card's reader and renderer
(ledger port queueSummaryLines, wired from describeDeliverySummaries). The /runs list and picker show the park reason and a hold laid over
another park (operatorHold) in EN/TR; deckent run list says the same. No ledger or protocol change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…and run list name a held Run (alpha.53 gaps)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
CHANGELOG alpha.54 line (Unreleased; lead fills date, commit, PR and switch at landing) covering R1, CX, BR1-BR3, T0-T6, G and the docs
lanes; version bump in package.json, package-lock.json and package-metadata.json; README/SECURITY name alpha.54.
README EN/TR first job: `deckent init` builds or adopts (--image-id) the worker image, writes execution, declares the first kind and pool;
restart only if the service was running; docs-script-references no longer requires README to name worker:image.
known-limits EN/TR: init first-job stages, worker file from the target ref, Codex client-reported model and measured tokens, /copy OSC 52
bounds, background bell, Ctrl+G blocking, responseStyle, uncertain-effect next step and EFFECT_TARGET_BUSY, held-Run pool slot (G),
lost worker without automatic recovery, switch/rollback notes for alpha.54.
operator-reference EN/TR, ARCHITECTURE worker-context paragraph and config-and-cli-help: worker file read from the target ref; init image step.
PLAN: alpha.54 row and program sub-items in code, K7 moved, inbox items closed per G/R1; replaced lines kept verbatim in the plan archive.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…on and the admission registry is read live

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…sion 1.0.0-alpha.54, known-limits, README first job via deckent init, PLAN moves)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…een fixture knows focus reporting ?1004, /help has 34 rows (/rename), TR policy doc command blocks keep EN placeholders

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…f + digest (REVISE 2738 R1, owner Q5)

A trust given at a work target's base ref was written and read under the
folder + digest key, so ref B with the same bytes read as trusted after a
trust of ref A, and admission passed it. A committed read now writes and
reads its own tagged record keyed by folder + ref + digest; revoking one
ref never removes another ref's record. Legacy rule: the alpha.53 folder +
digest record (content = the bare digest) is still honoured at a ref of
that folder but never written for a ref; a revoke at the ref removes it
too, so a sealed revoke never leaves the card trusted. A working-tree read
(no target, terminal) is unchanged.

Negatives first (red on f6bfc42): adapter A->B same bytes, folder
working tree, per-ref revoke both ways, commit advance, exact alpha.53
record bytes; composition A trust -> B untrusted + admission withheld, B
own card, per-ref revoke. Docs: known-limits EN/TR, operator-reference
EN/TR, config-and-cli-help, ARCHITECTURE, CHANGELOG.

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

`coding instructions` help (EN/TR) says trust is for the folder and, with
a work target, its base ref (text-change entries + regenerated help
fixtures). known-limits, operator-reference, config-and-cli-help,
ARCHITECTURE and CHANGELOG name the legacy rule exactly as implemented:
any folder-and-content record (alpha.53, or a read without a target)
still counts at a ref of that folder, is never written for a ref and is
removed by a revoke there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
… alpha.54 first opened the store unlock a ref (REVISE 2738 R1, lead)

Round 1 let any folder + digest record unlock every ref of the folder,
including a new alpha.54 no-target trust and the terminal's AGENTS.md
trust. Now the first reader of this release seals, before it can write,
the bare records that already exist into a private snapshot
(legacy-folder-trust.v1: `<name> <digest>` lines, bound from registry
data, O_EXCL temp + fsync + rename + dir fsync under the shared write
lock). A committed read honours a folder + digest record only when the
snapshot lists it. A ref revoke removes that ref's record and the legacy
entry and keeps the folder's own record; a working-tree revoke also
drops the entry, so a later folder trust never reopens a ref. alpha.53
never reads the snapshot.

Negatives first (red on 7e3b874): no-target trust as the first store
access, the terminal's AGENTS.md trust and a record laid down after the
snapshot never unlock a ref; a same-process race of first writes and a
ref open; a captured alpha.53 record still unlocks the ref; a ref revoke
keeps the working-tree trust; composition: a folder trust before the
target is configured leaves admission withheld.
WORKER_INSTRUCTIONS_CHANGED.place names the ref (EN/TR, text-change
record). known-limits, operator-reference, config-and-cli-help follow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrXPpzy6N7zFwchFM6Adob
…ds ref + digest; only pre-alpha.54 folder records (sealed snapshot) unlock refs

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 c87db94 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