Repository navigation
Gap ledger: native idle compaction, enableArtifact false as a host choice, PR descriptions read back after publishing - #1169
Merged
seathatflowsinourveins merged 2 commits intoOct 15, 2026
Conversation
… read PR descriptions back From the practice gap ledger of 2026-10-15 (rows C3-0006, A3-0031 and B2-0004, each ruled ADOPT and confirmed by the co-op's Codex re-check or by the command center's adjudication): - context-compaction (C3-0006): compacting before an idle gap is native since 2.1.299. Idle compaction compacts an interactive terminal conversation on the one-hour cache TTL with 200,000 or more tokens about 54 minutes after its last request, before the cache expires (CHANGELOG.md:97-98 at anthropics/claude-code@94506ff; settings-reference.md:2964-2983 at 2.1.300). The notes name it and keep it on, and the slot's mapping of the compact-before-an-idle-gap practice names it. The idleCompaction disposition stays declined (no override); its stale rollout reason now cites the 2.1.300 docs and the command center's ruling of 2026-10-14 (leave it unset; false only for one session). - settings-permissions (A3-0031, ledger slot new): enableArtifact false, read from NativeStack2604's user settings by an exact-key grep, is recorded as a host choice in a new claude:setting:enableArtifact disposition row (enabled, scope NativeStack2604, carrier host user settings). The template is unchanged: re-applying it keeps keys it does not mention (tools/adoption/apply_claude_settings.py:323-329). - pr-review-pre-cue (B2-0004, ledger slot new): a PR description goes out from a temporary file with --body-file and is read back with gh pr view --json body before the PR is reported or cued. Measured 2026-10-11 on #991: updates over 262,144 UTF-8 bytes got HTTP 200 and GitHub kept the old description. The catalog-freshness propose step already wrote its description to a runner temp file and passed --body-file; it now reads the published description back and stops before reporting the PR when the two differ. #727's stored description is byte-identical to what the step writes for its lane (read 2026-10-15), and gh passes the file's bytes unchanged (cli/cli v2.102.0 create.go:336-341, edit.go:176-181). Tests: tests/test_native_practice_ledger_rows_tokeff_new.py, 6 tests, 5 failed on the base (the page render pin passed); in tests/test_catalog_freshness_propose.py two tests drive the step's shell with a synthetic gh that keeps or drops the description, and both failed on the base in all 5 subtests. Native-practice modules: 106 OK (3 skipped). The 55 modules that read the changed files: 2,665 tests, 2,606 passed, 30 skipped; the 29 others (25 tests.test_claude_usage_metrics errors, prometheus_client not installed on this host; 4 tests.test_upstream_surface_watch CachedArtifactTests failures, this host's cached upstream artifacts) fail the same way on the base. validate rc 0. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…paction default-on, three neighbour rows The command center's FULL read of #1169 at bf06685 passed with no P1. It ruled ONE fold, to be re-read as a delta. - P2-1: tests/test_catalog_freshness_propose.py:1057's synthetic gh can now fail the read-back with no output, or return a different description. Two tests assert that the step exits 1 without reporting the PR, on the create and update paths. The propose step in .github/workflows/catalog-freshness.yml now stops on a failed read-back with its own message; before this commit it already exited 1 there, but silently. - P2-2: catalogs/foundation/upstream-surface-dispositions.json:3714 moves claude:setting:idleCompaction from declined to default-on. The host leaves the native default alone (docs/decisions/2026-10-06-harness-context-budget-refresh.md:25), and the dispositions rules (:13-14) call that default-on. The pin at tests/test_native_practice_ledger_rows_tokeff_new.py:53 follows. - P3: new rows for three keys: - claude:setting:disableArtifact, not-applicable (a deprecated alias of enableArtifact; settings-reference.md:5354-5360); - claude:env:DISABLE_AUTO_COMPACT, default-on (env-vars.md:450); - claude:env:CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS, default-on (env-vars.md:323). Fail-first, with this commit's tests on git archive exports: - At base 9cf1225, both read-back cases report the PR (exit 0). - At bf06685, the failed read-back exits without its message. - The new disposition test fails at bf06685 (declined), and the new rows' test errors there (no rows). After: the two modules, tests.test_catalog_freshness_propose (91 tests) and tests.test_workflow_hardening (118) pass. zizmor --offline reports no findings (3 suppressed), and validate rc is 0. Co-Authored-By: Claude Opus 5.5 <[email protected]>
5 tasks done
seathatflowsinourveins
deleted the
claude/cc-native-practice-close-tokeff-new-20261015
branch
October 15, 2026 23:20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
What this PR changes, in one or two sentences: This PR closes three ADOPT rows of the Claude Code practice gap ledger:
context-compactionslot;enableArtifactfalse recorded as a host choice insettings-permissions;pr-review-pre-cue, with the repository's one PR-writing workflow step changed to match.The command center dispatched the ledger on 2026-10-15. Each row was confirmed by a second-family re-check, or (A3-0031) by the command center's adjudication.
Base commit:
9cf122558(rebased; registry and manifest label only). The first commit's fail-first ran at the pre-rebase base420452059, and the fold's at9cf122558(see Local commands run).Lane:
lane:foundationOwned paths touched:
slots.json,token-efficiency.md,native-clients.mdandgit-github-automation.md, plus the slot manifest (sha256_when_labeledonly);catalogs/foundation/upstream-surface-dispositions.json: theidleCompactionreason is rewritten, and a newenableArtifactrow is added;.github/workflows/catalog-freshness.yml: a workflow change (see below);docs/github-automation.md: one dated sentence;tests/test_native_practice_ledger_rows_tokeff_new.py(new) andtests/test_catalog_freshness_propose.py;manifests/evidence.json.Rows:
idleCompactionstays unset, following the command center's ruling of 2026-10-14;falseis for a single session only.idleCompactiondisposition's stale "rollout" reason is rewritten from the 2.1.300 docs. The row isdefault-on: the host leaves the native default alone (docs/decisions/2026-10-06-harness-context-budget-refresh.md:25), and the dispositions rules (:13-14) call thatdefault-on(the command center's FULL read at bf06685, P2-2).claude:setting:disableArtifact,not-applicable: a deprecated alias ofenableArtifact;claude:env:DISABLE_AUTO_COMPACT,default-on: unset, so automatic and idle compaction stay on;claude:env:CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS,default-on: unset, at its 200000-token default.claude:setting:enableArtifact: enabled, value false, carrier the host's user settings.tools/adoption/apply_claude_settings.py:323-329).--body-file.gh pr view --json bodyand exits 1, before reportingpr_url, if the stored text differs. GitHub's REST update silently drops descriptions over 262,144 bytes (Scan the pull request description for home paths and credentials #991's measurement).Workflow change, called out:
.github/workflows/catalog-freshness.yml, propose step.ghand token, with no new permission or action.ghcan keep or drop the description, fail the read-back with no output, or return a different description. Each failure case exits 1 without reporting the PR, on the create and update paths.zizmor1.30.1 offline: no findings (3 suppressed, as before).tests.test_workflow_hardening: OK.SOTA sources
CHANGELOG.md:97-98: 2.1.299 idle compaction and"idleCompaction": false.idleCompaction, default true), 5354-5360 and 5427-5443 (enableArtifact). Fetched 2026-10-15T11:39:24Z, sha2568ba90434….f5957ad6…); https://code.claude.com/docs/en/env-vars.md lines 323 and 450 (54351937…).pkg/cmd/pr/create/create.go:336-341, 390andpkg/cmd/pr/edit/edit.go:176-181:--body-filebytes become the description;pkg/cmd/pr/view/view.go:84andapi/query_builder.go:314-317:bodyis a--jsonfield.plugins/github-dev/skills/create-pr/SKILL.md:35, 40: write the description to a file, pass--body-file, read it back.Evidence-class table
synthetictests/test_catalog_freshness_propose.py(a stubghkeeps or drops the description)local_integrationenableArtifact, gh behavioursource_reviewLocal commands run
Follow-ups
tests.test_claude_usage_metricserrors are a missingprometheus_clientmodule (environment only).enableArtifactis recorded for NativeStack2604 only; the other host was not read./var/tmp/cc-cc-work/pr1169-micro/MICRO-delta-b550860e.md), three P3s ruled follow-ups, not a fold::linepins atcatalogs/foundation/upstream-surface-dispositions.json:3740and:3752are not done and give no reason. The env-vars digest named here is 54351937, while the live page is 26d89d47.catalogs/foundation/upstream-surface-dispositions.json:3726isnot-applicablewheredeclinedfits.coordination/cc-reads-20261005/full1-pr1169/GPT-VERDICT-b550860e2.md), three P3s, follow-ups:evidence/artifacts/claude-native-practice-20261009/verification.json:5925and:6001citecatalogs/foundation/upstream-surface-dispositions.jsonlines 1619-1628 forforceLoginMethod; the row inserted at:1498moves that key to 1631-1640.test_the_pages_render_the_rows(tests/test_native_practice_ledger_rows_tokeff_new.py:96) passes on the base: it should require each closure marker (C3-0006,A3-0031,B2-0004) on its page before checking agreement with the row.Checklist
catalog-freshness.ymlchanged, with no new permission;zizmorandtests.test_workflow_hardeningpass.🤖 Generated with Claude Code