feat: interactive install wizard + CI/release fixes - #591
Closed
hlsitechio wants to merge 26 commits into
Closed
hlsitechio wants to merge 26 commits into
hlsitechio wants to merge 26 commits into
MacroscopeApp / Macroscope - Correctness Check
completed
Mar 9, 2026 in 8m 7s
14 issues identified (300 code objects reviewed).
• Merge Base:
5dd36bc
• Head:878be84
Details
| ✅ | File Path | Comments Posted |
|---|---|---|
| ✅ | install.ps1 |
|
| ✅ | apps/web/.env.example |
|
| ✅ | apps/server/.env.example |
|
| ❌ | apps/web/src/auth.tsx |
1 |
| ✅ | apps/web/src/routes/lab.tsx |
0 |
| ➖ | package.json |
|
| ❌ | apps/desktop/src/browserCdp.ts |
1 |
| ✅ | packages/contracts/src/canvas.ts |
0 |
| ✅ | apps/web/src/routes/lab.index.tsx |
|
| ✅ | apps/web/src/routes/_chat.docs.tsx |
0 |
| ❌ | apps/web/src/uiCommandIntents.ts |
3 |
| ❌ | apps/desktop/src/bootstrapDeps.ts |
1 |
| ✅ | apps/web/src/routes/lab.$threadId.tsx |
0 |
| ➖ | apps/web/src/uiCommandIntents.test.ts |
|
| ✅ | apps/desktop/src/browserOperator.ts |
0 |
| ❌ | apps/web/src/components/AppCanvas.tsx |
2 |
| ✅ | apps/server/src/labBrowserMcpServer.ts |
0 |
| ✅ | apps/server/src/appOperatorMcpServer.ts |
0 |
| ✅ | apps/server/src/git/githubDeviceFlow.ts |
0 |
| ➖ | apps/web/src/vite-env.d.ts |
|
| ✅ | apps/web/src/components/BrowserCanvas.tsx |
0 |
| ✅ | apps/web/src/hooks/useProjectOnboarding.ts |
|
| ✅ | packages/shared/src/model.ts |
|
| ✅ | apps/web/src/hooks/useWorkspaceSurfaceLaunchers.ts |
|
| ✅ | apps/web/src/components/WorkspaceSurfaceActions.tsx |
0 |
| ➖ | apps/server/tsconfig.json |
|
| ➖ | apps/web/package.json |
|
| ✅ | packages/contracts/src/index.ts |
|
| ✅ | apps/desktop/src/preload.ts |
0 |
| ✅ | packages/contracts/src/editor.ts |
0 |
| ✅ | packages/contracts/src/server.ts |
0 |
| ✅ | apps/web/vite.config.ts |
|
| ✅ | apps/server/tsdown.config.ts |
|
| ✅ | apps/web/src/components/Icons.tsx |
0 |
| ➖ | apps/server/package.json |
|
| ✅ | apps/server/src/open.ts |
|
| ➖ | .github/workflows/ci.yml |
|
| ✅ | apps/web/src/wsNativeApi.ts |
|
| ✅ | apps/server/src/main.ts |
|
| ✅ | apps/server/src/terminal/Services/Manager.ts |
0 |
| ✅ | apps/web/src/session-logic.ts |
|
| ✅ | packages/contracts/src/orchestration.ts |
|
| ✅ | apps/server/scripts/cli.ts |
|
| ✅ | apps/web/src/components/ui/sidebar.tsx |
|
| ✅ | apps/web/src/diffRouteSearch.ts |
0 |
| ✅ | packages/contracts/src/ws.ts |
|
| ✅ | apps/web/src/components/GitActionsControl.tsx |
|
| ✅ | apps/web/src/routes/__root.tsx |
0 |
| ✅ | scripts/build-desktop-artifact.ts |
|
| ✅ | scripts/dev-runner.ts |
|
| ✅ | apps/web/src/appSettings.ts |
0 |
| ✅ | apps/web/src/routes/_chat.tsx |
0 |
| ✅ | packages/contracts/src/model.ts |
|
| ✅ | apps/server/src/provider/Layers/ProviderSessionDirectory.ts |
|
| ✅ | packages/contracts/src/ipc.ts |
0 |
| ➖ | apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.test.ts |
|
| ➖ | apps/web/src/session-logic.test.ts |
|
| ➖ | .github/workflows/release.yml |
|
| ✅ | apps/server/src/codexAppServerManager.ts |
0 |
| ✅ | apps/server/src/provider/Layers/ProviderHealth.ts |
|
| ➖ | README.md |
|
| ➖ | apps/web/src/index.css |
|
| ❌ | apps/web/src/routes/_chat.index.tsx |
1 |
| ✅ | apps/web/src/routes/_chat.$threadId.tsx |
0 |
| ✅ | apps/server/src/wsServer.ts |
0 |
| ✅ | apps/server/src/terminal/Layers/Manager.ts |
0 |
| ❌ | apps/desktop/src/main.ts |
4 |
| ➖ | apps/web/src/routeTree.gen.ts |
|
| ❌ | apps/web/src/components/ChatMarkdown.tsx |
1 |
| ✅ | apps/web/src/components/ThreadTerminalDrawer.tsx |
0 |
| ✅ | apps/web/src/routes/_chat.settings.tsx |
0 |
| ➖ | bun.lock |
|
| ✅ | apps/web/src/components/ChatView.tsx |
0 |
| ✅ | apps/web/src/components/Sidebar.tsx |
0 |
Filtered Issues Details
apps/server/src/codexAppServerManager.ts
- line 1672: The helper function
currentRuntimeScriptPath(invoked at this line) callsfileURLToPath, but this function is not imported fromnode:url. SincecurrentRuntimeScriptPathis a new function introduced in this commit and the added imports do not includenode:url, this will likely throw aReferenceErrorat runtime whendesktopBrowserOperatoris configured, crashing the application. [ Out of scope (triage) ]
apps/server/src/terminal/Layers/Manager.ts
- line 979: The
flushPersistQueuemethod fails to persist dirty history when called during session teardown. It attempts to retrieve the session fromthis.sessions(line 979), but callers likecloseSession(visible in the surrounding file context) delete the session from the map before invokingflushPersistQueue. As a result,sessionisundefined, the block handlinghistoryDirty(lines 980-984) is skipped, and any buffered terminal output pending persistence is permanently lost. [ Out of scope ]
apps/web/src/components/ChatMarkdown.tsx
- line 286: Infinite render loop when
isStreamingis true. The functiongetFormattedCodePromisereturns a newPromiseinstance (viaPromise.resolve(code)) on every call whenisStreamingis true. TheSuspenseShikiCodeBlockcomponent calls this function inside the render body and passes the result touse(). Sinceuse()and React Suspense rely on the referential stability of the Promise to track the suspension state, receiving a new Promise instance on every render causes the component to suspend repeatedly, creating an infinite loop that will freeze the browser or application UI. [ Out of scope ]
apps/web/src/routes/_chat.settings.tsx
- line 178: The variable
SETTINGS_TARGET_SECTION_STORAGE_KEYis used inreadPendingSettingsSectionTargetbut is not defined in the file or imported. This will cause aReferenceErrorat runtime whenSettingsRouteViewmounts, crashing the settings page. [ Cross-file consolidated ]
packages/contracts/src/canvas.ts
- line 8: The
Schemamodule fromeffectdoes not export a function namedLiterals. This will cause the application to crash with aTypeError(undefined is not a function) when the module is evaluated. The correct function isSchema.Literal(singular). Additionally,Schema.Literalexpects variable arguments (e.g.,Schema.Literal("jsx", "css", "md")) to create a union of literal types. Passing an array["jsx", "css", "md"]toSchema.Literal(if corrected) would create a schema that matches an array instance, not a string union, causing validation failures for valid language strings. [ Cross-file consolidated ] - line 20: The default values provided in
Schema.withConstructorDefaultfortitle,framework,prompt, andfilesare incorrectly wrapped inOption.some(...).Schema.withConstructorDefaultexpects a function returning the raw value matching the schema type (e.g.,stringorArray), not anOptionobject. When these defaults are triggered (i.e., when constructing aThreadCanvasStatewithout these fields), the schema validation will fail at runtime with a type mismatch error (expectedstringorArray, gotOptionobject), causing crashes in the application logic that relies on these defaults. [ Out of scope (triage) ]
Loading