experiments in a post-browser web
10
fork

Configure Feed

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

docs(changelog): backfill 2026-03-31, 2026-04-07, 2026-04-14 + regenerate RSS

The changelog hadn't been updated since 2026-03-24; backfill the three
missing ISO weeks. 2026-04-14 is the big one (tiles v2 strict
capability API across all 26 features, core extraction of cmd/hud/page
into app/, features-manager feature shipped, MCP server feature,
pubsub/lifecycle fixes, misc). 2026-04-07 covers the initial tiles v2
landing (manifest, launcher, tokens, CSP, lazy loading). 2026-03-31
had zero commits — noted as such.

Regenerates docs/feed.xml — now 26 items.

+196 -1
+93
CHANGELOG.md
··· 63 63 - [x] ELECTRON_RUN_AS_NODE import compat for schema codegen 64 64 - [x] atproto signature-verification plan written (implementation pending) 65 65 66 + ## 2026-04-14 67 + 68 + Desktop - Tiles v2 strict capability API 69 + - [x] Phase 2: strict IPC handlers for window, features, context, dialogs, shortcuts, sync, oauth, settings.readForeign, session, escape, screen — all capability-gated 70 + - [x] Phase 3: migrate all 26 features to strict capabilities (3 rounds) — example, websearch, timers, helpdocs, sync, dropzone, mcp-server, widget-demo, feeds, windows, slides, scripts, pagestream, lists, tag-actions, peeks, sheets, tags, search, lex, wonderwall, entities, editor, groups, spaces, features-manager 71 + - [x] Drop all v1-compat shim IIFEs from feature HTML, migrate `api.subscribe/publish` to `api.pubsub.*`, `settings.getKey/setKey` to `get/set` 72 + - [x] Hard-fail stubs replace removed v1-compat names; `TILE_STRICT` env flag throws on capability violations 73 + - [x] Features admin: update/dev/publish/devtools/browse actions with allowlists; izui capability gate 74 + - [x] Per-table datastore scoping enforcement + context `{read, write:[entities]}` scoping 75 + - [x] Single-file tiles: `resident: true`, flat window fields, unified `show:false`, `showSelf`/`hideSelf` no-capability actions — hello-world, widget-demo, mcp-server converted 76 + - [x] `relaunchTile(tileId)` helper; delete dead `createExtensionWindow` + loadExtensionsConsolidated + stale consolidatedIds branches 77 + - [x] `trustedBuiltin` grant + `registerTrustedBuiltinWindow` for core-renderer pubsub broadcast 78 + 79 + Desktop - Core extraction (cmd + hud + page) 80 + - [x] Move cmd UI from `features/cmd/` to `app/cmd/`; add `cmd-glue.ts` for Electron plumbing, wire into startup 81 + - [x] Move hud UI from `features/hud/` to `app/hud/`; add `hud-glue.ts`; `peek://hud/` backcompat route 82 + - [x] Extract page host from `features/` to `app/core` via `page-glue.ts` 83 + - [x] Launch cmd / hud / page-bg with tile-preload + trustedBuiltin grant, drop `loadExtInHost` 84 + - [x] Merge `background.{html,js}` into single-file `index.html` core renderers 85 + - [x] `peek://ext/cmd/` and `peek://ext/hud/` routes map to `app/cmd/` / `app/hud/` for backcompat 86 + 87 + Desktop - Features Manager feature 88 + - [x] New feature — registry with persistence + CRUD, installer with builtin scan/local/sync, tile-loader bridging registry to tile launcher, feature-startup orchestrator 89 + - [x] Manage UI: feature cards, search, actions, update badges, policy selector, capability review modal 90 + - [x] Browse UI: discover features by publisher, noun browse action wired to `browse.html` 91 + - [x] Install from AT URI: AtprotoSource with DidDocument narrowing, capability preview, minPeekVersion enforcement, CID validation on bundle blobs, atomic install via temp dir + rename 92 + - [x] Publish wizard: AT Protocol publish flow with step 2 metadata UI (icon + screenshots), `space.peek.feature.release` lexicon, call lex atproto helpers directly from renderer 93 + - [x] Update mechanism: `compareCapabilities`, `shouldAutoUpdate`, `compareSemver`, scheduled background checks + update commands 94 + - [x] `features_history` table with uninstall history write; disabled/update fields in registry 95 + 96 + Desktop - Tiles pubsub + lifecycle 97 + - [x] Fix `URL.origin` returning null for `peek://` — broadcaster was filtering ALL v2 tile messages as self-echo 98 + - [x] `ensureTileIpcHandlers` at top of `initialize` so handlers register before any BrowserWindow 99 + - [x] Forward console messages + handle `render-process-gone` for v2 tiles (revoke token, publish `tile:crashed`) 100 + - [x] Tile lifecycle cleanup for shutdown, unsubscribe, unload, crash visibility 101 + - [x] Expose DevTools button for all tile features via `feature-devtools:open` 102 + - [x] Global `unhandledRejection` / `uncaughtException` handlers 103 + - [x] Broadcast pubsub to v2 tile BrowserWindows 104 + 105 + Desktop - Cmd panel 106 + - [x] Await init before publishing `ext:ready` so subscribers are ready for command batches 107 + - [x] Replay registered commands when cmd loads to avoid timing race 108 + - [x] Tab completion enters PARAM_MODE for commands with params 109 + - [x] Lazy event interceptors: `lazyEvents` manifest field, pre-load tiles on subscribed events 110 + 111 + Desktop - Page host 112 + - [x] `toggleMaximize` captures window bounds for exact restore 113 + - [x] Track server-side redirects via `did-redirect-navigation` to prevent blank page on 301/302 114 + - [x] Preserve group mode on init + during navigation (not just space mode) 115 + - [x] Rename groups mode from `space` to `group` (undo incomplete rename), support `groupMode` option in window-open 116 + 117 + Desktop - MCP server feature 118 + - [x] MCP server tile with stdio JSON-RPC transport, sqlite3 CLI database helper 119 + - [x] Setup script + wrapper for Claude Code MCP config registration 120 + - [x] Tile manifest, background tile, `mcp-server:setup` command 121 + 122 + Desktop - Other fixes 123 + - [x] Auto-iterate download filenames to avoid overwrite failure 124 + - [x] Clear `lastFocusedVisibleWindowId` on window close to prevent stale targeting 125 + - [x] CSP injection on all tile responses (not just successful HTML) 126 + - [x] `get-display-info` returns `workArea` at top level for direct invoke 127 + - [x] Disable bypassCSP on peek:// protocol for tile security; v2 features excluded from legacy extension loading path 128 + - [x] Emit `tag:created/renamed/deleted` pubsub events; publish `tag:item-added` for content hashtags, history auto-tag, sync pull, IPC handlers 129 + - [x] Fall back to manifest defaults when settings key not stored 130 + - [x] TWP translate extension vendored + registered; browser-extension options-page command registration 131 + - [x] Pool isolated agent workspaces with per-agent Electron profile; split clean script 132 + 133 + Desktop - Testing 134 + - [x] Smoke tests updated for v2 tile architecture (iframes → BrowserWindows) 135 + - [x] AtprotoSource + `installFromBundle` unit tests (34); updater tests for compareCapabilities / shouldAutoUpdate / compareSemver 136 + - [x] Deterministic waits for localsearch tests; replace `waitForTimeout` with `trigger()` for ESC child-content regression 137 + - [x] Tile IPC coverage for strict capability enforcement across all surfaces (window, features, context, dialogs, shortcuts, datastore, sync, oauth, session, escape) 138 + - [x] Exfiltration vector CSP tests; lazy event interceptor coverage 139 + 140 + ## 2026-04-07 141 + 142 + Desktop - Tiles v2 architecture (initial landing) 143 + - [x] Tile manifest v2 schema + parser, CSP injection for tile HTML responses in protocol handler 144 + - [x] Tile launcher with token management + lifecycle 145 + - [x] Capability-scoped tile preload with token validation 146 + - [x] IPC capability enforcement for tile operations 147 + - [x] Lazy loading for tiles with command stub registration 148 + - [x] v1/v2 compatibility layer for incremental migration 149 + - [x] Migrate first features (sync, tags) to v2 tile manifest format 150 + - [x] Tile tests and token extraction into pure module 151 + 152 + Desktop - Docs 153 + - [x] Lex web app design doc 154 + 155 + ## 2026-03-31 156 + 157 + No user-facing changes this week. 158 + 66 159 ## 2026-03-24 67 160 68 161 Desktop - Page Host
+103 -1
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:12:51 GMT</lastBuildDate> 7 + <lastBuildDate>Tue, 21 Apr 2026 17:22:34 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> ··· 59 59 - setWindowColorScheme window resolution in headless (Cat 3 theme fix) 60 60 - ELECTRON_RUN_AS_NODE import compat for schema codegen 61 61 - atproto signature-verification plan written (implementation pending)</description> 62 + </item> 63 + <item> 64 + <title>2026-04-14</title> 65 + <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-04-14</link> 66 + <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-04-14</guid> 67 + <pubDate>Tue, 14 Apr 2026 12:00:00 GMT</pubDate> 68 + <description>Desktop - Tiles v2 strict capability API 69 + - Phase 2: strict IPC handlers for window, features, context, dialogs, shortcuts, sync, oauth, settings.readForeign, session, escape, screen — all capability-gated 70 + - Phase 3: migrate all 26 features to strict capabilities (3 rounds) — example, websearch, timers, helpdocs, sync, dropzone, mcp-server, widget-demo, feeds, windows, slides, scripts, pagestream, lists, tag-actions, peeks, sheets, tags, search, lex, wonderwall, entities, editor, groups, spaces, features-manager 71 + - Drop all v1-compat shim IIFEs from feature HTML, migrate api.subscribe/publish to api.pubsub.*, settings.getKey/setKey to get/set 72 + - Hard-fail stubs replace removed v1-compat names; TILE_STRICT env flag throws on capability violations 73 + - Features admin: update/dev/publish/devtools/browse actions with allowlists; izui capability gate 74 + - Per-table datastore scoping enforcement + context {read, write:[entities]} scoping 75 + - Single-file tiles: resident: true, flat window fields, unified show:false, showSelf/hideSelf no-capability actions — hello-world, widget-demo, mcp-server converted 76 + - relaunchTile(tileId) helper; delete dead createExtensionWindow + loadExtensionsConsolidated + stale consolidatedIds branches 77 + - trustedBuiltin grant + registerTrustedBuiltinWindow for core-renderer pubsub broadcast 78 + 79 + Desktop - Core extraction (cmd + hud + page) 80 + - Move cmd UI from features/cmd/ to app/cmd/; add cmd-glue.ts for Electron plumbing, wire into startup 81 + - Move hud UI from features/hud/ to app/hud/; add hud-glue.ts; peek://hud/ backcompat route 82 + - Extract page host from features/ to app/core via page-glue.ts 83 + - Launch cmd / hud / page-bg with tile-preload + trustedBuiltin grant, drop loadExtInHost 84 + - Merge background.{html,js} into single-file index.html core renderers 85 + - peek://ext/cmd/ and peek://ext/hud/ routes map to app/cmd/ / app/hud/ for backcompat 86 + 87 + Desktop - Features Manager feature 88 + - New feature — registry with persistence + CRUD, installer with builtin scan/local/sync, tile-loader bridging registry to tile launcher, feature-startup orchestrator 89 + - Manage UI: feature cards, search, actions, update badges, policy selector, capability review modal 90 + - Browse UI: discover features by publisher, noun browse action wired to browse.html 91 + - Install from AT URI: AtprotoSource with DidDocument narrowing, capability preview, minPeekVersion enforcement, CID validation on bundle blobs, atomic install via temp dir + rename 92 + - Publish wizard: AT Protocol publish flow with step 2 metadata UI (icon + screenshots), space.peek.feature.release lexicon, call lex atproto helpers directly from renderer 93 + - Update mechanism: compareCapabilities, shouldAutoUpdate, compareSemver, scheduled background checks + update commands 94 + - features_history table with uninstall history write; disabled/update fields in registry 95 + 96 + Desktop - Tiles pubsub + lifecycle 97 + - Fix URL.origin returning null for peek:// — broadcaster was filtering ALL v2 tile messages as self-echo 98 + - ensureTileIpcHandlers at top of initialize so handlers register before any BrowserWindow 99 + - Forward console messages + handle render-process-gone for v2 tiles (revoke token, publish tile:crashed) 100 + - Tile lifecycle cleanup for shutdown, unsubscribe, unload, crash visibility 101 + - Expose DevTools button for all tile features via feature-devtools:open 102 + - Global unhandledRejection / uncaughtException handlers 103 + - Broadcast pubsub to v2 tile BrowserWindows 104 + 105 + Desktop - Cmd panel 106 + - Await init before publishing ext:ready so subscribers are ready for command batches 107 + - Replay registered commands when cmd loads to avoid timing race 108 + - Tab completion enters PARAM_MODE for commands with params 109 + - Lazy event interceptors: lazyEvents manifest field, pre-load tiles on subscribed events 110 + 111 + Desktop - Page host 112 + - toggleMaximize captures window bounds for exact restore 113 + - Track server-side redirects via did-redirect-navigation to prevent blank page on 301/302 114 + - Preserve group mode on init + during navigation (not just space mode) 115 + - Rename groups mode from space to group (undo incomplete rename), support groupMode option in window-open 116 + 117 + Desktop - MCP server feature 118 + - MCP server tile with stdio JSON-RPC transport, sqlite3 CLI database helper 119 + - Setup script + wrapper for Claude Code MCP config registration 120 + - Tile manifest, background tile, mcp-server:setup command 121 + 122 + Desktop - Other fixes 123 + - Auto-iterate download filenames to avoid overwrite failure 124 + - Clear lastFocusedVisibleWindowId on window close to prevent stale targeting 125 + - CSP injection on all tile responses (not just successful HTML) 126 + - get-display-info returns workArea at top level for direct invoke 127 + - Disable bypassCSP on peek:// protocol for tile security; v2 features excluded from legacy extension loading path 128 + - Emit tag:created/renamed/deleted pubsub events; publish tag:item-added for content hashtags, history auto-tag, sync pull, IPC handlers 129 + - Fall back to manifest defaults when settings key not stored 130 + - TWP translate extension vendored + registered; browser-extension options-page command registration 131 + - Pool isolated agent workspaces with per-agent Electron profile; split clean script 132 + 133 + Desktop - Testing 134 + - Smoke tests updated for v2 tile architecture (iframes → BrowserWindows) 135 + - AtprotoSource + installFromBundle unit tests (34); updater tests for compareCapabilities / shouldAutoUpdate / compareSemver 136 + - Deterministic waits for localsearch tests; replace waitForTimeout with trigger() for ESC child-content regression 137 + - Tile IPC coverage for strict capability enforcement across all surfaces (window, features, context, dialogs, shortcuts, datastore, sync, oauth, session, escape) 138 + - Exfiltration vector CSP tests; lazy event interceptor coverage</description> 139 + </item> 140 + <item> 141 + <title>2026-04-07</title> 142 + <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-04-07</link> 143 + <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-04-07</guid> 144 + <pubDate>Tue, 07 Apr 2026 12:00:00 GMT</pubDate> 145 + <description>Desktop - Tiles v2 architecture (initial landing) 146 + - Tile manifest v2 schema + parser, CSP injection for tile HTML responses in protocol handler 147 + - Tile launcher with token management + lifecycle 148 + - Capability-scoped tile preload with token validation 149 + - IPC capability enforcement for tile operations 150 + - Lazy loading for tiles with command stub registration 151 + - v1/v2 compatibility layer for incremental migration 152 + - Migrate first features (sync, tags) to v2 tile manifest format 153 + - Tile tests and token extraction into pure module 154 + 155 + Desktop - Docs 156 + - Lex web app design doc</description> 157 + </item> 158 + <item> 159 + <title>2026-03-31</title> 160 + <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-03-31</link> 161 + <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-03-31</guid> 162 + <pubDate>Tue, 31 Mar 2026 12:00:00 GMT</pubDate> 163 + <description>No user-facing changes this week.</description> 62 164 </item> 63 165 <item> 64 166 <title>2026-03-24</title>