experiments in a post-browser web
10
fork

Configure Feed

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

docs(changelog): record v1 removal, vocabulary purge, architecture docs

+64 -2
+31
CHANGELOG.md
··· 15 15 16 16 ## 2026-04-20 17 17 18 + Desktop - v1 removal complete 19 + - [x] Phase 3.7f — migrate darkMode, theme directory mgmt, sync, profiles, adblocker namespaces from legacy `ipcMain.handle` to strict `tile:*` handlers (trustedBuiltin-gated, token-validated) 20 + - [x] Phase 3.7g — migrate `window-devtools`, `get-focused-visible-window-id`, `pubsub-stats` to strict `tile:*` handlers; delete legacy un-gated channels 21 + - [x] Phase 3.7h — collapse all 13 `api.window.*` capability-fallback branches in `tile-preload.cts`; delete the 13 legacy `window-*` `ipcMain.handle` registrations (`window-open`, `window-close`, `window-hide`, `window-show`, `window-focus`, `window-exists`, `window-list`, `window-center`, `window-center-all`, `window-maximize`, `window-fullscreen`, `window-set-ignore-mouse-events`, `window-set-overlay-focus-target`) 22 + - [x] Phase 4 — manifest schema cleanup: drop `TileEntry.type` and `TileEntry.windowHints` compat fields, bump `manifestVersion` to 3, lockstep-migrate 29 feature manifests + 2 scaffolds; validator now rejects v2 outright with explicit migration messages 23 + - [x] Delete dead v1 declarative-command machinery (`registerDeclarativeCommands` + helpers, ~165 LOC); fold `type: 'publish'` short-circuit into `tile-lazy.ts` so sync + dropzone keep working without the parallel mechanism 24 + - [x] Delete dead lazy-extension machinery (`CONSOLIDATED_EXTENSION_IDS`, `loadLazyExtension`, `lazyExtensionLoaded`, `handleLazyExtensionReady`, `registerLazyCommand`, `registerLazyExtensionCommands`, `registerLazyEventInterceptors`); v2 tile-lazy already covers load-on-dispatch + lazyEvents 25 + - [x] Delete `extension-host.html` defensive guards (URL no longer produced; 3 dead-behavior tests deleted) 26 + - [x] Delete dead `convertV1ToV2` function + tests; sweep stale `preload.js` archaeology comments across 12 files 27 + 28 + Desktop - vocabulary purge (extension → tile / feature) 29 + - [x] Merge vestigial `tile:extensions:*` admin surface into `tile:features:*` (~12 channels were duplicates of existing `tile:features:*` mirrors); delete `api.extensions.*` from tile-preload; migrate `app/settings/settings.js` + `app/index.js` consumers to `api.features.*`; delete `tile:extensions:*` registrations + handlers (~283 LOC) 30 + - [x] Rename `protocol.ts::extensionPaths` → `tilePaths`, `getRegisteredExtensionIds` → `getRegisteredTileIds` etc. 31 + - [x] Rename `main.ts::loadExtensions` → `loadFeatures`, `discoverBuiltinExtensions` → `discoverBuiltinFeatures`, `getRunningExtensions` → `getRunningFeatures`, `reloadExtension` → `reloadTile`, `EAGER_EXTENSION_IDS` → `EAGER_TILE_IDS`, `devExtensions` map → `devTiles` 32 + - [x] Rename `ext:startup:phase` → `feature:startup:phase` and `ext:all-loaded` → `feature:all-loaded` pubsub topics (coordinated atomic change across publishers + subscribers + 1 Playwright test); Tauri side queued as deferred follow-up 33 + - [x] Drop the `extensions` SQLite table (created on every boot but never written to; only `protocol.ts::getTilePath` read from it as a fallback that silently fell through on fresh DBs); simplify `getTilePath` to a `tilePaths.get` lookup 34 + - [x] Drop the `extensions` table entry from the Settings → Datastore Browser 35 + - [x] Rename `app/index.js::builtinExtensions` → `builtinFeatureTiles`, `registerExtensionCommands` → `registerCoreCommands` 36 + - [x] Rename Settings Features pane: route id `'extensions'` → `'features'`, DOM id `section-extensions` → `section-features`, function names (`renderExtensionsSettings` → `renderFeaturesSettings`, `refreshExtensionsList` → `refreshFeaturesList`, `window._refreshExtensionsList` → `window._refreshFeaturesList`), local variables (`allExtensions` → `allFeatures`, `isCmdExtension` → `isCmdFeature`, iteration `ext` → `feat`), CSS class `extension-error` → `feature-error`; the separate Extensions tab (bundled chrome browser extensions) keeps its distinct `'privacy'` route 37 + - [x] Sweep stale Phase tag comments from source files (~35 fixed across 12 files); historical record stays in `docs/v1-removal-plan.md` 38 + - [x] Mark `docs/v1-removal-plan.md` Status section DONE 39 + 40 + Desktop - architecture docs refresh 41 + - [x] Refresh README + DEVELOPMENT.md for the post-v1 reality (tile model, three FSMs, capability-gated `tile-preload.cts` + manifest grants + per-tile BrowserWindow) 42 + - [x] Add `docs/architecture.md` with three sections: tile model, state machines (pubsub / cmd panel / tile lifecycle), and a comparison between Peek's tiles and the [DASL Tiles spec](https://dasl.ing/tiles.html) — covering lifecycle / capabilities / IPC / persistence / manifest schema / origin sandbox / composition 43 + 44 + Desktop - test infra (v1 removal fallout) 45 + - [x] Migrate `peeks.spec.ts`, `slides.spec.ts`, `websearch-cmd.spec.ts` off `api.extensions.list()` to `api.features.list('builtin')` (response shape `{entries}` not `{success,data}`); `tests/helpers/window-utils.ts::waitForExtensionsReady` now gates on `groups`, not `cmd` 46 + - [x] Delete `tests/desktop/extension-lifecycle.spec.ts` — tested v1 admin install-from-folder lifecycle that has no v3 equivalent 47 + - [x] Stop asserting `cmd` is a feature in the registry across `startup-events.spec.ts` and `hybrid-extension.spec.ts` — cmd is a core renderer (`app/cmd/`), not a feature tile 48 + 18 49 Desktop - Core consolidation 19 50 - [x] Merge cmd + page + hud resident renderers into the core background renderer — `app/index.js` now awaits `initCmd()`, `initPage()`, `initHud()`; `cmd-glue.ts`, `page-glue.ts`, `hud-glue.ts` and the three resident shim HTMLs deleted 20 51 - [x] Fix `ext:all-loaded` subscribe-after-publish race that was silently dropping 26 core commands (quit/restart/back/forward/reload/settings/theme-* etc) on cold start — registry now grows 72→96
+33 -2
docs/feed.xml
··· 4 4 <title>Peek Changelog</title> 5 5 <link>https://tangled.org/burrito.space/peek</link> 6 6 <description>Recent changes to Peek</description> 7 - <lastBuildDate>Tue, 21 Apr 2026 17:22:34 GMT</lastBuildDate> 7 + <lastBuildDate>Sun, 26 Apr 2026 11:07:00 GMT</lastBuildDate> 8 8 <generator>changelog-to-rss.js</generator> 9 9 <atom:link href="https://tangled.org/burrito.space/peek/raw/main/docs/feed.xml" rel="self" type="application/rss+xml"/> 10 10 <item> ··· 12 12 <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-04-20</link> 13 13 <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-04-20</guid> 14 14 <pubDate>Mon, 20 Apr 2026 12:00:00 GMT</pubDate> 15 - <description>Desktop - Core consolidation 15 + <description>Desktop - v1 removal complete 16 + - Phase 3.7f — migrate darkMode, theme directory mgmt, sync, profiles, adblocker namespaces from legacy ipcMain.handle to strict tile:* handlers (trustedBuiltin-gated, token-validated) 17 + - Phase 3.7g — migrate window-devtools, get-focused-visible-window-id, pubsub-stats to strict tile:* handlers; delete legacy un-gated channels 18 + - Phase 3.7h — collapse all 13 api.window. capability-fallback branches in tile-preload.cts; delete the 13 legacy window- ipcMain.handle registrations (window-open, window-close, window-hide, window-show, window-focus, window-exists, window-list, window-center, window-center-all, window-maximize, window-fullscreen, window-set-ignore-mouse-events, window-set-overlay-focus-target) 19 + - Phase 4 — manifest schema cleanup: drop TileEntry.type and TileEntry.windowHints compat fields, bump manifestVersion to 3, lockstep-migrate 29 feature manifests + 2 scaffolds; validator now rejects v2 outright with explicit migration messages 20 + - Delete dead v1 declarative-command machinery (registerDeclarativeCommands + helpers, ~165 LOC); fold type: &apos;publish&apos; short-circuit into tile-lazy.ts so sync + dropzone keep working without the parallel mechanism 21 + - Delete dead lazy-extension machinery (CONSOLIDATED_EXTENSION_IDS, loadLazyExtension, lazyExtensionLoaded, handleLazyExtensionReady, registerLazyCommand, registerLazyExtensionCommands, registerLazyEventInterceptors); v2 tile-lazy already covers load-on-dispatch + lazyEvents 22 + - Delete extension-host.html defensive guards (URL no longer produced; 3 dead-behavior tests deleted) 23 + - Delete dead convertV1ToV2 function + tests; sweep stale preload.js archaeology comments across 12 files 24 + 25 + Desktop - vocabulary purge (extension → tile / feature) 26 + - Merge vestigial tile:extensions: admin surface into tile:features: (~12 channels were duplicates of existing tile:features: mirrors); delete api.extensions. from tile-preload; migrate app/settings/settings.js + app/index.js consumers to api.features.; delete tile:extensions: registrations + handlers (~283 LOC) 27 + - Rename protocol.ts::extensionPaths → tilePaths, getRegisteredExtensionIds → getRegisteredTileIds etc. 28 + - Rename main.ts::loadExtensions → loadFeatures, discoverBuiltinExtensions → discoverBuiltinFeatures, getRunningExtensions → getRunningFeatures, reloadExtension → reloadTile, EAGER_EXTENSION_IDS → EAGER_TILE_IDS, devExtensions map → devTiles 29 + - Rename ext:startup:phase → feature:startup:phase and ext:all-loaded → feature:all-loaded pubsub topics (coordinated atomic change across publishers + subscribers + 1 Playwright test); Tauri side queued as deferred follow-up 30 + - Drop the extensions SQLite table (created on every boot but never written to; only protocol.ts::getTilePath read from it as a fallback that silently fell through on fresh DBs); simplify getTilePath to a tilePaths.get lookup 31 + - Drop the extensions table entry from the Settings → Datastore Browser 32 + - Rename app/index.js::builtinExtensions → builtinFeatureTiles, registerExtensionCommands → registerCoreCommands 33 + - Rename Settings Features pane: route id &apos;extensions&apos; → &apos;features&apos;, DOM id section-extensions → section-features, function names (renderExtensionsSettings → renderFeaturesSettings, refreshExtensionsList → refreshFeaturesList, window._refreshExtensionsList → window._refreshFeaturesList), local variables (allExtensions → allFeatures, isCmdExtension → isCmdFeature, iteration ext → feat), CSS class extension-error → feature-error; the separate Extensions tab (bundled chrome browser extensions) keeps its distinct &apos;privacy&apos; route 34 + - Sweep stale Phase tag comments from source files (~35 fixed across 12 files); historical record stays in docs/v1-removal-plan.md 35 + - Mark docs/v1-removal-plan.md Status section DONE 36 + 37 + Desktop - architecture docs refresh 38 + - Refresh README + DEVELOPMENT.md for the post-v1 reality (tile model, three FSMs, capability-gated tile-preload.cts + manifest grants + per-tile BrowserWindow) 39 + - Add docs/architecture.md with three sections: tile model, state machines (pubsub / cmd panel / tile lifecycle), and a comparison between Peek&apos;s tiles and the DASL Tiles spec (https://dasl.ing/tiles.html) — covering lifecycle / capabilities / IPC / persistence / manifest schema / origin sandbox / composition 40 + 41 + Desktop - test infra (v1 removal fallout) 42 + - Migrate peeks.spec.ts, slides.spec.ts, websearch-cmd.spec.ts off api.extensions.list() to api.features.list(&apos;builtin&apos;) (response shape {entries} not {success,data}); tests/helpers/window-utils.ts::waitForExtensionsReady now gates on groups, not cmd 43 + - Delete tests/desktop/extension-lifecycle.spec.ts — tested v1 admin install-from-folder lifecycle that has no v3 equivalent 44 + - Stop asserting cmd is a feature in the registry across startup-events.spec.ts and hybrid-extension.spec.ts — cmd is a core renderer (app/cmd/), not a feature tile 45 + 46 + Desktop - Core consolidation 16 47 - Merge cmd + page + hud resident renderers into the core background renderer — app/index.js now awaits initCmd(), initPage(), initHud(); cmd-glue.ts, page-glue.ts, hud-glue.ts and the three resident shim HTMLs deleted 17 48 - Fix ext:all-loaded subscribe-after-publish race that was silently dropping 26 core commands (quit/restart/back/forward/reload/settings/theme-* etc) on cold start — registry now grows 72→96 18 49 - Fix Electron 40 console-message forwarder — event level is a string literal in E40, not an int, so the numeric filter dropped all renderer output