Skip to content

fix(t3): transport reach and writer-mode note (#273) - #274

Merged
mergify[bot] merged 2 commits into
mainfrom
fix/273-t3-followups
Nov 6, 2026
Merged

mergify[bot] merged 2 commits into
mainfrom
fix/273-t3-followups

Conversation

@ericlitman

Copy link
Copy Markdown
Owner

Why

Two follow-ups from Unfret's review of PR #272: the T3 transport could not be live-gated on its own, and Eric's decision that T3-routed writers skip the writer-sandbox opt-in was not written down. Fixes #273.

Summary

 verify-open-pstack/scripts/core.ts   paths that reach t3:dispatch
   features/recipes.ts, provider-dispatch.md, codex-tools.md, setup-pstack/SKILL.md
+  scripts/harness.ts, scripts/doctor.ts
 provider-dispatch.md  ## T3 host, "On the T3 route"
+  the writer-sandbox setting governs only standalone-route lanes; a T3-routed writer runs
+  with the T3 session's runtime mode and needs no setting line
 setup-pstack/SKILL.md  Codex setting question
+  ...and say that the line does not apply to writer lanes that T3 runs.

Eric, 2026-11-06, on T3 writer lanes bypassing the opt-in: "T3 for everything".

Evidence

  • Reach test in core.test.ts: Before (old core.ts): 33 pass, 1 fail. After: 34 pass.
  • Live gate: pending; t3:dispatch with the mandatory --self-test, nothing else.

Merge Danger

Door: two-way

Blast Radius: verifier and docs

Gate results

On f9bcda9: bun run test 0, bun run typecheck 0, bun run static 0, claude plugin validate plugins/pstack 0.

Introduced by: #272

🤖 Generated with Claude Code

ericlitman and others added 2 commits November 6, 2026 12:17
Refs #273

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

Refs #273

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

mergify Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Merge Protections

🟢 All 2 merge protections satisfied — ready to merge.

Show 2 satisfied protections

🟢 Queue ready pull requests

Automatically queue non-draft pull requests targeting main after verify and live-gate pass on the head and every review thread is resolved.

  • #review-threads-unresolved = 0
  • -draft
  • check-success=live-gate
  • check-success=verify

🟢 🚦 Auto-queue

When all merge protections are satisfied and these conditions match, this pull request will be queued automatically.

  • -files~=^\.github/
  • base = main

@ericlitman

Copy link
Copy Markdown
Owner Author

Live evidence: Open Pstack

  • Candidate SHA: f9bcda9260b1699bf052cc70001473096e22a6e7
  • Base SHA: 5650d799af3aba70e703c98b39c5f8ff5562bd26
  • Result: PASSED — named features verified
  • Self-test: completed in both harnesses
  • Planned sessions: 3 (limit 12)
  • Publisher revision: f9bcda9260b1699bf052cc70001473096e22a6e7
  • Evidence-set SHA-256: 619ba2145099d396e44dc93acd012813bdffa89f27ec21516f1fae8482938d1d
  • Installation (claude): CLI 2.1.318 (Claude Code), plugin 1.19.0, candidate f9bcda9260b1699bf052cc70001473096e22a6e7, tree 343e52dc93a1941dd68c0239af754d8f10c497c4552ae568cd1587edb9e93f13.
  • Installation (codex): CLI codex-cli 0.167.0, plugin 1.19.0, candidate f9bcda9260b1699bf052cc70001473096e22a6e7, tree 343e52dc93a1941dd68c0239af754d8f10c497c4552ae568cd1587edb9e93f13.
  • Installation (t3): CLI t3 v0.1.7, plugin 1.19.0, candidate f9bcda9260b1699bf052cc70001473096e22a6e7, tree 343e52dc93a1941dd68c0239af754d8f10c497c4552ae568cd1587edb9e93f13.
  • Observation (claude / project-skill): surface claude -p stream-json with the candidate plugin-dir; action recipe project-skill: doctor; result passed: doctor:exit-0 doctor:skill-loaded doctor:doctor-ran doctor:doctor-canonical-pass; 4 assertions machine-checked; transcript SHA-256 4c52ba0bb10024242377e322d2a22533cffadc9ef9e0d9bc9e1b33fb1df7f3a8; artifact-set SHA-256 09af4e5c4d9e27cdb8e80412759f2901ce0ffa1273fb34dc5b1be73702706fec.
  • Observation (codex / project-skill): surface codex exec --json with the run-owned candidate installation; action recipe project-skill: doctor; result passed: doctor:exit-0 doctor:skill-loaded doctor:doctor-ran doctor:doctor-canonical-pass; 4 assertions machine-checked; transcript SHA-256 84560eec743ee08cfe207a2e42892dfac46ec7b4e8406abe32f48e239ede092c; artifact-set SHA-256 ded8024d40e6bc77610f7e850123a6a3dd64fa6af4ba5775db04c477c831fecc.
  • Observation (t3 / dispatch): surface t3 thread start on a run-owned T3 server whose Claude provider loads the candidate plugin-dir; action recipe dispatch: dispatch; result passed: dispatch:exit-0 dispatch:skill-loaded-from-candidate dispatch:delegate-request dispatch:delegate-settled dispatch:marker-returned; 5 assertions machine-checked; transcript SHA-256 90038b44a6ecbfecee8c2626e083cd847391c09a7ea93e344cf52aa216b4acfa; artifact-set SHA-256 1e6d220ec906c081d5f13963827e685df514c0d0c1d6b14d8342a861e2a97e45.
  • Policy: every new head requires a fresh run; this verifier does not change PR state, queue, or merge.

@mergify
mergify Bot merged commit d51e895 into main Nov 6, 2026
6 checks passed
@mergify

mergify Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

✅ Merged into main as d51e895 at 17:22 UTC

Less than a minute in the queue, with no time running CI.

So far

  • ✅ Entered the queue Fri 6 Nov, 17:22 · rule default · triggered by merge protections
  • ✅ Checks skipped · PR is already up-to-date
  • ✅ Merged 17:22 · d51e895 · merge
8 merge conditions met
  • github-review-approved · required by GitHub repository ruleset rule Protect main
  • #review-threads-unresolved = 0 · required by Merge Protections rule Queue ready pull requests
  • -draft · required by Merge Protections rule Queue ready pull requests
  • check-success=live-gate · required by Merge Protections rule Queue ready pull requests
  • check-success=verify · required by Merge Protections rule Queue ready pull requests
  • any of · required by GitHub repository ruleset rule Protect main:
    • check-success = @github-actions/verify
    • check-neutral = @github-actions/verify
    • check-skipped = @github-actions/verify
  • any of · required by GitHub repository ruleset rule Protect main:
    • check-success = live-gate
    • check-neutral = live-gate
    • check-skipped = live-gate
  • any of · required by GitHub repository ruleset rule Review gate:
    • check-success = @mergify/Mergify Merge Protections
    • check-neutral = @mergify/Mergify Merge Protections
    • check-skipped = @mergify/Mergify Merge Protections

Times in UTC · dashboard · how the merge queue works

@unfret-eal

unfret-eal Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

✅ No blocking findings

Walkthrough

This PR closes two gaps left by #272. First, the verifier now treats edits to `scripts/harness.ts` and `scripts/doctor.ts` as touching the T3 transport, so changes to those files trigger the `t3:dispatch` gate. The reach test is updated so `harness.ts` moves to the positive list and `verify.ts` takes its place as the negative example. Second, it documents Eric's decision ("T3 for everything") in two places: `provider-dispatch.md` and the setup-pstack Codex question. Both now say the writer-sandbox setting applies only to standalone-route writers. A T3-routed writer runs with the T3 session's runtime mode and needs no setting line. The author reports passing test, typecheck, static and plugin-validate gates, while the live T3 gate is still pending.

Area What changes
Verifier T3 reach `harness.ts` and `doctor.ts` are added to `T3_DISPATCH_PATHS`, with the reach test updated to match.
Writer-sandbox docs `provider-dispatch.md` and setup-pstack now state that the writer-sandbox opt-in does not apply to writer lanes that T3 runs.
Details
Lane / stage Model Effort Outcome Duration
broad-gpt-5.6-sol-xhigh / review openai/gpt-5.6-sol → gpt-5.6-sol · primary xhigh succeeded 2 min 9 s
broad-opus-5.5-max / review anthropic/claude-opus-5-5 → claude-opus-5-5 · primary max succeeded 4 min 26 s
focal-gpt-5.6-sol-xhigh copy / review openai/gpt-6.1-sol → gpt-6.1-sol · primary xhigh succeeded 5 min 49 s
focal-gpt-5.6-sol-xhigh copy 2 / review openai/gpt-6.1-sol → gpt-6.1-sol · primary xhigh succeeded 5 min 8 s

First review of this pull request.
4 reviewers finished.
Commit f9bcda9.
Check run.
Run: GET /unfret/run/panel:f9bcda9260b1699bf052cc70001473096e22a6e7:9OVF8lnMaTM:8HCwFb59c-E.

@unfret review · @unfret status · @unfret help

@unfret-eal unfret-eal 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.

✅ No blocking findings
Check

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.

T3 follow-ups from PR #272's review: transport reach and writer-mode note

1 participant