Skip to content

docs(windows): fresh-Windows setup; pull tasks on first session - #53

Draft
formed2forge wants to merge 5 commits into
mainfrom
cursor/windows-dev-setup-guide-ecaa
Draft

docs(windows): fresh-Windows setup; pull tasks on first session#53
formed2forge wants to merge 5 commits into
mainfrom
cursor/windows-dev-setup-guide-ecaa

Conversation

@formed2forge

@formed2forge formed2forge commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Why

Linux can exercise most of the Electron tree, but it cannot exercise the Windows-only native helpers (OCR, UI automation, WASAPI mute), the companion-bar HWND pathologies, Graphics Capture / Rewind, or the NSIS unpack. Standing up a Windows test box from a clean install was undocumented.

A first Windows 10 box then hit NU1100 restoring Microsoft.NET.ILLink.Tasks while building win-ocr-helper (fresh .NET 10 SDK, zero NuGet sources).

After helpers, mic, OCR, and Rewind worked, Conversations / Tasks / Memories looked unsynced on that fresh profile. Those are three different pipes, and the setup docs still claimed VITE_OMI_API_KEY was required for conversation sync (it is unused by the running app). Tasks had a real startup race: a listIncomplete that beat the renderer Firebase relay no-oped the background pull, then nothing else ran until window-focus or the 5-minute interval — so a just-signed-in Windows box showed an empty Tasks page even when the same account had cloud action items.

What

Setup guide + helper restore:

  • desktop/windows/docs/windows-dev-setup.md (Win10 vs Win11, toolchain pins, first-run permissions)
  • desktop/windows/nuget.config so helper dotnet publish uses nuget.org

Task sync + docs:

  • onSessionReady fires on the null→session edge (not token refresh). index.ts schedules the first task census there.
  • Regression tests: ready-listener edge cases; a pre-session Tasks read must not consume the 5-min throttle.
  • Docs: table of Memories vs Tasks vs conversation list vs Screen outbox; unstick VITE_OMI_API_KEY.

Folded into windows-all-fixes

Merge commit e822c8456a on windows-all-fixes (2026-09-02). GUI testing should reset hard to origin/windows-all-fixes. This PR stays open as the upstream-landing vehicle — do not merge it to fork main (mirror policy).

Verification

cd desktop/windows
pnpm exec vitest run \
  src/main/assistants/core/session.test.ts \
  src/main/tasks/taskSyncEngine.test.ts
# 2 files, 70 tests passed

On WAF after the fold: tsc node + web clean. Full vitest run src/main was 2463 pass / 23 fail on a pre-existing sentry.ts electron CJS named-import, not this change.

On the Windows box, after git fetch origin && git checkout windows-all-fixes && git reset --hard origin/windows-all-fixes and restart pnpm dev:

  1. Settings → Account email matches Linux/phone.
  2. Memories should list from GET https://api.omi.me/v3/memories.
  3. Tasks should fill after sign-in without needing a refresh.
  4. Conversation list is the cloud pull; only Record → Screen uses the from-segments outbox.

Failure-Class: FC-sync-gated-on-consumer-trigger

Open in Web Open in Cursor 

cursoragent and others added 5 commits September 2, 2026 17:51
Cover the from-zero path Linux testers hit when standing up a native
Windows box: MSVC, .NET 10 SDK, Node 22.19, pnpm 10, OS privacy grants,
and the GUI/E2E commands CI does not run.

Co-authored-by: 97rh699b7t <97rh699b7t@privaterelay.appleid.com>
Win10 19041+ is the helper TFM floor and is a supported test box. Call out
winget/App Installer, Settings paths, no screen-recording privacy page, and
Mica being cosmetic-only.

Co-authored-by: 97rh699b7t <97rh699b7t@privaterelay.appleid.com>
Fresh .NET 10 SDK installs often have zero NuGet sources, so
PublishSingleFile fails with NU1100 on Microsoft.NET.ILLink.Tasks.
Ship a nuget.config and print that diagnosis from the helper builds.

Co-authored-by: 97rh699b7t <97rh699b7t@privaterelay.appleid.com>
A Tasks listIncomplete that beat the renderer session relay no-oped
scheduleBackgroundSync without stamping lastSyncAt, then nothing else
pulled until window-focus or the 5-min interval. A fresh Windows
profile therefore showed an empty Tasks page after sign-in even when
the same account had cloud action items.

onSessionReady fires on the null→session edge (not token refresh) and
index.ts schedules the first census there, matching the AI-profile
"credentials arrived" kick.

Verification: pnpm exec vitest run src/main/assistants/core/session.test.ts
src/main/tasks/taskSyncEngine.test.ts — 70 passed.

Failure-Class: FC-sync-gated-on-consumer-trigger

Co-authored-by: 97rh699b7t <97rh699b7t@privaterelay.appleid.com>
A fresh Windows profile looking empty is usually a different account,
a different VITE_OMI_API_BASE, or a pipe that never ran — not a missing
developer API key. Memories are a live /v3/memories pull; tasks are
local-first until the Firebase session is relayed; only Record→Screen
uses the from-segments outbox. Unstick the stale VITE_OMI_API_KEY
"blank = local only" claim in the setup guide, README, and .env.example.

Co-authored-by: 97rh699b7t <97rh699b7t@privaterelay.appleid.com>
@cursor cursor Bot changed the title docs(windows): fresh-Windows machine setup for desktop testing docs(windows): fresh-Windows setup; pull tasks on first session Sep 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants