Skip to content

Register the OmniRoute quota-management credential and guard its variable - #1263

Merged
seathatflowsinourveins merged 5 commits into
mainfrom
pre4/omniroute-credinv
Oct 20, 2026
Merged

seathatflowsinourveins merged 5 commits into
mainfrom
pre4/omniroute-credinv

Conversation

@seathatflowsinourveins

@seathatflowsinourveins seathatflowsinourveins commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

This registers the omniroute-quota-management credential in adoption/credential-inventory.json, together with the companion coverage the repository requires for every new entry. It has three commits.

The entry.

  • The owner authorized it on 2026-10-18 for account-mapped GPT pacing observations.
  • It is kept in a private env file and loaded by the masked-injection loader for one variable. Its only consumer is the GPT pacing quota collector.
  • It is metadata only: names, the store kind and path template, the loader, consumers and rotation. It holds no value.

The secret-path guard. scripts/hooks/secret_path_guard.py and its adoption/hooks/claude/SHA256SUMS now cover the entry's variable, as test_inventory_secret_names_are_all_guarded requires.

Rework (third commit). This answers the Claude family's review of d324d1d. The GPT family had accepted that head.

  • Medium. The entry's notes now state the real boundary:
    • visible agent commands are limited by the guard's existing management-request matrix, which this PR leaves as it was and which also admits other read routes;
    • external scripts are outside the guard;
    • only the collector restricts itself to the provider-limits routes;
    • the PR adds one guarded name.
  • Low 1. The entry now follows its sibling omniroute. The two schema-negative tests are restored, and tests/test_credential_status.py is byte-identical to the base.
  • Low 2. docs/secret-storage.md gains the entry's row: the store kind, the path template and the loader, with no value.
  • Info. The commit message states the exact modules and counts run.

SOTA sources

  • native-agent-stack/native-agent-stack at 30ab2e3:
    • adoption/credential-inventory.json: the entry schema and the existing entries this follows;
    • scripts/hooks/secret_path_guard.py: the existing per-entry name coverage, K4_GW_FIXED_ROWS, k4_gateway_url and the documented external-script boundary;
    • scripts/credential_status.py: the private env-file schema;
    • docs/secret-storage.md: the private env-file store rule and its credential table;
    • tools/credentials/credential_run.py: the masked-injection loader the entry names.
  • The decision behind it: the coordinator's pre-4 decision record (horizon run5-bundle/pre4-pacing-33128-decisions-v3.1.md). Its option (a) keeps the pacing gate's pinned credential logic, and step 1 of that option is this inventory entry, made by a NAS PR.

Evidence

The base is 30ab2e3, and commands run from the repository root with python3 -B.

  • scripts/validate.py: exit 0 (71 components, 12,325 hashed files, 4 profiles, 243 receipts). Reproduced on the publishing host.
  • scripts/evidence_manifest.py --check: passed, 12,325 files. Reproduced on the publishing host.
  • The eleven inventory-related test modules ran 893 tests on NativeHorizonNY2 (the lane's run): 739 passed, 153 skipped and one failure.
  • Publishing-host reproduction: 893 tests, 152 skipped and three failures. Two of the failures come from the reproduction's own setup. They are tests.test_claude_review_worker.InvocationTest boundary tests, and with TMPDIR set to a 56-character root-filesystem path they report that path as too long for srt's socket paths. Both pass with the default TMPDIR. The third failure is the expected host-copy failure below.
  • The modules:
    • credential_run, secret_path_guard and credential_status;
    • credential_tools, credential_boot_receipt and host_requests;
    • canary_proof, claude_review_worker and codex_worker_lane;
    • anthropic_key_health and new_wsl_definitive_defaults.
  • The one failure is expected until rollout. test_host_profile_copy_is_verbatim compares the repository guard with the copy installed on the host, and the updated guard is not installed there yet.
  • gitleaks: clean on the three-commit range 30ab2e3..HEAD.

Review and landing

A GPT-6.1 Sol lane on NativeHorizonNY2 prepared the commits, and the coordinator publishes them. The rework commit's tree matches the lane's verified head tree, 19bafe36.

The merge waits for three things:

  • the Claude family's acceptance of the exact new head;
  • the GPT family's acceptance of the exact new head;
  • the required checks.

osv-scanner is currently red on every NAS PR because aiohttp 3.14.3 appears in four lockfiles. The bump PR is being prepared. Once it lands, this branch is updated from main, and both families check that merge delta.

After the merge, the hosts reinstall the guard from the merged head.

🤖 Generated with Claude Code

…work in progress)

Adds the omniroute-quota-management entry authored on 2026-10-18 for the D3.4 pacing gate, and refreshes its manifests/evidence.json size and SHA-256 so validate.py passes. Three credential tests still fail until the companion changes land: the secret-path guard must cover the new variable, and credential_run must declare the entry's masking and pointer handling. Local branch only; not pushed.
Register the new slot in the existing runner masking and pointer-isolation coverage; runtime masking and pointer handling remain inventory-driven. Extend the secret-name guard and refresh its install pin and evidence digests.

Keep schema-negative fixtures tied to their named input row after the inventory insert. Preserve exact error counts and all existing safeguards.

Validated all12 inventory-related modules: 907 tests,753 passed,154 existing conditional skips,0 failures in source/fixture mode; python3 -B scripts/validate.py passed. Local host-copy comparison remains inapplicable to this unapplied patch and is documented separately.
Fold the Claude-family AMEND: describe the unchanged management-request matrix and external-script boundary accurately, distinguish the collector-only GET/POST provider-limits restriction, group the credential after omniroute, restore the two schema-negative tests exactly to base, and document the private_env_file masked loader. Refresh only changed evidence bindings; guard and hook checksum bytes remain unchanged from d324d1d.

Validation: python3 -B scripts/validate.py passed (71 components, 12325 hashed files, 4 profiles, 243 receipts). The eleven-module run used env -u CI -u GITHUB_ACTIONS python3 -B -m unittest with these exact modules:
tests.test_credential_run
tests.test_secret_path_guard
tests.test_credential_status
tests.test_credential_tools
tests.test_credential_boot_receipt
tests.test_host_requests
tests.test_canary_proof
tests.test_claude_review_worker
tests.test_codex_worker_lane
tests.test_anthropic_key_health
tests.test_new_wsl_definitive_defaults

Result: 893 tests in 311.956s; 739 passed, 153 skipped, one expected failure in tests.test_secret_path_guard.SecretPathGuardTests.test_host_profile_copy_is_verbatim (installed host copy differs); exit 1. Nothing was suppressed or installed. An initial verbose attempt timed out at the watcher default before a final summary; the complete retry above used an explicit 30-minute budget. All 13 hook checksums, base test-source equality and git diff --check passed. Staged gitleaks 8.30.1 found no leaks. Range scan follows this commit. LIVE NO-GO; no real credential store or host env file inspected, no OmniRoute calls, host changes or push. Existing tests use synthetic temporary credential fixtures.
@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Oct 20, 2026
Hosted validate-shard-4 failed at 3bf39d1 in
tests.test_upstream_surface_watch.DispositionCitationTests.test_every_cited_line_names_the_key:
the rework added the omniroute-quota-management row at docs/secret-storage.md:24, so the five live
citations in catalogs/foundation/upstream-surface-dispositions.json to lines 1910, 1910, 1912, 1912
and 1923 pointed one line early. They now name 1911, 1911, 1913, 1913 and 1924. Dated evidence
records that cite the file are left as they were. manifests/evidence.json refreshes the catalog's
entry.

Checks: DispositionCitationTests passes; scripts/validate.py passes; evidence_manifest.py --check
passes. The four CachedArtifactTests failures in tests.test_upstream_surface_watch also fail on a
clean origin/main (151f1e4) on this host, so they are host-cache differences, not this change.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@seathatflowsinourveins
seathatflowsinourveins merged commit da55495 into main Oct 20, 2026
32 checks passed
@seathatflowsinourveins
seathatflowsinourveins deleted the pre4/omniroute-credinv branch October 20, 2026 13:22
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