Skip to content

fix(server): clarify Forgejo conflict and validation failures - #862

Merged
rynfar merged 2 commits into
pylonfrom
codex/t3-11593-mixed
Sep 27, 2026
Merged

rynfar merged 2 commits into
pylonfrom
codex/t3-11593-mixed

Conversation

@rynfar

@rynfar rynfar commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

Forgejo API failures currently give users generic copy even for conflict (409) and invalid-request (422) responses. This change gives those statuses specific, stable descriptions while preserving the observed HTTP status and reason for authentication, forbidden, rate-limit, and not-found failures. Error bodies are not read, so a broken body stream cannot erase a known status.

This is a partial, privacy-preserving adaptation of T3 #11593. It deliberately does not display the server's exact merge-rejection message: an untrusted Forgejo response can contain confidential text or HTML. The exact rejection reason remains unavailable from this path. The remaining web UI hunks of #11593 are outside this PR; its iOS terminal fix already landed in #770.

Validation: vp test run apps/server/src/sourceControl/SourceControlDiscovery.test.ts (27 passed); vp run --filter t3 typecheck; scoped vp lint; git diff --check. An independent adversarial review found that the initial response-body parser could leak short secrets and lose HTTP classification when its stream failed; both were removed and re-reviewed at the final head.

Model: GPT-6 Sol. Harness: Pylon.

@vercel

vercel Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
pylon-marketing Ignored Ignored Preview Sep 27, 2026 3:30am UTC

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M labels Sep 27, 2026
@github-actions github-actions Bot added size:XS and removed size:M labels Sep 27, 2026
@rynfar rynfar changed the title fix(server): surface safe Forgejo API errors fix(server): clarify Forgejo conflict and validation failures Sep 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 14.0 KiB 14.0 KiB −18 B (−0.1%) 15.1 KiB ✅
Codex Thread snapshot wire 7.3 KiB 7.3 KiB +6 B (+0.1%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.7 KiB 6.7 KiB −24 B (−0.3%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 58.0 KiB 58.0 KiB 0 B (0.0%) 66.4 KiB ✅
Codex Live turn messages 9 9 0 (0.0%) 21 ✅
Claude Total thread wire 14.0 KiB 14.0 KiB −14 B (−0.1%) 15.1 KiB ✅
Claude Thread snapshot wire 7.3 KiB 7.3 KiB −1 B (−0.0%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.7 KiB 6.7 KiB −13 B (−0.2%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 58.9 KiB 58.9 KiB 0 B (0.0%) 66.4 KiB ✅
Claude Live turn messages 9 9 0 (0.0%) 21 ✅

Baseline: 69f26bc · PR result: 0ab82f4 · 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: 115.7 KiB
  • Claude decoded thread snapshot: 116.4 KiB

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

@rynfar
rynfar merged commit 5319f67 into pylon Sep 27, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant