Conversation
Contributor
ApprovabilityVerdict: Would Approve Macroscope's review found this PR approvable — The production change narrowly fixes equality for equivalent fixed-time schedule formats, preventing an otherwise unnecessary save from postponing a pending run. It leaves actual schedule changes and interval behavior intact and includes focused regression coverage. Not approved because:
Review your spending limits in Billing settings. You can add or adjust custom eligibility rules. Learn more. |
juliusmarminge
force-pushed
the
t3code/codex-turn-mapping
branch
3 times, most recently
from
September 8, 2026 06:23
efd9994 to
6102d00
Compare
CouchRiv
force-pushed
the
fix/server-scheduled-time-equality
branch
from
September 8, 2026 18:13
c8d297f to
00c081f
Compare
juliusmarminge
force-pushed
the
t3code/codex-turn-mapping
branch
from
September 9, 2026 06:39
8187b17 to
ada72ce
Compare
A renderer performance trace showed the minimap strips as a standing source of main-thread frame work: each strip transitioned background-color (paint) and width (layout), and both fire constantly — scrolling or streaming flips a band of in-view states at once, and the hover fisheye animates several widths at a time — so any interaction kept a 60fps style/layout/paint pipeline running. The strip now animates only compositor-friendly properties: width tiers are scale-x on a fixed-width box, and the in-view highlight is a bright overlay faded with opacity. The scroll handler also skips no-op data-in-view attribute writes, which previously re-dirtied style state for every strip on every scroll tick. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Follow-ups from the main merge: - Migration numbering: main's 035_ProjectionThreadTitleRegeneration is released and keeps its id; this branch's unreleased v2 migrations shift to 036-044 instead (a released migration can never be renumbered). - thread.metadata.update accepts regenerateTitle: true arms an in-flight titleRegeneration marker on the thread payload (requestId + startedAt), a landing title or explicit false clears it. The marker projects onto thread shells and through the client-runtime shell model, so the sidebar's Regenerating state works unchanged. - New ThreadTitleRegenerationService worker reacts to armed markers on the live domain-event stream (so ws, MCP, and mobile dispatches all behave the same): builds a newest-first conversation digest from the v2 projection (8k-char budget, retained attachments — ported from the v1 reactor), generates via TextGeneration, and lands the title with a follow-up metadata update. Failures clear the marker and log. - The server advertises threadTitleRegeneration again, and the client updateThreadMetadata dispatches regenerateTitle-only updates. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The turn item materialized when a queued run is promoted was emitted with inputIntent "turn_start", but the deterministic replay driver (and the recorded queued_turn fixtures) expect "queued_turn" — the mismatch stalled replay before the queued run could start, leaving run 1 waiting and run 2 queued forever in all five queued_turn fixtures. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Effect service conventions: ThreadManagementThreadNotSendableError carried an Archived/NoSteerableRun reason union and switched on reason._tag inside the message getter. Modelled as two error classes (ThreadManagementThreadArchivedError, ThreadManagementNoSteerableRunError); both still map to the MCP thread_not_sendable failure code. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Prevent the title row from shifting when output is revealed - Preserve panel and compact button sizing
…ingdotgg#5309) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
- Schema.UnknownFromJsonString -> Schema.fromJsonString(Schema.Unknown) - SchemaIssue.InvalidValue single-argument form in checkpointDiff - McpServerClient requires protocolVersion Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Required for follow-up requests by the 2025-06-18 MCP HTTP transport that effect beta.103 enforces. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The thread-panel mapping change replaced the compact className on the Run and Add controls with the isPanel conditional and dropped the non-panel icon-compact classes that the responsive test asserts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Ports the deleted v1 ProviderCommandReactor title coverage onto the v2 service: marker arming/clearing via thread.metadata.update, superseded requestId no-ops, digest-driven regeneration, the "New thread" and unchanged-title fallbacks, generation failure, and missing initial messages, plus unit tests for formatThreadTitleContext. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Hoist inline Schema compiles to module scope, drop unused imports/vars, stabilize react-markdown component identities via a module-scope factory, remove useless spreads, and use data-derived keys for release-note bullets. No behavior changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The codex resume test was the only replay scenario without a runtimePolicyOverride, so its checkpoint scope cwd fell back to process.cwd() and baseline capture ran real git over the entire checkout. Locally the capture short-circuits on checkpoint refs left behind by earlier runs; on a fresh CI checkout it is a cold multi-second capture that outlives the scenario wait budget, failing await_thread_idle while the run is still mid-checkpoint. Point the fixture's turn/start frames at the <workspace> placeholder and checkpoint a throwaway git workspace like every other replay test. Scenario waits are also wall-clock-bounded now: the iteration budget counts event-loop turns, which burn at full speed while git/fixture IO is in flight, so exhaustion additionally requires a 60s real-time deadline to pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…r's scope (pingdotgg#5406) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
- Keep the git action control disabled when the branch is up to date - Omit open PR menu entries and remove their link-opening behavior - Update logic tests for the new states
…sPinned Main owns migration numbering: 036_ProjectionThreadsPinned landed on main, so the v2 migrations shift from 036-044 to 037-045. Release path runs all of main's migrations first, then the v2 stack. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…gg#9897) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…ingdotgg#8464) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…gg#9907) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…otgg#9905) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…gg#9928) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…dotgg#9920) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…ngdotgg#10051) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
CouchRiv
force-pushed
the
fix/server-scheduled-time-equality
branch
from
September 11, 2026 19:06
00c081f to
9744897
Compare
juliusmarminge
force-pushed
the
t3code/codex-turn-mapping
branch
4 times, most recently
from
September 12, 2026 08:17
e03e376 to
e39429e
Compare
Contributor
|
Rebased adaptation of this fix for the current V2 base is in #11590 — same semantic time comparison, service test moved onto the full in-memory migration chain. Crediting this proposal there. |
juliusmarminge
force-pushed
the
t3code/codex-turn-mapping
branch
2 times, most recently
from
September 15, 2026 00:23
600a8a5 to
d8c75ec
Compare
saphid
pushed a commit
to saphid/t3code
that referenced
this pull request
Sep 15, 2026
Fixed-time schedule equality compared timeOfDay strings, so saving a task with "09:00" over "9:00" was treated as a schedule change and recomputed next_run_at — deferring an occurrence that was already due. Compare parsed hours/minutes instead; real time, weekday, and interval changes still reschedule. Adapted from pingdotgg#10438 (CouchRiv), rebased onto current V2 with the service test on the full in-memory migration chain. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
juliusmarminge
force-pushed
the
t3code/codex-turn-mapping
branch
2 times, most recently
from
September 15, 2026 06:28
463d0c6 to
e10a1e2
Compare
juliusmarminge
pushed a commit
to saphid/t3code
that referenced
this pull request
Sep 15, 2026
Fixed-time schedule equality compared timeOfDay strings, so saving a task with "09:00" over "9:00" was treated as a schedule change and recomputed next_run_at — deferring an occurrence that was already due. Compare parsed hours/minutes instead; real time, weekday, and interval changes still reschedule. Adapted from pingdotgg#10438 (CouchRiv), rebased onto current V2 with the service test on the full in-memory migration chain. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Member
|
Stale duplicate of #11590 — same parsed-time comparison fix on the current branch. Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Changed
Fixed-time schedules now compare parsed hours and minutes, so saving
09:00instead of9:00preserves the pending occurrence.Why
Both formats are accepted by the schedule contract. The current string comparison treats them as a schedule change and recalculates the next run. If today's occurrence is already due but has not dispatched, that save can postpone it until tomorrow.
This targets the V2 branch in #2829. It reuses the existing time parser and leaves actual hour, minute, weekday and interval changes distinct.
Validation
Rebased and revalidated on V2
89459e38, where migration 051 now creates the scheduled-task schema; the service test imports that migration.09:30still reschedules.Checklist
Implemented with GPT-6 in the Codex harness; rebased and revalidated with Claude Opus 5 in Claude Code.