You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jun 8, 2026. It is now read-only.
Targeted fixes for review comments that remained valid against the
current FEA-1497 code (most other comments were already resolved by the
in-process rewrite). Each fix is scoped and behavior-preserving.
- lifecycle: guard hook session_id at runtime (typeof string, non-empty)
before it becomes a SQLite primary-key binding. It arrives as `unknown`
through the zod envelope, so a non-string would be stringified to
"[object Object]" and stored as a junk PK. (thread: thadeusb)
- db IPC: add shared coerceDbId() guard and apply it to every
desktop:db:* handler that takes a renderer-supplied id/sessionId/
agentId. IPC is a runtime boundary; TS annotations are erased, so a
malformed value could otherwise reach node:sqlite bindings. Invalid
args now return the same empty result as the disabled path. Adds
db-ipc-validation unit tests. (thread: shafty023)
- renderer typecheck: add tsconfig.renderer.json and a typecheck:renderer
script chained into `typecheck` so the .tsx renderer is type-checked in
CI (previously only src/**/*.ts was, src/renderer excluded). Surfaced
and fixed a real latent bug: 7 component files imported
../../main/database/types (resolves to the nonexistent renderer/main)
instead of ../../../main/database/types — masked because they are
erased `import type`s. Declared @types/react / @types/react-dom (used
transitively but never as a direct dep). Renderer now type-checks
clean with full strict. (thread: shafty023)
- packaging: re-chain build:agent-monitor into the package/release
scripts. `build` no longer generates .generated/agent-monitor but
stage-packaging hard-requires it and the runtime still loads the
generated hook-handler scripts, so `pnpm package` failed on a clean
checkout (not covered by CI). (thread: shafty023)
- packaging: exclude the file:vendor/design-system dep from the staged
prod dependencies. Staging runs `pnpm install --prod` before copying
app files, so the relative vendor path can't resolve; the renderer is
already bundled into dist/renderer by Vite, so it isn't a runtime
module. (thread: shafty023)
- vendor DS: fix the root export/main/module fields to point at files
that exist — import/module/default -> dist/index.mjs (ESM),
require/main -> dist/index.js (CJS). They previously pointed import at
the CJS index.js and require/main at a nonexistent index.cjs.
(thread: shafty023)
- window: gate the dev-server load (http://localhost:5173) behind an
explicit CL_RENDERER_DEV_SERVER=1 opt-in, defaulting every build to the
app:// renderer. The privileged preload would otherwise attach to
whatever local process binds :5173 first. No current recipe starts a
Vite dev server, so this also removes a pointless failed loadURL on the
common dev path. (thread: shafty023)
- bump desktop version 0.15.108 -> 0.15.109
Testing: pnpm lint, pnpm typecheck (main + new renderer project),
pnpm build:renderer, and pnpm test (2032 pass / 0 fail) all green
locally. Staging script syntax-checked.
Risks: Packaging changes (build:agent-monitor re-chain, staged-dep
filter) are not exercised by CI; validated by code inspection and script
syntax check, full electron-builder package not run locally. Renderer
typecheck is now CI-gating — verified clean before wiring in.
0 commit comments