Skip to content

hcom relaxation: retire the 2026-10-04 safety posture - #771

Merged
seathatflowsinourveins merged 16 commits into
mainfrom
claude/ns2604-hcom-relaxation-20261006
Oct 6, 2026
Merged

seathatflowsinourveins merged 16 commits into
mainfrom
claude/ns2604-hcom-relaxation-20261006

Conversation

@seathatflowsinourveins

@seathatflowsinourveins seathatflowsinourveins commented Oct 6, 2026 •

Copy link
Copy Markdown
Collaborator

Scope

  • What this PR changes: it removes the 2026-10-04 hcom safety posture from main. The user decided at 2026-10-06T03:03:10Z (11:03 PM EDT on October 5) to relax the hcom deny list; the safety rules give way to the seamless, LLM-native workflow. The PR removes:

    • the 52 Claude deny entries;
    • config/hcom-deny.rules;
    • the adapter's running-Codex interlock and its empty-deny refusal;
    • the acceptance checks that required forbidden decisions.

    Peer text stays data and never counts as the user's approval. Upstream hcom.rules becomes the only Codex hcom policy.

  • Base commit: ecfa112764c664d35377dd66b8cfcb67e5a94d60

  • Lane: lane:foundation

  • Owned paths touched:

    • adoption/new-wsl/client-config-map.json
    • under evidence/artifacts/new-wsl-install-plan-20261002/: config/hcom-client-config.py, config/hcom-deny.rules (deleted), install-plan.json, install.sh, accept.sh, check_plan.py, README.md and SOURCES.md
    • tests/test_new_wsl_client_config.py and tests/test_codex_hook_trust.py
    • docs/decisions/2026-10-06-hcom-relaxation.md (new)
    • docs/decisions/2026-10-04-round2-plan-g1-messaging.md (an inline pointer only; no line moves)
    • manifests/evidence.json, in the last commit only
Verdict P1-1 item Main ecfa112 Change
claude_settings.permissions.deny map :912-963 (52 entries) The whole claude_settings object is removed. An empty object would still go through the settings merge.
Prohibition sentence in hcom_config.launch.hints map :977 Removed. The data, approval and configuration sentences stay.
codex_rule_file and config/hcom-deny.rules map :983 Removed. Upstream hcom.rules is the only Codex hcom policy.
Prohibition sentences in peer_instructions map :984 Removed, including the hcom claude prohibition (see below). The data and approval sentences stay.
Quiet interlock and empty-deny refusal adapter :123-128 and :61 Removed. The adapter also no longer merges settings (:98-106), installs rules (:108-114) or runs the forbidden check (:145-150).
Contract check_plan.py :179-196 Replaced by the relaxed contract (below).
post_install --check install-plan row Dropped. post_install is the upstream-derived smoke only.
after_sign_in install-plan row Reduced, not deleted, so stage counts and the after-sign-in owner lists stay valid. Revised at 7eb9bea: it takes the Codex home the way hcom does (CODEX_HOME, else the parent of HCOM_DIR). It exits 78 while retired Claude hcom deny entries remain and until hcom codex writes hcom.rules. Then it passes every *.rules file there to codex execpolicy check; hcom send and hcom term inject must both be allow, so a leftover hcom-deny.rules exits 78.
Decision record supersedes 2026-10-04-round2-plan-g1-messaging.md:65-72 docs/decisions/2026-10-06-hcom-relaxation.md

The verdict cites the same pieces at #723's head, at other lines (map :894-951, :962, :968 and :969; checker :180-197). The table uses main's lines.

The relaxed check_plan.py contract keeps the four hcom_config value checks and the smoke tokens. It asserts three things:

  • no Codex rule file and no Claude hcom settings are mapped;
  • both peer texts keep the data and approval sentences;
  • after_sign_in derives the Codex home from HCOM_DIR, evaluates every rules file there and checks the retired Claude denies.

The hcom claude rule: hook-gap finding at hcom's current release

  • Current release. gh api repos/aannoo/hcom/releases/latest returns v0.7.27, still the latest (published 2026-10-01T02:11:55Z, target 2c5f343b2f9ec4bf2acf49c0431860e7c2ae578b, the existing pin).
  • The gap still holds. Hooks load only in hcom <tool> sessions (release notes, #146). The Claude hook handler exits 0 silently without HCOM_PROCESS_ID (claude.rs:135-140). A plain claude has no hooks (start.rs:412-417). Only hcom claude gets automatic delivery; anything else uses manual hcom listen (README.md:230-246).
  • Upstream main. Main is 20 unreleased commits ahead, and its claude.rs diff leaves the guard untouched.
  • The sentence is dropped (the command center's read at 247d71e, finding P2, option a).
    • The sentence met the task's "stays only if" test, which is a necessary condition, not a sufficient one.
    • The gap is the cost of not launching through hcom claude, not a reason against it.
    • The peer-instruction block now keeps only the neutral route facts: a plain Claude session uses hcom start and hcom listen, which do not wake it when idle, and hcom claude is upstream's automatic-delivery route for Claude Code.
  • Why not option b. Option (b) would keep the rule on the wave-5 transport-scoping basis and add Claude lanes to the command center's orchestration decision. That changes the command center's own decision, so it is not this lane's to make.
  • No recipes. This PR adds no launch, kill, term or transcript recipe.

Fixes after the command center's read at 247d71e (ACK_AFTER)

Finding Fix
P2: the kept hcom claude sentence Option (a): peer_instructions drops "Never launch Claude lanes through hcom claude" and "Claude lanes stay plain Claude sessions" and keeps the route facts. The record's Result and overturn sections are rewritten.
P3: no supersession pointer for the 2026-10-05 combined-rules acceptance Inline pointer at the start of the old record's :196. No line moves; :65, :109 and :196 stay where the new record cites them.
P3: rc 3 at --apply when the user's own ~/.hcom/config.toml differs (pre-existing) Recorded in the decision's host section (see Host evidence below). No code change: run_slot scores any non-zero rc, 78 included, as failed.
P3: the adapter's --check has no caller The docstring marks it a manual operator check that no plan stage runs. The record's post_install row says the same.
P3: the exec_rules_reviewed.json entry stays No change. The read accepts the deviation.

The history was rebuilt so that manifests/evidence.json changes only in the last commit (docs/lanes.md:96-128):

  • f0d9b2f5: the relaxation;
  • 88eb3981: the read's fixes;
  • 10160d89: the registry.

It was pushed with --force-with-lease, replacing 247d71e.

Deliberate non-changes

  • tools/adoption/exec_rules_reviewed.json keeps its hcom-deny.rules entry. This is a deliberate non-change to the verdict's item (e). The entry reviews one exact file for the RTK Codex hook-trust tool and enforces nothing. Removing it would rewrite about twenty trust tests and rtk-rewrite-heads-check.json. It would also make codex_hook_trust.py refuse on any host that did install the file. The plan-wide test that every plan rule file is reviewed or allow-only stays; only its docstring changed, and it is vacuous while the plan ships none.
  • The verdict's item (f) quiet-interlock and quiet-apply wording exists only in Repair native install-plan acceptance after the hcom relaxation #723. On main, git grep -i -E 'quiet (interlock|apply|point)' returns nothing.
  • Configuration values are unchanged. These are title_mode=off, relay.enabled=false, auto_trust_workspace=false and auto_approve=true. The verdict reserves auto_trust_workspace and title_mode to the user.

SOTA sources

Evidence-class table

Claim Evidence class Command / receipt
The plan rows, install.sh, accept.sh, the map and the relaxed contract agree local_integration check_plan.py exit 0
The adapter applies while a Codex PID is reported, leaves Claude settings unchanged, writes no Codex rules directory, runs no subprocess and keeps the data and approval sentences synthetic test_hcom_apply_never_grants_inbound_authorization_or_requires_codex
copy_config still refreshes plan-owned helpers and keeps operator files synthetic test_plan_owned_helpers_refresh_without_overwriting_operator_configuration
The contract fails if after_sign_in falls back to a fixed $HOME/.codex synthetic (throwaway negative control, not committed) check_plan.py --plan-dir <mutated copy>: exit 1, "after sign-in must evaluate every rules file in the Codex home that hcom derives from HCOM_DIR, and report retired Claude hcom denies"
Native-checker probes and the after_sign_in program on frozen fixtures synthetic (real codex-cli 0.160.1 and jq 1.8.1 with scratch homes) Retained receipt evidence/artifacts/hcom-relaxation-20261006/probe-receipt.json, run at 13:11:32Z: allow/allow/no decision over hcom.rules alone, forbidden for term with the retired file, and 8 after_sign_in runs with the expected exits 78,0,78,0,78,0,78,0
The after_sign_in shell logic (HCOM_DIR derivation, every rules file, retired Claude entries) synthetic (stub codex) test_hcom_after_sign_in_reads_hcoms_codex_home_and_every_rules_file
hcom v0.7.27 is the latest release, and the plain-Claude hook gap holds there source_review gh api releases, tags and compare; pinned source read
No host changed (scope) no install.sh, accept.sh or --only agent-messaging run; NativeStack2604 never had the posture (the command center's read-only check)

Review threads at 3b6ea9d, fixed at 7eb9bea

The fix commit is 2c8890c9, and the registry and regenerated outputs are the last commit, 7eb9beaa.

Thread Fix
P1, decision record :131: retain the probe's actual result evidence/artifacts/hcom-relaxation-20261006/ keeps the frozen synthetic hcom.rules (sha256 2a667dcb…) and probe-receipt.json (every argv, sanitized environment, UTC times, exit codes, stdout and stderr). The record's Evidence section cites it.
P2, accept.sh:330: resolve under the Codex home hcom derives from HCOM_DIR The after_sign_in derives CODEX_HOME, else the parent of HCOM_DIR (hcom src/hooks/codex.rs:72-75, src/paths.rs:26-53). The check_plan contract requires it.
P2, accept.sh:335: check the effective policy Every *.rules file in that home goes to the native checker, as Codex loads them (openai/codex rust-v0.160.0 exec_policy.rs:662-700). hcom send and hcom term inject must both be allow. A leftover hcom-deny.rules, or any of the 52 retired Claude hcom deny entries, reports needs_user (78).
P2, README.md:476: the generated handbook still stated the retired posture The handbook's source record (layer consensus, wave 5, agent-messaging) and the WSL recipe's exec-rules sentence were updated. assemble_manifest.py and scripts/build_new_wsl_handbook.py --write then regenerated the outputs, and the handbook receipt follows them.

The installed Codex is now 0.160.1, which adds two commits to rust-v0.160.0, neither touching exec policy.

Local commands run

Run at head 7eb9beaaf9680acebe0d8d1c8b0331cb50e4ff2a with nice -n 19 and PYTHONDONTWRITEBYTECODE=1:

$ python3 scripts/validate.py
exit 0: {"components": 69, "hashed_files": 10322, "profiles": 4, "receipts": 212, "status": "passed"}
$ python3 evidence/artifacts/new-wsl-install-plan-20261002/check_plan.py
exit 0: OK: 84 rows ... 185 commands and 113 acceptance entries agree with the scripts (2 additional checks included)
$ python3 tools/adoption/new_wsl_client_config.py --check
exit 0: check passed (two existing MCP_AUTO_OPEN_ENABLED warnings)
$ python3 scripts/build_new_wsl_handbook.py --check
exit 0
$ (cd evidence/artifacts/new-wsl-definitive-defaults-20261001 && python3 assemble_manifest.py --check && python3 render_tables.py --check ../../../docs/decisions/2026-10-01-new-wsl-definitive-defaults.md)
exit 0, exit 0
$ bash -n install.sh && bash -n accept.sh; git diff --check 3b6ea9d1e..HEAD
exit 0, exit 0
$ python3 -m unittest <the 6 touched modules>; python3 -m unittest <the 4 other pinning modules>
exit 0: 567 tests OK (skipped=3); exit 0: 122 tests OK (skipped=1)

The earlier runs at 10160d8 and 247d71e follow.

$ python3 scripts/validate.py
exit 0: {"components": 69, "hashed_files": 10271, "profiles": 4, "receipts": 212, "status": "passed"}
$ python3 evidence/artifacts/new-wsl-install-plan-20261002/check_plan.py
exit 0: OK: 84 rows ... 185 commands and 113 acceptance entries agree with the scripts (2 additional checks included). Base ecfa11276 gives the same counts, so no stage was dropped.
$ python3 tools/adoption/new_wsl_client_config.py --check
exit 0: check passed, with two MCP_AUTO_OPEN_ENABLED warnings. Base ecfa11276, run in a `git archive` extraction, gives the same exit 0 and the same two warnings.
$ python3 scripts/build_new_wsl_handbook.py --check
exit 0: status passed (no regeneration needed)
$ python3 evidence/artifacts/new-wsl-install-plan-20261002/config/hcom-client-config.py --repo-root . --check-map
exit 0
$ bash -n evidence/artifacts/new-wsl-install-plan-20261002/install.sh && bash -n evidence/artifacts/new-wsl-install-plan-20261002/accept.sh
exit 0
$ git diff --check origin/main...HEAD
exit 0
$ python3 -m unittest tests.test_codex_hook_trust tests.test_new_wsl_client_config tests.test_new_wsl_definitive_defaults tests.test_new_wsl_handbook tests.test_new_wsl_profile tests.test_wsl_new_distro_recipe tests.test_gpt6_family_tiering_20260926 tests.test_gpu_inference tests.test_local_inference_latest_20260926 tests.test_workflow_policy
exit 0: Ran 670 tests in 176.855s, OK (skipped=4)
$ python3 scripts/component_matrix.py --write && python3 scripts/new_host_grand_list.py --write
exit 0, exit 0: no output change

The module list covers every test module that names hcom, agent-messaging, hcom-deny, the plan directory, the map, check_plan, exec_rules_reviewed or the round-2 record. It is the git grep -l over tests/.

Decision record

docs/decisions/2026-10-06-hcom-relaxation.md records:

  • the user's decision, described rather than quoted;
  • the sources;
  • six alternatives;
  • the overturn conditions, both for the posture and for reinstating an hcom claude launch rule;
  • the host boundaries and a completeness critic.

It supersedes docs/decisions/2026-10-04-round2-plan-g1-messaging.md:65-72, plus that record's 2026-10-05 combined-rules acceptance.

Host evidence

Not applicable: no evidence/hosts/ change. NativeStack2604 never had the posture applied, so nothing needs undoing. A host that did apply it keeps its hcom deny entries and ~/.codex/rules/hcom-deny.rules until that host's owner removes them; none is known.

Expected after landing on NativeStack2604. This behavior is unchanged from base.

  • The user's own ~/.hcom/config.toml already exists there.
  • Unless it matches the mapped template's digest, install.sh --only agent-messaging writes the two instruction blocks, keeps the file, prints needs_user and prints agent-messaging | install | 3. run_slot scores that rc as failed.
  • The four mapped hcom values are not written there.

Integration

Checklist

  • New/changed GitHub Actions are pinned to a full commit SHA with a
    version comment (no floating tags). No workflow changes.
  • New/changed workflows declare top-level permissions: {} and grant each job
    only what it needs (contents: read, or an explicitly justified addition). No workflow changes.
  • No secrets are printed, logged or committed; no new required secret was
    added without a documented owner.
  • No new paid hosting, subscription or billing surface was introduced.
  • Peer-owned untracked files and worktrees were preserved (not deleted,
    moved or overwritten).

🤖 Generated with Claude Code

@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Oct 6, 2026
@seathatflowsinourveins
seathatflowsinourveins force-pushed the claude/ns2604-hcom-relaxation-20261006 branch from 247d71e to 10160d8 Compare October 6, 2026 06:00
seathatflowsinourveins and others added 4 commits October 6, 2026 06:41
On 2026-10-06T03:03:10Z the user approved relaxing the 2026-10-04 hcom
deny list: the safety rules give way to the seamless, LLM-native workflow.
docs/decisions/2026-10-06-hcom-relaxation.md records the decision,
sources, alternatives and overturn condition, and supersedes
docs/decisions/2026-10-04-round2-plan-g1-messaging.md:65-72.

- client-config-map: remove claude_settings (the 52 hcom/uvx-hcom deny
  entries), codex_rule_file and the prohibition sentences in the hcom
  launch hints and peer instructions; keep that peer text is data and
  never the user's approval.
- Retire config/hcom-deny.rules: upstream hcom.rules (aannoo/hcom@2c5f343b
  src/hooks/codex.rs:1538-1579) is the only Codex hcom policy.
- hcom-client-config.py: drop --rules-source, the empty-deny refusal, the
  settings merge, the rules install, the running-Codex interlock and the
  forbidden execpolicy check.
- Plan row, install.sh, accept.sh: post_install is the upstream-derived
  smoke only; after_sign_in exits 78 until hcom codex writes hcom.rules,
  then requires the native checker to allow hcom send.
- check_plan.py and tests: replace the posture assertions with the
  relaxed contract; the adapter test now applies while Codex runs.
- "Never launch Claude lanes through hcom claude" stays: at hcom v0.7.27,
  still the latest release, plain Claude loads no hcom hooks
  (src/hooks/claude.rs:135-140).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
P2: drop "Never launch Claude lanes through hcom claude" and "Claude lanes
stay plain Claude sessions" from peer_instructions (the read's option a).
The plain-Claude hook gap at hcom v0.7.27 is the cost of not using hcom
claude, not a reason against it; keep the neutral route facts (start/listen
for a plain session; hcom claude is upstream's automatic-delivery route).
Option b would change the command center's own orchestration decision.
The record's Result and overturn sections now say so.

P3: add the inline supersession pointer at the old record's :196 (no line
moves); mark the adapter's --check as a manual operator check that no plan
stage runs; record the unchanged rc 3 at --apply on a host whose own
~/.hcom/config.toml differs (expected on NativeStack2604).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hot-file commit (docs/lanes.md:96-128): remove the retired
config/hcom-deny.rules entry and re-register the ten changed registered
files with scripts/host_receipts.register_file. component_matrix.py
--write and new_host_grand_list.py --write produced no output change;
scripts/validate.py passes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@seathatflowsinourveins
seathatflowsinourveins force-pushed the claude/ns2604-hcom-relaxation-20261006 branch from 10160d8 to b1f6c45 Compare October 6, 2026 10:43
@seathatflowsinourveins
seathatflowsinourveins marked this pull request as ready for review October 6, 2026 11:20
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-06T11:32:29.083532Z b1f6c45 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

…egistry plus the owned rows)

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

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b1f6c45bde

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread evidence/artifacts/new-wsl-install-plan-20261002/accept.sh Outdated
Comment thread evidence/artifacts/new-wsl-install-plan-20261002/README.md
Comment thread evidence/artifacts/new-wsl-install-plan-20261002/accept.sh Outdated
Comment thread docs/decisions/2026-10-06-hcom-relaxation.md Outdated
seathatflowsinourveins and others added 11 commits October 6, 2026 09:12
P1, decision record :131: retain the native-checker probe's actual result.
evidence/artifacts/hcom-relaxation-20261006/ keeps the frozen synthetic
hcom.rules (sha256 2a667dcb, rebuilt from build_codex_rules at
aannoo/hcom@2c5f343b) and probe-receipt.json: argv, sanitized env, UTC
times, exit codes, stdout and stderr of 5 codex-cli 0.160.1 probes and 8
runs of the after_sign_in program in scratch homes (all as expected).

P2, accept.sh:330: derive the Codex home as hcom does (CODEX_HOME, else
the parent of HCOM_DIR; src/hooks/codex.rs:72-75, src/paths.rs:26-53).

P2, accept.sh:335: evaluate the effective policy, every *.rules file in
that home as Codex loads them (openai/codex rust-v0.160.0
codex-rs/core/src/exec_policy.rs:662-700); hcom send and hcom term must be
allowed, so a leftover hcom-deny.rules reports needs_user, and so do the
52 retired Claude hcom deny entries. check_plan, install-plan, README,
SOURCES and a stub-codex unit test follow.

P2, README.md:476: update the handbook's source record (layer consensus
wave5, agent-messaging: retired gate and usage rule replaced, dated marker
on the residual) and the WSL recipe's exec-rules sentence; the generated
outputs are regenerated in the registry commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hot-file commit (docs/lanes.md:96-128), on the branch's own registry:
- assemble_manifest.py regenerated definitive-manifest.json from the
  updated layer-consensus record (--check now current);
- scripts/build_new_wsl_handbook.py --write regenerated
  docs/new-wsl-handbook.md and .json, and the handbook receipt's output
  digests follow, with a regenerations entry keeping the previous ones;
- host_receipts.register_file registered the three new
  evidence/artifacts/hcom-relaxation-20261006 files and re-registered the
  thirteen changed registered files; component_matrix.py --write and
  new_host_grand_list.py --write ran; scripts/validate.py passes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…egistry plus the owned rows)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…fore the final hot-file commit

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… (hot-file protocol: every hot-file edit in the last commit)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…egistry plus the owned rows)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…fore the final hot-file commit

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… (hot-file protocol: every hot-file edit in the last commit)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…egistry plus the owned rows)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…fore the final hot-file commit

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… (hot-file protocol: every hot-file edit in the last commit)

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

Copy link
Copy Markdown
Collaborator Author

Claude session native-agent-stack-5f: landing at head 9c7cd71c72f122120f3b4ea857960f6a65028df1. The command center (wsl-architecture-design) gave its ACK at 7eb9beaaf968, which reaches this head only through recorded mechanical refreshes whose owned non-registry patch-ids are equal (its carry rule); under the user's 2026-10-04 decision it owns merges that touch the hot registry. The read-only cross-family review (GPT-6.1 Sol max, the packaged Codex SDK worker) returned ACCEPT at 7eb9beaaf968; this head is reached from it through recorded carry edges (equal owned patch-ids, or a cross-family delta read returning ACCEPT at the edge's target), with no P1 item.

Observed main 67c6b6f94b456a3a7b5d28bb1fa34625a808d316. coordination/merge_tree_landing_check.py (sha256 a11649fcf2e5844c…) exit 0:

main 67c6b6f94b456a3a7b5d28bb1fa34625a808d316 head 9c7cd71c72f122120f3b4ea857960f6a65028df1 base 67c6b6f94b456a3a7b5d28bb1fa34625a808d316 merged-tree 037f36244cd044b743660113107d7364c91fe811 merge-tree-exit 0
ok   1: clean three-way merge
ok   2: merged-vs-main paths 23, outside PR-owned 0 []
ok   3: main drift 0 paths, overlap with PR-owned inputs (registry excluded) []
ok   4: registry foreign rows equal True, order preserved True, PR-owned rows 22, unowned top-level keys differing []
ok   5: merged files[] sorted by path with no duplicates: True (10361 rows)
LANDABLE
condition 5: merged files[] sorted and unique (tree 037f36244cd044b743660113107d7364c91fe811)

Required checks at this head: 7 pass . Unresolved review threads: 0.

@seathatflowsinourveins
seathatflowsinourveins merged commit e28d0ee into main Oct 6, 2026
25 checks passed
@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Claude session native-agent-stack-5f: post-merge observation. Landed as e28d0eec112527ac02659ac23753533b8ed39a73 (parent 67c6b6f94b456a3a7b5d28bb1fa34625a808d316), tree 037f36244cd044b743660113107d7364c91fe811. The landed tree equals the checked merged tree and the parent is the observed main.

seathatflowsinourveins added a commit that referenced this pull request Oct 7, 2026
### Scope

Repair the native install-plan checks that lost prompts, ended before delivering results, inherited incompatible environments, or accepted incomplete output. Fresh Claude checks now use task-first native arguments, the shared foreground instruction file and session lock, bounded execution, and independent completion/artifact gates. The plan also carries the gate-1 environment, messaging, conformance, observability and canonical gateway repairs.

- Base: `3d7d4a4b2640c8583d8855670111ef5d023d3e03` (final landing cue after #758; main's registry and stack retained).
- Review head: `979291ded5f39ddf8cdcba4ffb29df4656b407d8`; final table commit `c6f7ca4`, registry commit `979291d`, exactly two commits after reviewed `8484ddbc`.
- Lane: `lane:foundation`; draft until the command center reads this exact head.
- Owned paths: install-plan scripts/configuration/checker/tests; client-config drift fixes; source decisions/receipts and maintained generated outputs.
- Local-model finding 2 is a separately preserved source checkpoint for #810. It is deferred from this critical head under START-PATH/FULL-RESOLUTION; #723 does not wait for that PR.
- AgentsView's operational plan uses 0.44.0, its verified launcher and known-alias migration. #807 carries the shared repository pin. Frozen 0.43.0 observations remain historical; CODE-MODE attribution remains incomplete.

## SOTA sources

- GO-PUSH-723 final microfix follows native-stack@8484ddbcf138cc96c853fb2720fe016daee6b035:tests/test_adoption_docs_consistency.py:815-829 (GFM0.29-gfm §4.10 contiguous-table contract) and scripts/host_receipts.py:register_file. It removes one empty line without changing any row, then updates only that file's sha256 and byte count in the last commit.

- J723/J723b/J723c delta: Node's [WHATWG URL hostname](https://nodejs.org/api/url.html#urlhostname) and [port](https://nodejs.org/api/url.html#urlport); systemd@v259 [microsecond show formatting](https://github.com/systemd/systemd/blob/v259/src/systemctl/systemctl-show.c#L1120); uutils/coreutils@0.10.0 [date](https://github.com/uutils/coreutils/blob/0.10.0/src/uu/date/src/date.rs#L596) and [stat](https://github.com/uutils/coreutils/blob/0.10.0/src/uu/stat/src/stat.rs#L1117); CPython3.13 [recursive paths](https://docs.python.org/3.13/library/pathlib.html#pathlib.Path.rglob). The existing handbook receipt guard remains exact; prior output pairs and observed validation history are retained. Both research clone tag SHAs are enforced. SOURCES.md gives the remaining repository-native contract locators.

- [Claude native headless CLI](https://code.claude.com/docs/en/headless), [system-prompt flags](https://code.claude.com/docs/en/cli-reference#system-prompt-flags) and [environment controls](https://code.claude.com/docs/en/env-vars), checked against installed 2.1.289. The retained byte proofs and all per-row pins are in `evidence/artifacts/new-wsl-install-plan-20261002/SOURCES.md`.
- [openai/codex@a956835d:review.rs:105](https://github.com/openai/codex/blob/a956835d020762cb2b570053af06f643a11c0ecc/codex-rs/core/src/tasks/review.rs#L105): bind the actual native reviewer child, model and effort; native exec_command/write_stdin completion is distinct from an MCP transport timeout.
- [aannoo/hcom@2c5f343b:tests/support/mod.rs:949](https://github.com/aannoo/hcom/blob/2c5f343b2f9ec4bf2acf49c0431860e7c2ae578b/tests/support/mod.rs#L949): first-marker identity capture. Landed #771 supplies the relaxed operational adapter and native rules check; the duplicate A50 historical-only policy was dropped.
- [util-linux@v2.41.3:flock.1.adoc:80](https://github.com/util-linux/util-linux/blob/v2.41.3/sys-utils/flock.1.adoc#L80): lock acquisition bounds; installed timeout is uutils coreutils0.10.0, with native timeout source cited in SOURCES. Queue is at most3600s and Claude execution at most3300s, separately.
- [DeerFlow@v2.1.0 config](https://github.com/bytedance/deer-flow/blob/345f08be00c8a9495079b732a39b46aa9af1584e/config.example.yaml): native headless/keyless provider and model metadata. Canonical Sol-max suffix precedence follows [the #744 decision](https://github.com/seathatflowsinourveins/native-agent-stack/blob/0fb32ee583589f1a0809b20d18dff40ce2f65a1c/docs/decisions/2026-10-05-omniroute-gateway-composition.md#L37); `supports_reasoning_effort=false` is a derived configuration choice, not a statement in #744 or wire-effort proof.
- [MCP conformance@c321dd3 runner](https://github.com/modelcontextprotocol/conformance/tree/c321dd3/examples/servers/typescript): unchanged upstream servers/CLI inside the cited private user/PID/network namespace, with owned group cleanup. External URL acceptance stays needs_owner78 until an in-namespace adapter is supplied.
- [Playwright system dependencies](https://playwright.dev/docs/browsers#install-system-dependencies), Inspect AI0.3.273, OpenHands SDK1.50.1 and SRT0.0.78 pinned sources are recorded per row in SOURCES. The worker retains production's Unix-socket block and the upstream subprocess backend; no test-only relaxation.
- [AgentsView v0.44.0](https://github.com/kenn-io/agentsview/releases/tag/v0.44.0), commit413a87f7bfbd67b2815b1119ac51abc1efbeeaba, official Linux archive SHA037ea7a46d52e06b20363b4aa7cd7f28e32f31d8215803d6e9a0c96bac5818e3. Native B2 results and failed earlier attempts remain separate from frozen0.43 evidence.
- Native repository builders: `assemble_manifest.py:876-896`, `scripts/build_new_wsl_handbook.py`, `host_receipts.register_file`, `component_matrix.py` and `new_host_grand_list.py`; `docs/lanes.md:96-128` governs the last generated/registry commit. Decision corrections are dated addenda; original observed values are preserved.

### Required verdict changes

| Item | Resulting source |
| --- | --- |
| P1 hcom posture | Rebased on #771; dropped15f24fe1 and its generated companion. Relaxed adapter remains operational. Independent naming fix retained. |
| P1 canonical route | Exactly cx/codex gpt-6.1-sol-max accepted with all provider, suffix, status, endpoint and join negatives retained. |
| P2 timeouts/background | Foreground1560000ms; native background-disable env; flock wait outside execution timeout;48 turns/fixture/schema retained. |
| P2 skill config | Native installed default config; concrete triggers and foreground wait; custody proposal outside the operational skill. |
| P2 conformance URL | Unsupplied target stays needs_user78; external URL without namespace startup adapter is needs_owner78. No host-network fallback. |
| P2 gateway custody | Unknown operative assets still fail closed; regular example files retained. Explicit owner backup/staging/reload/restart/read-back/rollback runbook in the dated addendum. |
| P2 citations/evidence | FAST suffix is high; #744 only supplies suffix precedence; removal condition is issue8939/PR8940 and its regression test; cleanup is helper-derived local integration. |
| Rebase/hot files | Main's generated inputs/registry taken; maintained outputs regenerated; all shared generated/registry edits last. |

### Evidence-class table

| Claim | Class | Evidence |
| --- | --- | --- |
| Source agreement and artifact integrity | local_integration | Plan/client-map/handbook checks and maintained generators; final validator result below |
| Completion, custody, endpoint and alias controls | synthetic / local_integration | Four touched fixture modules,379 tests,3 existing skips |
| Earlier native attempts | Their original classes | Existing returned streams/receipts preserved; later success does not replace a failure |
| Model routes and metadata | source_review / local_integration replay | Exact aliases and joined records; where spelling changed and delivered wire effort remain unproved |

The new sanitized source receipt is `evidence/artifacts/new-wsl-install-plan-20261002/fixwave-20261006-verdict-rebase-receipt.json`. It does not declare a new native-ready slot or upstream-suite pass.

### Local commands run

Final GO-PUSH-723 change: exactly one empty line removed at harness-defaults.md:122, plus that file's registry sha256/bytes. Two commits, same base3d7d4a4b; no rebase or other source change. `nice -n 19 ionice -c3 python3 -m unittest tests.test_adoption_docs_consistency` passed39tests/1existing skip in17.985s; final validator69components/10408hashes/4profiles/224receipts0; diff0. A structural comparison proves the registry differs in exactly one file entry. The command center's ACK stands under the explicit range-diff/green-CI condition; neither CI nor landing is claimed by this lane.

Final J723d delta: conformance installs native EXIT/INT/TERM cleanup before the path-length assertion and removes only its frozen owned TMPDIR after process teardown. The early-failure control preserves unrelated cache bytes and the evidence directory; existing success/failure/cancellation controls now also require the allocation gone. Nine focused lifecycle cases passed. After the final landing-cue rebase onto #758, all seven full touched modules passed **589 tests / 3 existing skips in 163.180s**. Final plan0 remains84rows/192commands/113acceptance; F9readonly0 with the same two warnings; native builder/check0; diff0; validator0:69components/10408hashes/4profiles/224receipts. Current handbook pair is c8ecbb5d/d7cc2ccb, with all predecessor output bindings/observations retained. Native [Bash trap documentation](https://www.gnu.org/software/bash/manual/html_node/Bourne-Shell-Builtins.html#index-trap) and the existing identity-checked cleanup seam govern the bounded fix. No other functional delta was added. Completeness critic found no material blocker, source review only. CI/CodeQL and destination apply remain owner gates; the PR stays a draft under the granted landing hold.

Earlier published J723/J723b/J723c delta: all seven full touched modules passed **581 tests / 3 existing skips in 166.987s**, under the CI-pinned Python3.13 environment, explicit private-venv PATH and umask022, at nice19/ionice3. The run includes all four J723c failing modules and the earlier client-config/gateway/conformance modules. Earlier delta attempts remain distinct:99tests/2fixture failures, then focused12pass;468tests/1unsettled synthetic login-path failure, whose unchanged isolated retry passed. No assertion or skip was relaxed. Focused CI4 controls17pass. Then-current validator0:69components/10401hashes/4profiles/224receipts. These remain local integration, not destination acceptance.

The earlier #809-only rebase had proved unchanged foundation bytes. The final #758 landing-cue rebase adds its time-zone/client-config sources, so the full seven-module suite was rerun, with main's source/registry/stack and regenerated publication bindings retained. Review-thread read found no chatgpt-codex-connector threads; the CodeQL thread remains for its scan result.

```bash
nice -n 19 ionice -c3 python3 -B -m unittest -v tests.test_wsl_new_distro_recipe tests.test_agentsview_qualification tests.test_new_wsl_definitive_defaults tests.test_new_wsl_handbook tests.test_new_wsl_client_config tests.test_new_wsl_gateway_composition tests.test_new_wsl_mcp_conformance_lifecycle
nice -n 19 ionice -c3 python3 scripts/validate.py
```

The owner-pending Claude route now produces **needs_owner/78 before loading Promptfoo's configuration**, rather than a failed provider evaluation; malformed supplied routes still fail. Parsed URL host and port must match the plan-owned127.0.0.1:21128 exactly. Both gateway health stages require the keyed microsecond UTC active-start timestamp to be strictly later than both rendered unit files, preserving existing identity and completion gates. CI enumerates nested config files, keeps an exact Inspector script set, uses native Git/Python/env without a forced RTK runtime dependency, and classifies old AgentsView aliases as predecessor fixtures. Source completeness critic found no material blocker; its review ran no tests or host calls.

J723b's native-messaging smoke observation from the dropped A50 draft is retained privately, byte-identical, mode0600, SHA256 **a14356efc2ba3e6c7d44b2d9818538a824b9429fc5d9eaff929ee56e38efee83**. That dropped draft observation is superseded by #771; no public A50 amendment, retired posture or enforcement test is restored.

Earlier source-head validation follows:

```text
python3 -B evidence/artifacts/new-wsl-install-plan-20261002/check_plan.py
rc0:84 rows,192 commands,113 acceptance entries; earlier kind-label mismatch retained.
python3 tools/adoption/new_wsl_client_config.py --check
rc0; two pre-existing Inspector ownership warnings, addressed separately by C11; no apply.
python3 scripts/build_new_wsl_handbook.py --check
rc0.
python3 -B -m unittest -v tests.test_new_wsl_client_config tests.test_new_wsl_definitive_defaults tests.test_new_wsl_gateway_composition tests.test_new_wsl_mcp_conformance_lifecycle
First attempt rc1:379tests/21errors/3skips; undeclared fixture PyYAML import.
Maintained standard-library fixture repair: targeted21cases rc0.
Full retry rc0:379tests,3skips,120.182s; no production/helper/dependency or assertion weakening.
git diff --check
rc0.
nice -n19 python3 scripts/validate.py
rc0:69 components,10385 hashed files,4 profiles,215 receipts. The earlier historical-inventory non-live limitation failure is retained; payload and manifest were clarified together.
```

### Decision record

Current instructions and the complete gateway custody runbook are in the dated addendum to `docs/decisions/2026-10-06-native-plan-gate1-repairs.md`. Its original decision text remains unchanged. The earlier acceptance decision also receives an appended FAST-effort correction. Original historical observations are never rewritten.

### After landing: co-op apply and read-back

The co-op is the sole plan writer. Apply the approved main commit at its booked quiet point; retain the previous gateway prefix and per-asset backup packet. First follow the addendum's gateway custody/reload pre-gates. No lane applies a host change or widens AF_UNIX.

```bash
plan=evidence/artifacts/new-wsl-install-plan-20261002
bash "$plan/install.sh" --only agent-messaging
bash "$plan/accept.sh" --only agent-messaging --stage post_install </dev/null
bash "$plan/install.sh" --only inspect-ai
bash "$plan/install.sh" --only trajectory-analysis
bash "$plan/accept.sh" --only trajectory-analysis --stage post_install </dev/null
# Gateway: execute the owner-custody addendum first; preserve rollback prefix/packet.
bash "$plan/install.sh" --only gpt-gateway
bash "$plan/accept.sh" --only gpt-gateway --stage post_install </dev/null
bash "$plan/accept.sh" --only gpt-gateway --stage service_health </dev/null
bash "$plan/accept.sh" --only gpt-gateway --stage after_sign_in </dev/null
bash "$plan/install.sh" --only research-harnesses
bash "$plan/install.sh" --only skill-vetting
bash "$plan/install.sh" --only mcp-protocol-conformance
bash "$plan/install.sh" --only session-analytics
```

The hcom apply uses the relaxed mapped adapter and native smoke; it has no custom quiet/deny posture. Gateway owner custody, daemon-reload, unit restart and packet-based rollback are fully specified in the addendum. Existing environment credentials are left by pointer and are never copied into the packet. Archive-version rollback for AgentsView additionally requires its consistent pre-migration archive; preserve the existing backup, whose restoration has not been qualified.

For each changed row, retain the install/read-back rc, then one smoke in each client that uses it and subsequent organic counters. Use the canonical shared flock for each exact fresh Claude invocation. Existing repaired-stage commands and returned-artifact gates remain in accept.sh; targetless conformance78 is not a protocol pass. No new measurement campaign or A/B gates this apply.

### Checklist

- [x] Sources pinned; failed attempts and unknown usage preserved.
- [x] No credential values or private client configuration published.
- [x] Peer-owned settlement assertions preserved; no #775 hunks.
- [x] Scoped379-test fixture retry passed; no new skip.
- [x] Final registered-tree validate passed.
- [ ] Exact-head GPT/CC read; the PR remains a draft.
- [ ] Co-op host apply/read-backs and native smoke/counters after landing.
seathatflowsinourveins added a commit that referenced this pull request Oct 7, 2026
### Scope

- Qualify the current plan's Chrome DevTools MCP browser under the legacy `web-research/playwright-cli` slot: six unchanged upstream files pass 129 tests, and fresh Claude/Codex sessions return the required fixture URL, title and console marker, then clean up their created pages. Record why the OmniRoute workhorse stays Lite and define a separate opt-in hosted-search profile with its every-upgrade catalog checklist.
- Add Q55's dated `auth_storage_failure = RING` decision for installed Claude Code2.1.291, preserving the exact host-only currency-gate failure. Keep the current source matcher and deliberate18-type coverage consistent; historical matcher text stays unchanged and the dated amendment carries the current recommendation. No live client configuration changes.
- Address the GPT ACK_AFTER read at `92963dabc`: label the expanded matcher as the current source recommendation with live application pending CC action; date the earlier 17-type observation separately from the recorded 2.1.291 scan of 18 types (nine RING, nine QUIET); record the required installed-client, changelog, tagged-source and official-docs verification order; paraphrase the approved terminal policy.
- Base commit: `3d7d4a4b2640c8583d8855670111ef5d023d3e03`.
- Lane: `lane:foundation`, exactly one lane label. This PR remains a draft for command-center review.
- Owned paths: the three new dated decisions and currency-upgrade checklist; browser qualification and notification scan artifacts; maintained DECISIONS reader, notification source overlay, its linked recipe/terminal decision and deliberate coverage count; evidence registry committed last.

Browser qualification is scoped to the current Chrome MCP owner and its declared local fixture. Microsoft Playwright CLI remains optional catalog history; the unstarted Harbor comparison, broader websites and separate diagnostic-slot qualification are unchanged. The hosted-search profile packet is ready for the CC; actual application/search acceptance is pending. The approved opt-in map metadata row stays deferred until main includes #771; executable producer/template wiring belongs to #716/#770. No live client configuration, host pin, install plan or platform-status file changes here.

## SOTA sources

- [0d5e6506: installed-client notification gate:166-176](https://github.com/seathatflowsinourveins/native-agent-stack/blob/0d5e6506434fab598dee861c749a22e628beb75a/tests/test_windows_terminal_defaults.py#L166-L176) and [single DECISIONS table:20-38](https://github.com/seathatflowsinourveins/native-agent-stack/blob/0d5e6506434fab598dee861c749a22e628beb75a/evidence/artifacts/notification-types-20260929/notification_types_scan.py#L20-L38): installed-client coverage and unchanged fail-closed reader; exact2.1.291 observation/failure is quoted in the new dated decision. Q55's operator ruling classifies a credential/sign-in event needing the user as an escalation.
- [0d5e6506: install-plan.json:1425](https://github.com/seathatflowsinourveins/native-agent-stack/blob/0d5e6506434fab598dee861c749a22e628beb75a/evidence/artifacts/new-wsl-install-plan-20261002/install-plan.json#L1425): selected Chrome MCP1.10.1, legacy slot identity, exact browser and dual-client acceptance.
- [ChromeDevTools/chrome-devtools-mcp@e52c6b59: native page creation](https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/e52c6b59b476c5e04d8dd9fd4bd017ba3b3d65df/docs/tool-reference.md#L240-L248), [navigation](https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/e52c6b59b476c5e04d8dd9fd4bd017ba3b3d65df/docs/tool-reference.md#L223-L235), [snapshot](https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/e52c6b59b476c5e04d8dd9fd4bd017ba3b3d65df/docs/tool-reference.md#L462-L472) and [test runner](https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/e52c6b59b476c5e04d8dd9fd4bd017ba3b3d65df/scripts/test.js#L19): supported interfaces and unchanged six-file test:no-build selection.
- [microsoft/playwright-cli@74354ecc, v0.1.21: README:7-11](https://github.com/microsoft/playwright-cli/blob/74354ecc7a43da16d91a9bc54fa8db8283a3fcf5/README.md#L7-L11): browser automation; no text-only incapability or CLI-removal claim.
- [openai/codex@a956835d, rust-v0.160.0: spec_plan:626-648](https://github.com/openai/codex/blob/a956835d/codex-rs/core/src/tools/spec_plan.rs#L626-L648), [standalone selection:1038-1046](https://github.com/openai/codex/blob/a956835d/codex-rs/core/src/tools/spec_plan.rs#L1038-L1046), [ordinary-turn reasoning context:863-882](https://github.com/openai/codex/blob/a956835d/codex-rs/core/src/client.rs#L863-L882), [developer input:902-938](https://github.com/openai/codex/blob/a956835d/codex-rs/core/src/client.rs#L902-L938) and [parallel calls:989-995](https://github.com/openai/codex/blob/a956835d/codex-rs/core/src/client.rs#L989-L995): confine the non-Lite change to opt-in discovery.
- [Codex catalog loader:2143-2171](https://github.com/openai/codex/blob/a956835d/codex-rs/core/src/config/mod.rs#L2143-L2171), [model overrides:19-60](https://github.com/openai/codex/blob/a956835d/codex-rs/models-manager/src/model_info.rs#L19-L60), and [static manager:757-827](https://github.com/openai/codex/blob/a956835d/codex-rs/models-manager/src/manager.rs#L757-L827): startup catalog replacement and no-op static-manager refresh methods in this cited implementation.
- [openai/codex@rust-v0.160.1: bundled-only export:2068-2095](https://github.com/openai/codex/blob/rust-v0.160.1/codex-rs/cli/src/main.rs#L2068-L2095), [upstream serialization:840-943](https://github.com/openai/codex/blob/rust-v0.160.1/codex-rs/protocol/src/openai_models.rs#L840-L943), and [masked environment formatter:3-24](https://github.com/openai/codex/blob/rust-v0.160.1/codex-rs/utils/cli/src/format_env_display.rs#L3-L24): native metadata generation/readback.
- [OmniRoute v3.8.51](https://github.com/diegosouzapw/OmniRoute/releases/tag/v3.8.51), selected pin c1e30b76: [hosted tools:6-21](https://github.com/diegosouzapw/OmniRoute/blob/c1e30b7676975feb298b49eff6ff58923c04b89e/open-sse/executors/codex/tools.ts#L6-L21), [passthrough:194-206](https://github.com/diegosouzapw/OmniRoute/blob/c1e30b7676975feb298b49eff6ff58923c04b89e/open-sse/executors/codex/tools.ts#L194-L206), [404 fallback:16-42](https://github.com/diegosouzapw/OmniRoute/blob/c1e30b7676975feb298b49eff6ff58923c04b89e/src/app/api/v1/%5B...omnirouteCatchAll%5D/route.ts#L16-L42). [#13788](diegosouzapw/OmniRoute#13788) remains a reviewed-source lead, not a shipped route.

### Evidence-class table

| Claim | Evidence class | Command / receipt |
| --- | --- | --- |
| Six unchanged selected upstream test files work with installed Chrome | native_proven, upstream subset | test:no-build exit0; 129 tests/27 suites/129 pass/0 failures/skips; qualification.json |
| Fresh Claude and Codex return all three required MCP results and close their created page | native_proven, local integration with synthetic fixture | Both native CLI exit0, actual returned events retained; qualification.json |
| Missing fixture fails the title/console predicate | local_integration, synthetic control | Actual about:blank snapshot/empty console rejected; original native MCP observation retained privately |
| Browser/package source and both pinned MCP argument readbacks match | local_integration | Read-only package/Google apt origin and native registration checks, exit0; no credential values returned |
| Public receipt matches original native streams and exact usage once per client | local_integration, independent observation | Read-only critic checks original results, cleanup, native totals and raw hashes; no material finding |
| Opt-in catalog/profile preserves all other model/config fields | local_integration | 11 models, only 10 true Lite flags changed; exact TOML delta; exit0 |
| Lite transport and static catalog behavior | source_review | Pinned Codex and OmniRoute source above |
| Native hosted search succeeds through opt-in profile | pending | CC owns application and the single known-answer run; no such success claimed here |
| Publication integrity | local_integration | python3 scripts/validate.py exit0 after registration |

### Local commands run

```text
Native registration/browser/source checks
exit0: both npx Chrome MCP1.10.1 registrations match required flags;
Google Chrome154.0.8037.97-1 meets minimum and signed Google origin;
installed source HEAD e52c6b59, tracked source clean, Node24.21.0.

PUPPETEER_EXECUTABLE_PATH=/usr/bin/google-chrome-stable npm run test:no-build -- tests/index.test.ts tests/tools/pages.test.ts tests/tools/snapshot.test.ts tests/tools/console.test.ts tests/tools/network.test.ts tests/tools/performance.test.ts
exit0: original native dot output retained.
Same unchanged subset with NODE_TEST_REPORTER=spec
exit0: 129 tests,27 suites,129 pass,0 fail/cancel/skip/todo.

Fresh claude -p (Opus/max,max-turns8,no-session-persistence,stream-json)
exit0 under required shared flock; required actual MCP results and cleanup pass.
Fresh codex --no-daemon exec (Sol/max,ephemeral,read-only,non-Git,--skip-git-repo-check,--json)
exit0; required completed MCP events and cleanup pass.

Both raw-stream/receipt and negative/positive-control checks
exit0; underlying native missing-fixture oracle is false as required.
Native bundled export and exact profile/catalog comparisons
exit0; earlier raw-source/native-export mismatch exit1 retained and corrected through upstream serializer.
scripts/component_matrix.py --write
exit0, no generated report diff.
scripts/new_host_grand_list.py --write
exit0, no generated report diff.
python3 scripts/validate.py
final exit0 after registration: 69 components,4 profiles,214 receipts,10342 hashed files; initial missing changed-test hash failure retained and corrected before push.
python3 -m unittest discover -s tests -p test_validate.py
exit0: 68 tests,OK.
python3 -m unittest discover -s tests -p test_evidence_manifest.py
exit0: 5 tests,OK; printed rejection messages belong to its negative fixtures.
python3 -m unittest discover -s tests -p test_windows_terminal_defaults.py
first exit1: operative matcher quotes were stale; retained and corrected.
final exit0: 42 tests,OK, including the unchanged installed-client currency gate.
python3 -B evidence/artifacts/notification-types-20260929/notification_types_scan.py INSTALLED_CLAUDE CHECKOUT
exit0: auth_storage_failure ring,unknown=[],no source-overlay disagreement.

ACK_AFTER documentation revision, 2026-10-06:
nice -n 19 python3 -m unittest discover -s tests -p test_windows_terminal_defaults.py
exit0: 42 tests,OK.
nice -n 19 python3 scripts/validate.py
exit0 before commits and again after the final registry-only commit:
69 components,4 profiles,214 receipts,10342 hashed files.
git diff --cached --check
exit0 before each commit.
Independent bounded documentation critic
exit0: no remaining P2/P3 wording gaps in the four requested fixes.
```

The complete exact invocation, original JSONL/stderr/test outputs and hashes remain privately retained; the public artifact sanitizes paths/conversations while preserving results and native usage. No new code or behavior suite is authored. No rebuild, install, sudo, credential-file read, client-config mutation or OS restart ran. All native heavy steps were serial and outside the paper window. Previous full publication checks are retained; the final registry check is rerun for these changed artifacts.

### Decision record

- `docs/decisions/2026-10-06-auth-storage-failure-notification.md`: dated Q55 RING row, exact observed2.1.291 assertion, source-only matcher/count alignment and live-application boundary.
- `docs/decisions/2026-10-06-ns2604-selected-browser-native-qualification.md`: scoped browser READY with actual tests/native results, original blocker retained, workload and version-drift reopening conditions.
- `docs/decisions/2026-10-06-codex-omniroute-opt-in-search.md`: separate Lite workhorse/hosted-search profile; reopen only for a shipped standalone route and matched quality comparison.

### Host evidence

No file under evidence/hosts or platform-status edit. The browser record is a compact native-bar artifact; broader component/platform state follows its own policy. Hosted-search application remains pending CC evidence.

- [ ] Host-receipt validation: not applicable, no evidence/hosts change.
- [x] Independent original-stream consistency check recorded; command-center review still required.
- [x] No platform-status change inferred from one receipt.

### Checklist

- [x] No Actions/workflow permission changes.
- [x] No secrets read, printed or committed; no new required secret.
- [x] No new paid hosting/subscription/billing surface.
- [x] Peer-owned files, worktrees, queued branches and live templates preserved.
- [x] Registry committed last; draft retained for review.

### A22 append-only decision correction

Based on pinned main3d7d4a4b, restore terminal-experience.md's entire original prefix byte-identical, then append Amendment(2026-10-06) for Q55's current matcher recommendation and PENDING CC application. Historical measured/decided text stays unchanged. The document consistency test selects the latest dated matcher amendment; strict matcher checks remain, with positive preservation and negative wrong-current/undated-note fixtures.44 touched tests passed at the A22 head; validate passed before/after its final registry-only commit (69 components,4 profiles,223 receipts,10394 hashed files). Scan-producer bytes remain exactlyb12ea18b67f64a13688d1468249c395058a528b8ba44239b472edba897bdf385; no new producer change or receipt observation was prepared. The command center approved its existing3 added lines as generator input (PRODUCER-RULED, 2026-10-06T23:45:52Z); old observations and receipt bytes remain unchanged.

Source: repository append/overlay convention at docs/landscape-domain-notes.md:31-42, the original decision at main3d7d4a4b, Q55's installed-client/scanner/gate sources in the new decision, and the direct A22 ruling. Three expected registry-only historical rebase conflicts took main's registry and native re-registration; a later shared origin/main advancement caused a retained validation failure, corrected by pinning the base SHA. No peer-file conflict was resolved. Final source87880975 touches only the decision/test, registry-onlya9423840 is last. No live configuration application/bell/sign-in or model trial is claimed.

### J790b: explicit paired receipts and selector negative control

The immutable pair is [the old Claude Code 2.1.285 scan](https://github.com/seathatflowsinourveins/native-agent-stack/blob/118a0c852843acdde3f42ebfdd40db0aa783223e/evidence/artifacts/notification-types-20260929/recorded/notification_types_scan_2.1.285.json) (SHA-256 `eb2e772ebd9d0c83e7ec4aab1584c18cb66ccc2237b921c1dfe6165126f2cef8`) and [the new dated 2.1.291 scan](https://github.com/seathatflowsinourveins/native-agent-stack/blob/118a0c852843acdde3f42ebfdd40db0aa783223e/evidence/artifacts/notification-types-20261006/notification_types_scan_2.1.291.json) (`e43b95aab9f5f841c52edc7db700b159495fb211910247e83c5cd7c7f4bf983d`). A new dated Addendum (2026-10-07) gives those direct links alongside the October6 amendment's new-receipt mention. Under the final no-rewrite scope, the entire prior decision and amendment are preserved byte-identical; only four addendum lines are appended. No producer/receipt byte changes.

The selector now chooses the latest dated section containing its operative marker **or a recognized matcher quote**. A new selector-level negative control appends the review's unmarked wrong matcher to the actual decision and verifies that the combined check rejects it. The strict validator stays unchanged. `python3 -B -m unittest tests.test_windows_terminal_defaults` returned0,45tests in5.194s. Before/after final registry validation returned0 with69components/4profiles/223receipts/10394hashes; sourcefa9ed449 then registry-only118a0c85. No rebase; explicit own-branch lease againsta9423840. This head is ready for the co-op micro-check and CC ACK; the PR remains a draft.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant