Skip to content

fix: restore harness discovery and chat recovery - #31

Merged
jake-molnia merged 13 commits into
mainfrom
fix/debug-sweep-20261017
Oct 17, 2026
Merged

jake-molnia merged 13 commits into
mainfrom
fix/debug-sweep-20261017

Conversation

@jake-molnia

@jake-molnia jake-molnia commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

This sweep fixes native Antigravity routing, stale gateway discovery, misleading harness configuration, and recovery paths that could leave chats or workspace progress stuck.

  • Allow native Antigravity authentication and model discovery alongside the gateway, including credentials across worker replacement. Gateway Google sign-in remains separate from native Antigravity sign-in.
  • Refresh compatible gateway models centrally while utility workers sleep. Exclude models explicitly marked as image-output-only, while retaining mixed-output models and unknown metadata. Rebuild both canonical images to publish the new proxy metadata.
  • Show bundled harness configuration rows without install/enable switches in the list. Preserve explicit session preferences and native Antigravity configuration.
  • Open the composer before passive project-default reads settle. Persist pending defaults across reload, preserve typing and explicit overrides, and block Send before side effects until defaults resolve. Optimistic edits remain immediate.
  • Allow provider switching after a failed first startup without native session history. Preserve active-run and negotiated capability checks.
  • Order workspace setup snapshots by attempt before sequence, so tracker retention cannot leave the previous attempt visible.
  • Return empty preview sessions for unbound drafts while preserving real controller and transport failures.
  • Backport upstream 5e5c52b to prevent colliding workflow/check names from hiding a failed CI check.

Validation: integrated focused batches pass with 194, 347, and 104 tests, plus 310 after the immediate-composer follow-up. Affected server, web, client-runtime, and source-control-core typechecks pass. Owners demonstrated failing regressions before fixes. The pinned proxy patch applies cleanly and its focused Go tests pass. Independent review found no blocker in the native/gateway boundaries.

Browser verification uses isolated copied state, not live user data. Desktop comparison confirms five old rows with five toggles become eight configuration rows without list toggles. Native Antigravity fields remain visible; its disabled preference survives reload; the 390px mobile viewport has no document overflow. Download the browser evidence HTML to view embedded before/after screenshots, mobile layout, and the setup-stream replay video. The replay confirms a new sequence-0 attempt replaces an old sequence-9 attempt and rejects a late old event. Delayed-default browser acceptance passes: the mounted draft opens while pending, retains typing, resolves to worktree mode, and preserves an explicit override against a late result.

Live runtime diagnosis measured a controlled fresh cross-worker path at 21.427s and retained seeded resume at 5.4s. T3 uses direct Sandbox resources, not the unrelated devbox warm pool. No runtime/capacity change is included. The original user attempt, duplicate-loading report, and exact active-chat screenshot state were not reproduced. Live Google OAuth and model-turn acceptance remain rollout checks.

Implemented and reviewed with GPT-6 Astra through the Codex harness in T3 Code.

Rollout configuration must add Antigravity to both execution-pool driver allowlists. Native sign-in uses a utility path, but starting a chat enforces the pool list.

jake-molnia and others added 12 commits October 17, 2026 18:59
Encode workflow and check names as a JSON tuple so distinct pairs cannot collide and hide a failed check. Preserve newest-run deduplication within each pair.

Backport upstream 5e5c52b (pingdotgg#19162), including its regression test.

Validated regression failure before the fix, 22 focused tests, source-control-core typecheck, targeted lint/format, and false-green watcher reproduction.

Co-authored-by: Simone <lucenz@proton.me>
Setup counters reset after the tracker retention window. Order snapshots by attempt start time before sequence so a new running attempt replaces an older completed or failed snapshot. Reuse the selector for held, rendered, and recorded progress while preserving out-of-order protection within an attempt.

Verified the regression failed before the fix; 344 focused tests, web and client-runtime typechecks, targeted lint, and formatting checks pass. Original duplicate loading display remains pending authenticated browser reproduction.
Gateway presence blocked native Antigravity configuration even when native credentials were supplied. Preserve its native route and skip gateway discovery for its worker operations. Cover configuration, model discovery, session opening, and retained credentials with gateway mode on and off.
The composer required native history before allowing an idle thread without a session to switch providers. A failed first startup never creates that history, even though V2 supports recovering through a portable handoff.

Allow selection when no session or active run exists. Preserve negotiated capability checks and active-run locks. Cover the client gate, server transition plan, and failed-start recovery with original prompt delivery.
@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Codex Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Codex Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Codex Live turn WebSocket decoded 20.9 KiB 20.9 KiB 0 B (0.0%) 29.3 KiB ✅
Codex Live turn messages 2 2 0 (0.0%) 8 ✅
Claude Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Claude Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Claude Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Claude Live turn WebSocket decoded 21.2 KiB 21.2 KiB 0 B (0.0%) 29.3 KiB ✅
Claude Live turn messages 2 2 0 (0.0%) 8 ✅

Baseline: 5f32ff3 · PR result: 589b65e · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@jake-molnia
jake-molnia marked this pull request as ready for review October 17, 2026 20:05
@jake-molnia
jake-molnia merged commit 310f8f9 into main Oct 17, 2026
15 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