Skip to content

Federation hardening sweep + gate verdict trailer + concurrent-writer detection#88

Merged
tachyon-beep merged 8 commits into
mainfrom
release/consolidation-2026-06-26
Jul 3, 2026
Merged

Federation hardening sweep + gate verdict trailer + concurrent-writer detection#88
tachyon-beep merged 8 commits into
mainfrom
release/consolidation-2026-06-26

Conversation

@tachyon-beep

Copy link
Copy Markdown
Collaborator

What

Four workstreams, all suite-green (4659 passed; ruff/mypy clean):

  1. Gate verdict trailer (689ce771, wardline-eef3d30c7d): an armed severity gate that passes now prints gate: PASSED (--fail-on X) — <reason> + gate: evaluated <population>, so pre-commit hook logs are self-diagnosing. Root-caused from the 2026-07-03 elspeth consumer report (RCA in docs/handoffs/): the "intermittent silent commit swallow" was pre-commit's files-modified check blaming the slowest hook for a concurrent session's writes — wardline exited 0 throughout.
  2. Federation hardening sweep (89563f13): never-follow-redirects on every credential-bearing transport (WeftHttp pre-seeded redirect guard + typed backstop; FiligreeIssueFiler + judge transports converted, closing wardline-f68c483d92 — the 302 cross-origin bearer re-send was live-reproduced pre-fix); fail-closed tri-state git dirtiness for attest/legis signing; strict MCP bool args; handshake de-sniffing; mid-batch partial-emit accounting; URL redaction at every diagnostic seam; monotonic scan-job terminal statuses; zero-files gate honesty. Reviewed by a 15-agent panel + dedicated security pass; follow-ups tracked (wardline-7924d67d3b, wardline-6f9eece880, wardline-2e6ad7772c).
  3. Concurrent-writer detection (c8debbb9): the scan stat-snapshots the discovered inventory and re-checks after analysis; mid-scan mutation surfaces as a non-gating WLN-ENGINE-TREE-CHANGED-DURING-SCAN FACT + CLI warning naming the pre-commit consequence. Live-verified with a racing writer.
  4. Doctor store-probe hardening reconciliation (64150a43): carried local main's stranded bdd84eb2 hardening (bool-version false green; ValueError probe crash) into the consolidation line per that commit's own reconciliation note.

Verification

  • Full suite 4659 passed / ruff check + format clean / mypy clean at every commit.
  • Redirect refusal pinned by real-socket tests (redirect target provably receives nothing; bearer never crosses origins).
  • Gate trailer + concurrent-writer warning live-verified against real scans.

🤖 Generated with Claude Code

John Morrissey and others added 8 commits July 1, 2026 16:01
- PDR-0011: maturity is informational-only, preview gates like stable; closed the
  G2 false-green (6 ERROR rules incl. SQLi/XXE/SSTI were silently non-gating).
- v1.2.0 merged (PR #83), tagged, PyPI-published, uv-installed — owner-directed;
  resolves the standing release gate.
- metrics.md: G2 (false-green closed) + G1 (preview-gate FP watch) readings; no trigger crossed.
- Tracker: closed wardline-4ada23bb09; filed wardline-5dc82dd22a (P3 maturity-display follow-up).
- Now bet (seam probe) NOT advanced — 3rd reactive-P1 detour; flagged for the owner.
…ite examples

The sibling-URL resolution ladder in weft.md/configuration.md/agents.md
predated server-mode discovery: it listed only flag > env > ephemeral.port
and claimed install/doctor "persist no URL". In reality
resolve_filigree_url derives the project-scoped
/api/p/<prefix>/weft/scan-results from ~/.config/filigree/server.json for
a server-registered repo (flag optional), and wardline install bakes that
scoped target into .mcp.json (install/mcp_json._desired_sibling_url).
Also swaps the emitter example off the unscoped URL, which server-mode
Filigree fail-closes (its N1 ProjectMiddleware), and notes the ?project=
query alternative. Doc-only.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…dline-eef3d30c7d)

A clean 'wardline scan --fail-on <SEV>' pass printed no gate verdict — the
echo chain covered only NOT_EVALUATED / FAILED / unanalyzed-only-PASSED, so a
hook-captured log of a passing armed scan was indistinguishable from a silent
wardline failure. Root-caused from the elspeth pre-commit consumer report
(2026-07-03): the intermittent first-commit failures were pre-commit 4.6.0's
files-modified-during-hook check (run.py:203-235) attributing a concurrent
session's tracked-file writes to the slowest whole-tree hook; wardline exited
0 in every observed occurrence (no '- exit code:' line; summary printed —
unreachable on any exit-2 path). Reproduced in a sandbox both ways
(fail + clean retry).

The CLI now ends an armed pass with
  gate: PASSED (--fail-on <SEV>[, --fail-on-unanalyzed]) — <reason>
  gate: evaluated <population>
on stderr — same knob-attribution grammar as the FAILED branch; decision layer
unchanged (GateDecision already carried verdict=PASSED + reason + evaluated).

RCA + audit evidence (no silent exit-2 paths; publishes cannot escalate;
torn reads are gate-eligible per-file findings) in
docs/handoffs/2026-07-03-elspeth-precommit-intermittent-rca.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… fail-closed signing, strict MCP args, honest partial-emit accounting

The 2026-07-02 federation-surface hardening sweep, reviewed (15-agent panel +
dedicated security pass, 2026-07-03) and completed:

- WeftHttp refuses all HTTP redirects (pre-seeded stdlib redirect-loop guard +
  typed WeftRedirectError backstop); 3xx is a status-band outcome everywhere —
  verify_token inconclusive, emit failure, promote/judge loud. COMPLETION
  (wardline-f68c483d92): FiligreeIssueFiler and the judge OpenRouter transport
  — the last two raw-urlopen credential paths — now route through WeftHttp;
  live-reproduced 302 cross-origin bearer re-send + forged-success parse now
  pinned impossible by real-socket tests.
- attest/legis tri-state git dirtiness fails closed (a failed git status no
  longer signs a falsely-clean bundle); verify_attestation never coerces
  unknown -> clean.
- MCP: strict bool args (string "false" -> ToolError; fix.apply pre-fix
  APPLIED on "false"), handshake gate de-sniffed (no pytest bypass).
- Filigree emit: mid-batch partial accounting (chunks_landed, partial
  failures, dropped-mid-emit warning); URL redaction at every diagnostic seam
  incl. scan-job status.json persistence.
- scan_jobs: monotonic terminal statuses (parent/worker race).
- gate: zero-files-scanned -> NOT_EVALUATED (no_files_scanned), never a
  vacuous PASSED.
- loomweave: resolve halts on hinted 401/403 (ResolveResult.auth_status);
  zero-fact scans report the taint-store write skipped, not written.

Review follow-ups tracked: wardline-7924d67d3b (CLI text for partial emits),
wardline-6f9eece880 (auth_status consumers), wardline-2e6ad7772c (bool-arg
test pins for write-path tools). Suite 4652 green; ruff/mypy clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…arpline session

Preserves the shipped-result handover for weft-9a35aa00e7 / AMBER-2 (producer
+ consumer both released in v1.2.0); the two remaining acts are hub-side
governance (bless weft.wardline.scan_manifest.v1, close the ticket).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…n as a non-gating FACT

On a shared checkout under pre-commit, a second session writing files during
the scan window gets the HOOK failed by pre-commit's diff-before/diff-after
check with output indistinguishable from a healthy run (2026-07-03 elspeth
RCA). The scan now stat-snapshots the discovered inventory at discovery
(st_mtime_ns, st_size) and re-checks after analysis; any file written,
truncated, or deleted in the window becomes a WLN-ENGINE-TREE-CHANGED-DURING-SCAN
FACT (severity NONE, never gates, not an under-scan) naming the files and the
pre-commit consequence, echoed by the CLI as a warning and carried in the MCP
result and artifact via the NESTED-SCAN-ROOT FACT-carrier pattern.

Detection sees only the discovered inventory — a concurrent write to a
non-source tracked file is invisible here, hence the message's "may".

3 engine tests (mutation via the progress_callback seam, deletion, quiescent
negative) + 1 CLI echo test; glossary line-anchors re-synced after the run.py
insertions. Suite 4656 green; live-verified with a racing writer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…lidation line

Local main's two stranded commits (47debbe2 forward-port + bdd84eb2 hardening)
were reconciled per bdd84eb2's own NOTE: the branch already carries the evolved
repo_binding probe (no-follow reads, symlink honesty), but both soundness edges
the hardening closed existed here identically:

- NO FALSE GREEN: `version: true` (bool is an int subclass, True == 1) reported
  binding_ok=true with a non-integer schema_version. _is_servable_version now
  gates both the readable and mismatch branches.
- HONEST UNREADABLE, NOT A CRASH: a >4300-digit version makes PyYAML raise
  ValueError (not YAMLError) and crashed the probe; catch broadened, message
  stays content-free. (The non-UTF-8 case was already handled by this branch's
  _read_store_text_no_follow decode guard — test carried anyway as a pin.)

3 regression tests ported. After this, local main's unique content is fully
subsumed and main can be realigned to origin/main.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@tachyon-beep tachyon-beep merged commit c450f17 into main Jul 3, 2026
6 of 7 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