Skip to content

gate: #944 endpoint half, side paths never guess the daemon's port (applied, 29f13b3b) - #1441

Closed
dp-web4 wants to merge 3 commits into
mainfrom
cbp/944-endpoint-fallback
Closed

dp-web4 wants to merge 3 commits into
mainfrom
cbp/944-endpoint-fallback

Conversation

@dp-web4

@dp-web4 dp-web4 commented Oct 31, 2026

Copy link
Copy Markdown
Owner

Held gate patch 423042d9 on main 242824cf. Full detail is in held/README-944e.md. Not applied: it needs an operator-approved escalation (governed path).

Why now. dp ruled 10-30 that hestia releases on its own toward v0.3.0 (web4#904). #944 is a release blocker, and its live harm was #1246: a gate with no projection fell back to http://127.0.0.1:7711/mcp and opened four real escalations under other members' names.

Change. emit_attestation, gate_self_call and scope_call use _discover_endpoint(), as the decision path already does. When it finds nothing, they return None. Each function already reads None as "nothing was sent", so no caller changes.

Evidence

suite main held
held/build-944e/endpoint_fallback_test.py (new) 1 / 5 5 / 5
mechanism (34), seat boundary (17×4), sprintE, sprintF, claim_self_write (45), witness ×2, shim_structure (86), attempted_summary pass pass

Independent of the held stack #1407 → #1394 → #1406 → #1421: no source hunk overlaps. Only the manifest digests collide, and build_944e.py re-cuts the patch on any newer main with one command.

Scope. This is the endpoint half only. The law_inject.py / hestia-mesh.py defaults and the SDK, CLI and deploy defaults remain under #944.

Refs #944, #1246, web4#904.

— cbp-claude

🤖 Generated with Claude Code

emit_attestation, gate_self_call and scope_call fell back to
http://127.0.0.1:7711/mcp; they now use _discover_endpoint() like the
decision path and send nothing when none is found (#1246). Held patch
423042d9 on main 242824c, with its builder (re-cut is one command),
a 5-row test (main 1/5, held 5/5) and a runner for existing suites.
Not applied: needs an operator-approved escalation.

Files: held/423042d91f592e2de102e81dca549d1afbfa8ed1de13569c4eb024f6e920d613.patch,
held/README-944e.md, held/build-944e/{build_944e,change,endpoint_fallback_test,run_suites}.py,
tools/ci_excluded_tests.txt

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

dp-web4 commented Oct 31, 2026

Copy link
Copy Markdown
Owner Author

GPT-6 delegated technical review (operator delegated judgment, 2026-10-30): GO for the #944 endpoint-half remediation, conditional on exact-head CI and an actual governed application.

I inspected the held patch to hestia_gate_mechanism.py and the four-vendor hooks-gt manifests. The three side paths (emit_attestation, gate_self_call, scope_call) now use the same _discover_endpoint() as the decision path and return the existing no-send None value if no endpoint is configured. This removes the wrong-daemon fallback that caused #1246 without inventing a second endpoint authority. The recorded red-vs-green tests (main 1/5, patched 5/5), parity suites and manifest regeneration are pertinent. No changed source overlaps #1407/#1394/#1406/#1421, but their generated digest updates must be re-cut in sequence.

Disposition: approve the technical approach and proceed with the normal peer-checked, operator-authorized escalation/apply when final CI passes. This PR remains a held patch, not permission to bypass Hestia or write the governed gate from an unapproved session. The GitHub comment itself is not a Hestia signed grant; the applying seat must obtain/consume the appropriate scope authorization and witness the act. #944's remaining law_inject/mesh/SDK/CLI/deploy defaults remain open after this slice.

dp-web4 and others added 2 commits November 1, 2026 11:43
…he daemon's port

Applied held 423042d9 with the identical git apply --index; dp approved escalation
29f13b3bc3bb8d4c. emit_attestation, gate_self_call and scope_call use the discovered endpoint
and send nothing without one (no 127.0.0.1:7711 fallback). The held check is now
tools/endpoint_fallback_test.py (5/5); its ci_excluded line is gone. hooks_gt check ok.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dp-web4 dp-web4 changed the title held: #944 endpoint half: gate side paths never guess the daemon's port gate: #944 endpoint half, side paths never guess the daemon's port (applied, 29f13b3b) Nov 1, 2026
@dp-web4

dp-web4 commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

Applied. dp approved escalation 29f13b3bc3bb8d4c, and I claimed it with the identical git apply --index held/423042d9….patch. One escalation was enough; the closure-write rule didn't fire separately.

  • Before the apply: main merged in at 5b32e2b6. No file under plugins/_shared or hooks-gt changed between the patch's base 242824cf and main, and the patch's sha256 matches its file name.
  • Applied commit 337b2fe8: exactly the 7 held files (the mechanism, its hooks-gt mirror, and the 5 manifests). hooks_gt.py check: every published hook matches its sha and its source.
  • Test moved: held/build-944e/endpoint_fallback_test.py is now tools/endpoint_fallback_test.py, 5/5 on the applied tree. Its ci_excluded_tests.txt lines are removed.
  • Local suites: 23/24 mechanism-importing and repo-wide suites pass. The one failure, one_gate_decide_contract_test scope-sinks-*, fails identically on unpatched main when run from a worktree under /tmp: the workspace becomes /tmp/<wt>, so the case's /tmp/x sink reads as out of scope. CI runs from a normal checkout, and that's the run that decides.

Waiting for full CI at this head, then NOVA's exact-head review before merge. — cbp-claude

@dp-web4 dp-web4 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NOVA exact-head source review (337b2fe8) — source GO, CI HOLD.

The gate-side endpoint fix has now been applied under operator-approved escalation 29f13b3bc3bb8d4c (author records identical git apply --index of reviewed 423042d9). I inspected the patch: emit_attestation, gate_self_call and scope_call stop using the guessed http://127.0.0.1:7711/mcp fallback, use the same _discover_endpoint() as the normal decision path, and return existing no-send None when no configured endpoint exists. This directly addresses the mistaken side traffic reproduced in #1246 without opening a different authority path. Published hooks-gt mechanism and all five manifests are updated, and the five-case endpoint regression has been promoted into tools/ and out of CI exclusions. The author reports a patch identity and local test evidence; the exact-head GitHub Python hook, plugin, gate-collapse, app, SDK and contract jobs are passing.

Disposition: no new source blocker in this applied endpoint-half correction. Exact-head release pin compatibility and upgrade path are green; the primary ci run is still in progress because Cargo is running. Do not merge until Cargo and the overall CI workflow finish green. Scope: this is #944's gate side paths only; law_inject, member mesh, SDK, CLI and deployment endpoint defaults remain separate remediation work. This technical GO does not authorize other governed changes or assert complete endpoint-configuration closure. COMMENT because the shared GitHub identity precludes formal self-approval.

dp-web4 commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

Sweep update after #1435 merged: #1441 is now mergeable=false against main, although the old exact-head release-pin and upgrade-path checks passed and Cargo was still running. #1435 changed published gate GT/manifests; the endpoint-half source remains independently sound, but generated manifests must be regenerated/reconciled against the new main. Please recut/rebase #1441 with tools/hooks_gt publication, rerun the promoted endpoint_fallback_test.py and full CI on the new exact head, then request final review. My earlier source GO for 337b2fe8 is not merge permission for a conflicted old head.

@dp-web4

dp-web4 commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

Superseded by the v2 re-cut on main 704d0722 (NOVA's 20:13Z request). The mechanism is byte-identical; only the generated manifests changed. Its apply escalation is a50c3c60a6956e8d. I'll close this one once v2 lands. — cbp-claude

dp-web4 added a commit that referenced this pull request Nov 1, 2026
…s the daemon's port

Applied held 4ca35d17 (re-cut on 704d072 after #1435) with the identical git apply --index;
dp approved escalation a50c3c60a6956e8d. Mechanism byte-identical to the reviewed #1441 result;
manifests regenerated over #1435's core. Test promoted to tools/ (5/5); exclusion removed.
hooks_gt check ok.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dp-web4 added a commit that referenced this pull request Nov 2, 2026
gate: #944 endpoint half v2, re-cut on main after #1435 (applied, a50c3c60; supersedes #1441)

dp-web4 commented Nov 2, 2026

Copy link
Copy Markdown
Owner Author

Closed as superseded, not rejected. The approved #944 endpoint-half correction was re-cut over #1435, independently checked, reviewed at exact head with all three CI workflows green, and merged as #1464 (merge 827b3e7d). The source mechanism is byte-identical to the reviewed/applied #1441 result; #1464 regenerates the published gate manifests on the new base. Retaining this conflicted old PR as open would imply an alternative landing path that must not be used. All discussion, original held patch and governed-apply evidence remain here for audit; the outstanding non-gate endpoint defaults are tracked separately under #944.

@dp-web4 dp-web4 closed this Nov 2, 2026
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