experiments in a post-browser web
10
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs(tasks): track remaining download popup cleanup and ordering flake

Two pre-existing failures surfaced during the 2026-04-20
broadcaster/consolidation work, both unrelated to the tile-preload
rewrites:

- download.spec.ts:151 target=_blank download popup cleanup —
consistently off-by-one, 37 vs ≤36. Likely the popup isn't
destroyed after the download redirects it.
- smoke.spec.ts:2010 tags page widget ordering flake — passes in
isolation, fails only in full suite after ~148 tests. Probably
state leak in the Command Execution describe's beforeAll.

+2
+2
docs/tasks.md
··· 23 23 - [ ] **v2 tile `cmd:execute:<name>:result` doesn't reach v1 extension-host subscribers.** (Will be obsolete after v1 removal — see [v1-removal-plan.md](v1-removal-plan.md). Documented here in case a quick patch is desired before that lands.) Tests in `smoke.spec.ts` (Command Execution describe — tag/untag/tagset/widget-update tests, ~7 of them) publish `cmd:execute:tag` from bgWindow with `expectResult:true, resultTopic:'cmd:execute:tag:result'`, then subscribe to that result topic. The tags v2 tile receives the publish, runs `executeTag()`, and tile-preload sends `tile:pubsub:publish` with the result topic — BUT the bgWindow subscriber never fires. Confirmed: 2026-04-17 added `cmd:execute:*` to tags' pubsub allowlist (in `b3a80b27`) and `waitForCommand` in beforeAll (in `daa4221a`); both necessary but tests still time out at 10s. Per Opus agent triage: bgWindow is `peek://app/background.html`, NOT in `extensionHostWindow`/`extensionWindows`/`getAllTileWindows()` — `extensionBroadcaster` skips it. bgWindow subscribes via legacy `IPC_CHANNELS.SUBSCRIBE` (`ipc.ts:4466`); the in-proc callback should fire on `publish()` but doesn't. That's the next concrete investigation. 24 24 - [ ] **Proton Pass extension doesn't autofill.** Still broken — doesn't show up in form fields, no autofill suggestions. Likely a content-script injection or messaging API gap in the webview/canvas setup. Reproduce: install Proton Pass extension, navigate to any login page, observe no inline autofill UI. (2026-04-17: agent triaged, 5 hypotheses in agent-ae11e03d worktree — extension gitignored so couldn't repro.) 25 25 - [x] **Download save failing.** Fixed 2026-04-17 commit `ab66d9e0` — cause (a): `setSavePath()` with existing path silently fails. Added `resolveUniqueDownloadPath()` in `session-partition.ts` that appends `-1`, `-2`, etc. before the extension. 26 + - [ ] **`target=_blank` download popup window not cleaned up.** `tests/desktop/download.spec.ts:151` expects `windowCountAfter ≤ windowCountBefore` after a download triggered through a popup-spawning link closes its popup. Consistently fails with one extra window remaining (off-by-one, 37 vs ≤36). Predates the 2026-04-20 pubsub/broadcaster work — full suite baseline had it failing too. Likely the download-handling path doesn't destroy the `about:blank` popup once the download redirects it out of existence. Investigation starting points: `backend/electron/session-partition.ts` (download handler), `backend/electron/ipc.ts` window-open handler for `target=_blank`, and whether `did-create-window` → download flow leaves the popup orphaned. 27 + - [ ] **Test ordering flake: `tags page widget updates dynamically when tag is added via command` (smoke.spec.ts:2010).** Passes in isolation (`yarn test:grep "tags page widget updates dynamically"`). Fails only inside a full `yarn test:electron` run, when ~148 tests have run before it and the test file's shared-app state has accumulated. Probably a state-leak from one of the preceding Command Execution tests that opens/closes the same canvas page URL key (`cmd-exec-test-page`) — the beforeAll re-opens but the prior instance's subscribers may still be live. Diagnosis cost: 2026-04-20 session confirmed it reproduces only in full-suite context, not under any isolated test:grep pattern. Fix direction: audit `beforeAll`/`afterAll` in the Command Execution describe for key-reuse assumptions, or switch the test suite to a unique URL-key per test rather than a shared one. 26 28 27 29 --- 28 30