Skip to content

Merge upstream main into main-xavier

01a42b9
Select commit
Loading
Failed to load commit list.
Draft

Sync main-xavier with upstream main #2645

Merge upstream main into main-xavier
01a42b9
Select commit
Loading
Failed to load commit list.
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 replaceByThreadId function at lines 139-159 performs a delete followed by multiple inserts without transaction wrapping. If the delete succeeds but any subsequent insertQueuedFollowUpRow call 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 using SqlClient.withTransaction or similar. [ Failed validation ]