Upstream sync to fee10def1 (232 commits) with ancestry repair - #250
Upstream sync to fee10def1 (232 commits) with ancestry repair#250wizzoapp[bot] wants to merge 750 commits into
Conversation
pingdotgg#5756) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…gdotgg#5757) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…dotgg#5767) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…otgg#5768) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…tgg#5772) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…pingdotgg#5774) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ep (pingdotgg#5776) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…data (pingdotgg#5773) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…g#5777) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…server (pingdotgg#5788) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
pingdotgg#5782) Co-authored-by: tsouth89 <tsouth89@users.noreply.github.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…stalled providers are found (pingdotgg#5074) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…thread (pingdotgg#5901) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…gdotgg#5887) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
…show (pingdotgg#4986) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com>
…g#4197) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com>
…gdotgg#5989) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com>
…7081) Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: maria <maria@kuuro.net>
pingdotgg#7132) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…#6392) Co-authored-by: Shivam Sharma <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d723c85eda
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| export const requirePreviewMcpCapability = Effect.fn("mcp.requirePreviewCapability")(function* () { | ||
| const invocation = yield* McpInvocationContext; | ||
| if (isProviderInvocationScope(invocation) && invocation.capabilities.has("preview")) { |
There was a problem hiding this comment.
Grant provider sessions the preview capability
For every real provider MCP credential, this guard rejects all preview_* calls because McpSessionRegistry.issue still creates the capability set as only new Set(["thread-management", "notification"]) (apps/server/src/mcp/McpSessionRegistry.ts:348). The tests manually construct scopes containing "preview", but Codex, Claude, Cursor, Grok, and OpenCode sessions never receive it, so the newly registered collaborative-browser tools always return PreviewAutomationUnavailableError before reaching the broker. Add preview when issuing provider-session credentials (and cover the issued scope in the registry test).
AGENTS.md reference: AGENTS.md:L71-L71
Useful? React with 👍 / 👎.
| const key = JSON.stringify([ | ||
| refEpoch(input), | ||
| input.projectId, | ||
| input.repository, | ||
| input.number, | ||
| input.cursor ?? null, | ||
| input.commit ?? null, |
There was a problem hiding this comment.
Partition pull-request diff caches by audience
When private and factory-scoped clients share a server, a private request can populate this server-wide diff cache under a key containing only the epoch and PR coordinates. Factory credentials retain AuthOrchestrationReadScope, and /api/pull-requests/diff checks only that scope (apps/server/src/pullRequest/http.ts:18), so an identical factory request can receive the cached private patch without rerunning requireProject and its projection audience filter. Include the caller's audience ceiling in both the normal and stale-cache keys, or explicitly reject factory callers on the HTTP route.
Useful? React with 👍 / 👎.
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 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.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e4346bad48
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| /* Duty-cycled indicator animations: long holds with stepped ramps, so the | ||
| compositor updates discrete frames instead of every vsync. */ | ||
| --animate-status-pulse: status-pulse 2s infinite; | ||
| --animate-ghost-pulse: ghost-pulse 2.4s infinite; |
There was a problem hiding this comment.
Stop the loading ghost animation from looping
When pull-request list, detail, or activity data remains pending—particularly for a slow or offline remote environment—this infinite animation continues scheduling opacity-compositing updates indefinitely. Even with stepped keyframes, that leaves recurring GPU work active for every mounted loading ghost, contrary to the repository's explicit prohibition on continuously repainting animations; make this placeholder static or finite instead.
AGENTS.md reference: AGENTS.md:L136-L142
Useful? React with 👍 / 👎.
Syncs fork main with upstream pingdotgg/t3code main @ fee10de.
previously-absorbed upstream ancestry (content-neutral merge of 1a003e3,
tree byte-identical, verified) and then merges the true upstream increment
(232 commits, 818 files, 42 real conflicts resolved). Squashing destroys the
ancestry repair and re-creates the ~488-file phantom conflict problem for
every future sync.
Resolution doctrine applied (per the Aug-11 sync learnings): upstream wins on
presentation/architecture (incl. class-wide restore of upstream's preview MCP
toolkit), fork wins only on data-scoping/isolation; whole assertion blocks
swept; migrations renumbered onto the fork tail; lockfile regenerated from
resolved manifests; scanner display-copy markers verified surviving with the
N-1 matrix; CI stays on fork runner labels with explicit budgets (new
upstream mobile-fingerprint job repointed to ubuntu-24.04, 60m budget).
Merge commits used the audited FACTORY_SKIP path per factory POLICY's
upstream-sync exception (supervisor ruling on record); all other commits went
through the normal gate. Focused tests, typechecks, scanner checks, and
structural audits green locally; CI is the full gate.
🤖 Generated with Claude Code