Repository navigation
chore(sync): merge upstream main through 61c3794c - #28
Conversation
…otgg#29415) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…wser reports offline (pingdotgg#29347) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…hind (pingdotgg#28373) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#28253) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…el bursts (pingdotgg#28236) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ger stay running (pingdotgg#28040) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…rade from 1.x (pingdotgg#27779) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…to run t3 service restart (pingdotgg#27660) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…g#25061) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…4803) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…adable .git/config (pingdotgg#23690) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…es (pingdotgg#23456) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#23373) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#23211) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tance (pingdotgg#23198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…turn absorbed its wake (pingdotgg#28010) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…ory scan ends (pingdotgg#29535) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tch (pingdotgg#29476) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…n starts (pingdotgg#28431) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ching origin (pingdotgg#27961) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…pingdotgg#27957) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…3804) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…g#23326) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#23561) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Exotic209093 <134711311+Exotic209093@users.noreply.github.com> Co-authored-by: Issue triage verification <triage@localhost> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#22661) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
… limit (pingdotgg#23192) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#23219) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
[High impact] The sync changes shared server workflows used by provider sessions, usage, cloud endpoints, and repository tasks. The PR appears safe to merge with non-blocking follow-ups for usage totals and the import guide. FindingsFix with agent prompt### Issue 1
apps/server/src/provider/Drivers/codexUsage.ts:94
If the first turn is interrupted after writing a `token_usage_record` but before its first `token_count`, the next turn can report a total covering both turns. With `previous === null`, `reconciled` accepts that total without checking the saved requests. This helper is skipped, so only the latest request is counted and usage totals stay too low.
Handle a missing baseline when the saved requests explain the full total, while keeping the checks that prevent counting inherited history.
### Issue 2
apps/server/src/project/AgentSessionScanner.ts:1032
The record limit now applies to each conversation file, but `docs/user/welcome-wizard.md` still says an import attempt reads at most 100,000 input records per project. The new test deliberately imports more than that across several files, so users planning a large import get the wrong limit.
Update the guide to say 100,000 records per file, alongside the unchanged batch limits.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.SummarySyncs upstream changes across provider sessions, usage totals, Git operations, previews, remote connections, and terminal controls.
Review used source and test inspection; no tests or browser captures were run. Reviews (1) · Last reviewed commit: "Merge upstream pingdotgg/t3code main int..." · Reviewed by Greptile |
| pending: readonly CodexUnreportedRequest[] | undefined, | ||
| ) { | ||
| if ( | ||
| previous === null || |
There was a problem hiding this comment.
First interrupted request goes uncounted
If the first turn is interrupted after writing a token_usage_record but before its first token_count, the next turn can report a total covering both turns. With previous === null, reconciled accepts that total without checking the saved requests. This helper is skipped, so only the latest request is counted and usage totals stay too low.
Handle a missing baseline when the saved requests explain the full total, while keeping the checks that prevent counting inherited history.
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/server/src/provider/Drivers/codexUsage.ts
Line: 94
Comment:
**First interrupted request goes uncounted**
If the first turn is interrupted after writing a `token_usage_record` but before its first `token_count`, the next turn can report a total covering both turns. With `previous === null`, `reconciled` accepts that total without checking the saved requests. This helper is skipped, so only the latest request is counted and usage totals stay too low.
Handle a missing baseline when the saved requests explain the full total, while keeping the checks that prevent counting inherited history.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.There was a problem hiding this comment.
Confirmed: with previous === null, reconciled only checks that the prefix is valid usage, so a pending token_usage_record from an interrupted first turn is never bridged and goes uncounted. This file is byte-identical to upstream main (pingdotgg#29415), and this is a sync PR, so the fix belongs upstream rather than as a fork divergence here. Not changing it in this PR.
| reader.write(decoder.decode()); | ||
| recordCount += 1; | ||
| if (recordCount > recordLimit) return false; | ||
| if (recordCount > MAX_IMPORT_RECORDS) return false; |
There was a problem hiding this comment.
Import guide gives wrong limit
The record limit now applies to each conversation file, but docs/user/welcome-wizard.md still says an import attempt reads at most 100,000 input records per project. The new test deliberately imports more than that across several files, so users planning a large import get the wrong limit.
Update the guide to say 100,000 records per file, alongside the unchanged batch limits.
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/server/src/project/AgentSessionScanner.ts
Line: 1032
Comment:
**Import guide gives wrong limit**
The record limit now applies to each conversation file, but `docs/user/welcome-wizard.md` still says an import attempt reads at most 100,000 input records per project. The new test deliberately imports more than that across several files, so users planning a large import get the wrong limit.
Update the guide to say 100,000 records per file, alongside the unchanged batch limits.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
There was a problem hiding this comment.
Confirmed: upstream pingdotgg#23192 made MAX_IMPORT_RECORDS per conversation file, but docs/user/welcome-wizard.md still says 100,000 input records per import attempt. Both files are identical to upstream main, and this is a sync PR, so the doc fix belongs upstream rather than as a fork divergence that would conflict on the next sync. Not changing it in this PR.
The fork was 36 commits behind
pingdotgg/t3codemain.Upstream main through 61c3794. The merge had no conflicts. Nine files changed on both sides and auto-merged (the Claude adapter, provider session manager, orchestrator, usage service, draft hero headline, timeline work rows, and the orchestrator MCP doc). Upstream's new migration 078 doesn't collide with any fork migration.
Carried PRs:
scripts/fork-carried-prs.tsreports all 8 unchanged against their upstream heads, and none were closed.vp run check:changedpasses format, lint, knip and typecheck (37 packages). Focused tests for the auto-merged server files pass (432 tests). Two test failures are environmental:XDG_DATA_HOME, andprovider-opencodeis identical to upstream.🤖 Generated with Claude Code (Claude Opus 5.5)
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.