Sync main-xavier with upstream main #2645
Draft
MacroscopeApp / Macroscope - Correctness Check
completed
May 11, 2026 in 4m 33s
2 issues identified (191 code objects reviewed).
β’ Merge Base:
447236d
β’ Head:01a42b9
Details
| β | File Path | Comments Posted |
|---|---|---|
| β | README.md |
0 |
| β | bun.lock |
|
| β | oxlint-plugin-t3code/index.js |
0 |
| β | oxlint-plugin-t3code/utils.js |
0 |
| β | .oxlintrc.json |
0 |
| β | apps/web/src/store.ts |
0 |
| β | apps/web/src/lib/markdownPlainText.ts |
2 |
| β | packages/shared/src/orchestration.ts |
0 |
| β | apps/web/src/lib/markdownPlainText.test.ts |
|
| β | apps/web/package.json |
|
| β | apps/web/src/lib/assistantMessageCopy.ts |
0 |
| β | apps/web/src/components/ChatMarkdown.test.tsx |
|
| β | apps/web/src/lib/assistantMessageCopy.test.ts |
|
| β | apps/web/src/components/chat/threadSearch.ts |
0 |
| β | packages/shared/package.json |
|
| β | apps/web/src/components/chat/ThreadSearchBar.tsx |
0 |
| β | apps/web/src/components/chat/threadSearch.test.ts |
|
| β | apps/server/tsconfig.json |
0 |
| β | apps/web/src/types.ts |
0 |
| β | apps/web/src/components/chat/ProposedPlanCard.test.tsx |
|
| β | apps/web/src/components/chat/threadSearchHighlight.tsx |
0 |
| β | oxlint-plugin-t3code/rules/no-inline-schema-compile.js |
0 |
| β | apps/web/src/components/chat/ThreadSearchBar.browser.tsx |
0 |
| β | apps/web/src/components/chat/threadSearchHighlight.test.tsx |
|
| β | apps/server/src/orchestration/Services/QueuedFollowUpReactor.ts |
0 |
| β | apps/web/src/localApi.test.ts |
|
| β | apps/server/src/orchestration/Layers/QueuedFollowUpReactor.ts |
0 |
| β | apps/web/src/components/chat/ComposerQueuedFollowUpsPanel.tsx |
0 |
| β | apps/server/src/server.test.ts |
|
| β | apps/server/src/orchestration/Layers/QueuedFollowUpReactor.test.ts |
|
| β | packages/contracts/src/settings.ts |
0 |
| β | apps/server/src/persistence/Services/ProjectionThreadQueuedFollowUps.ts |
0 |
| β | oxlint-plugin-t3code/test/utils.ts |
|
| β | apps/server/src/persistence/Layers/ProjectionThreadQueuedFollowUps.ts |
0 |
| β | apps/server/src/orchestration/Normalizer.ts |
0 |
| β | apps/server/src/persistence/Migrations/031_ProjectionThreadQueuedFollowUps.ts |
0 |
| β | packages/contracts/src/baseSchemas.ts |
0 |
| β | apps/server/src/persistence/Migrations.ts |
0 |
| β | apps/server/src/orchestration/decider.ts |
0 |
| β | apps/web/src/components/KeybindingsToast.browser.tsx |
0 |
| β | apps/server/src/orchestration/projector.test.ts |
|
| β | apps/desktop/src/settings/DesktopClientSettings.test.ts |
|
| β | apps/web/src/components/ChatView.logic.ts |
0 |
| β | apps/web/src/components/chat/MessagesTimeline.tsx |
0 |
| β | apps/server/src/orchestration/commandInvariants.test.ts |
|
| β | apps/server/src/orchestration/projector.ts |
0 |
| β | apps/web/src/components/ChatMarkdown.tsx |
0 |
| β | apps/web/src/components/ChatView.browser.tsx |
0 |
| β | apps/server/src/orchestration/Layers/OrchestrationEngine.test.ts |
|
| β | apps/server/src/orchestration/Layers/ProjectionPipeline.test.ts |
|
| β | apps/web/src/composerDraftStore.test.ts |
|
| β | apps/server/src/orchestration/Layers/OrchestrationEngine.ts |
0 |
| β | apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts |
0 |
| β | apps/web/src/components/chat/MessagesTimeline.logic.ts |
0 |
| β | apps/server/src/orchestration/Services/OrchestrationEngine.ts |
0 |
| β | apps/server/integration/orchestrationEngine.integration.test.ts |
|
| β | apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.test.ts |
|
| β | apps/web/src/components/chat/TerminalContextInlineChip.tsx |
0 |
| β | apps/server/src/orchestration/Layers/ProjectionPipeline.ts |
0 |
| β | apps/server/integration/OrchestrationEngineHarness.integration.ts |
|
| β | packages/contracts/src/orchestration.ts |
0 |
| β | apps/web/src/components/chat/ProposedPlanCard.tsx |
0 |
Filtered Issues Details
apps/server/src/persistence/Layers/ProjectionThreadQueuedFollowUps.ts
- line 142: The
replaceByThreadIdfunction at lines 139-159 performs a delete followed by multiple inserts without transaction wrapping. If the delete succeeds but any subsequentinsertQueuedFollowUpRowcall fails, the database will be left in an inconsistent state: the original follow-ups are deleted, but only a partial set of new follow-ups exist. This violates the atomicity semantics implied by "replace" - the operation should either fully succeed or leave the data unchanged. Consider wrapping the delete and inserts in a SQL transaction usingSqlClient.withTransactionor similar. [ Failed validation ]
Loading