experiments in a post-browser web
10
fork

Configure Feed

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

feat(changelog): activate per-day bumper + RSS via Option C (forward-only)

Graduates the WIP scaffold from 8984a838 to a working pipeline:

- package.json: add `changelog:bump` script
- CHANGELOG.md: insert `<!-- last-bumped: 2922b5ec -->` marker (current main),
plus a boundary note documenting the two-format coexistence — pre-2026-04-29
per-day archival sections stay as-is, all new entries go into per-week
wrappers above them. RSS deliberately ignores the archival format.
- docs/feed.xml: regenerated by the new per-bullet RSS script. Empty for now
because no new-format sections exist yet — the first push that runs
`yarn changelog:bump` will populate the file from clustered commits.

Format choice: Option C from project_changelog_rss_workflow.md. Trade-off
accepted: existing archival sections remain rich + checkbox-detailed in the
file, but they don't show up in RSS. Discord audience gets the rolling
7-day per-bullet stream the new format was designed for; archival reading
still works in CHANGELOG.md.

Smoke test 2026-04-29:
- `yarn changelog:bump --dry-run --since 091e2a43` clusters correctly,
skips chore/test/docs(changelog), produces well-formed bullets.
- `yarn rss` against a synthetic new-format CHANGELOG produces valid RSS.
- `yarn changelog:bump --dry-run` against current state correctly reports
"No commits in 2922b5ec..main; nothing to bump."
- `yarn rss` regenerates feed.xml as empty (0 items, 7-day window) — as
designed under Option C.

+10 -1395
+7 -3
CHANGELOG.md
··· 8 8 description: Recent changes to Peek 9 9 --> 10 10 11 - Completed work, grouped by week of year. 12 - - See TODO.md for pending items, WIP.md for in-progress items 11 + <!-- last-bumped: 2922b5ec --> 13 12 14 - Newly done items go here, grouped under level-2 headings by week (date = Monday of that ISO week). 13 + Completed work. Two formats coexist on purpose: 14 + 15 + - **Going forward** — `## Week of YYYY-MM-DD (Wnn)` wrapping `### YYYY-MM-DD` per-day sub-sections, one terse bullet per change. Auto-generated by `yarn changelog:bump` (reads commits since the `<!-- last-bumped: ... -->` marker, clusters by area+type+day, advances the marker, regenerates RSS). The rolling 7-day RSS feed at `docs/feed.xml` consumes ONLY this format. 16 + - **Pre-2026-04-29** — archival per-day `## YYYY-MM-DD` sections with rich `Desktop - {area}` clusters and detailed checkbox bullets. Preserved as-is; deliberately invisible to the RSS generator. 17 + 18 + See TODO.md for pending items, WIP.md for in-progress items. 15 19 16 20 ## 2026-04-27 17 21
+1 -1391
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, 28 Apr 2026 21:28:01 GMT</lastBuildDate> 7 + <lastBuildDate>Wed, 29 Apr 2026 10:30:52 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 - <item> 11 - <title>2026-04-27</title> 12 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-04-27</link> 13 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-04-27</guid> 14 - <pubDate>Mon, 27 Apr 2026 12:00:00 GMT</pubDate> 15 - <description>Desktop - window-placement refactor sprint (Phases 1–6) 16 - - Phase 1 — extract pure backend/electron/window-placement.ts with computePlacement + Placement discriminated union; full unit-test coverage with synthetic display layouts so the regression class becomes single-failing-test catchable 17 - - Phase 2 — record a placement intent on every window at registration time (never re-derived from current screen state, so display swaps can re-resolve against the original intent) 18 - - Phase 3 — wire computePlacement into URL-reuse, fresh-open fallback, and display-watcher second pass; stranded-rescue (&lt;50% area on any display) is built into the pure module and replaces isWindowAccessibleNow + repositionOnCursorDisplay, which are deleted 19 - - Phase 4 — slides renderer no longer computes x/y; passes screenEdge semantics, main process owns placement (placement: { mode: &apos;edge&apos;, edge }) and resolves coords against the current cursor display every show; renderer no longer reads window.screen.width/height 20 - - Phase 5 — tile-ipc.ts v2 positioning consolidated through computePlacement (single placement decision path across reuse / fresh / v2 tiles) 21 - - Phase 6 — close out sprint, document the new module, mark display-switch tasks resolved 22 - - Fix: page-host window jumps to wrong position after switching primary monitor (cmd+L on a different display than where window was last opened) — cursor-display-fallback placement causes display-watcher to re-evaluate against current cursor display 23 - - Fix: slides anchor to stale window.screen coordinates after display switch — every display change now triggers a generic computePlacement pass via display-watcher 24 - 25 - Desktop - web permissions feature (Phases 1–5 + polish) 26 - - Phase 1 — per-permission policy module (permission-policy.ts): visibility surface + default-deny for unknown permissions; chrome-extension:// origins hard-allowed 27 - - Phase 2 — user approval prompt UI for risky web permissions (camera/mic/geolocation/notifications/clipboard etc.) 28 - - Phase 3 — persist per-origin decisions to SQLite (web_permissions table) 29 - - Phase 4 — Settings UI for inspecting + revoking stored decisions (per-origin grouped rows) 30 - - Phase 5 — favicon + multi-prompt queueing UX (consecutive prompts on the same origin coalesce into a single dialog with a queue indicator) 31 - - Polish: per-permission emoji glyphs, nav count badge in Settings, relative timestamps, clearAll button reset, test-coupling cleanup 32 - - Refactor: extract resolveWithStored as a pure, unit-testable function 33 - - New tests/desktop/permissions-*.spec.ts — Allow+Remember coverage; settings rows grouped by origin 34 - 35 - Desktop - page-host window FSM (Phases 1–3) 36 - - Phase 1 — maximize state + round-2 polish (state-driven maximize/restore replaces ad-hoc class toggles) 37 - - Phase 2 — drag/resize/drag-out-of-maximized states modeled explicitly 38 - - Phase 3 — fsmState is the source of truth (DOM classes derived from state, not the other way round) 39 - 40 - Desktop - page-host load failures 41 - - Show branded error overlay when a page fails to load (did-fail-load) — replaces Chromium&apos;s default error chrome 42 - - Hung-load timeout surfaces the same error overlay — no more blank-white-page-forever when DNS/TCP stalls 43 - - Anchor the load-error overlay to .center-column (position: absolute; inset: 0; z-index: 25) so Cmd+L surfaces the navbar without window growth — pre-fix the overlay was position: fixed at z-index 9998 anchored to the viewport, hiding the navbar and stretching with show()&apos;s panel-overhang window expansion 44 - - New tests/desktop/cmdl-on-error-page.spec.ts pins the symptom: webview width unchanged, overlay sized to center-column (&lt; document width), body not maximized, navbar visible, navbar z &gt; overlay z 45 - 46 - Desktop - window-open / IZUI fixes 47 - - Fix window.open URL-reuse collapsing distinct callers — when caller provides an explicit key, skip URL-reuse so two windows with the same URL but different keys both open; new tests/desktop/window-url.spec.ts:120 covers it 48 - - Restore window-level transient-on-blur auto-hide regressed by panel-type focus events — macOS NSPanels don&apos;t fire BrowserWindow.on(&apos;blur&apos;) on intra-app focus shifts, so a main-process win.on(&apos;focus&apos;) loop now hides/closes other visible windows whose role is in TRANSIENT_ROLES (palette / quick-view / overlay) 49 - 50 - Desktop - cmd panel + lex 51 - - Migrate cmd panel to api.izui + replace api.modes calls; surface open &lt;noun&gt; variants in tab cycle so noun-registered features show alongside bare commands 52 - - Lex: short-circuit on auth expiry — surface re-authentication UI and stop polling instead of looping failed token refreshes 53 - 54 - Desktop - tiles + shortcuts 55 - - Collapse lists bg+home into a single tile + harden tile-launcher (frame, keepLive) 56 - - Cmd+Shift+T (reopen closed window) now works from inside webview content — accelerator was previously swallowed by the focused webview 57 - 58 - Desktop - websearch 59 - - Consolidate websearch to a single tile + fix multi-word command query bleed (subsequent token of a chained command was leaking back into the search query)</description> 60 - </item> 61 - <item> 62 - <title>2026-04-20</title> 63 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-04-20</link> 64 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-04-20</guid> 65 - <pubDate>Mon, 20 Apr 2026 12:00:00 GMT</pubDate> 66 - <description>Desktop - thumbnail close-race fix 67 - - Fix TypeError: Object has been destroyed at Timeout._onTimeout from backend/electron/ipc.ts thumbnail capture sites. Three setTimeout bodies (lines 1338, 1542, 1797) called captureThumbnail(win.webContents,…) 1.5s after did-stop-loading; if the window or its webContents was destroyed in that window (e.g. user closed a peek immediately), accessing win.webContents threw an unhandled exception in main. Now each setTimeout body bails out via isDestroyed() first. 68 - - New tests/desktop/window-thumbnail-close-race.spec.ts opens a non-canvas web window and closes it inside the 1.5s thumbnail debounce. 69 - 70 - Desktop - per-feature Settings options accordion 71 - - Fix Settings → Features Options accordion never rendering: refreshFeaturesList built each feature&apos;s manifest object without a schemas field (the registry&apos;s flat entry shape doesn&apos;t carry it), so the accordion gate manifest.schemas &amp;&amp; (manifest.schemas.prefs || manifest.schemas.item) was always false. Now fetches each feature&apos;s settings-schema JSON in parallel via api.features.settingsSchema(id) and populates manifest.{schemas,storageKeys,defaults} from it. 72 - - Fix per-item card expand/collapse arrows missing inside the Options accordion (Peeks/Slides item cards rendered without ▶/▼). The .item-card.no-collapse .item-card-title::before { content: none } rule was a descendant selector — it cascaded into nested per-item card titles. Scoped to direct-child via .item-card.no-collapse &gt; .item-card-header .item-card-title::before. 73 - - New tests/desktop/feature-options.spec.ts — opens Settings → Features, expands Peeks Options accordion, asserts a .form-section renders + the inner peek card&apos;s ::before content is ▶ or ▼. 74 - 75 - Desktop - tag-action toggles + cmd panel hashtag shortcut 76 - - Fix tag-action toggles never rendering on item cards in tags / groups / search / pagestream — add tag-actions:* (5 topics) to each consumer&apos;s pubsub.topics allowlist so the strict tile gate stops dropping the tag-actions:get-all round-trip 77 - - Fix cold-start race in features/tag-actions/home.js: subscribe-before-publish was reachable when consumer tiles published their first tag-actions:get-all before the resident tag-actions tile had finished its loadSettings() await; tag-actions now broadcasts tag-actions:get-all:response once at end of init so any pre-existing subscriber catches up without a re-request 78 - - New tests/desktop/tag-actions-toggles.spec.ts — full pipeline (toggle renders + click swaps todo → done) on tags/home, gate round-trip on groups/pagestream, manifest assertion for search 79 - - Fix cmd panel #tagA #tagB + Enter regression — TYPING + ENTER had only isURL and userCommittedToCommand transitions, so all-hashtag input was a silent no-op; add isAllHashtags guard + transition that runs the existing openSearch action (opens peek://search/home.html?q=...) 80 - - New tests/desktop/cmd-hashtag-search.spec.ts regression coverage 81 - 82 - Desktop - v1 removal complete 83 - - Phase 3.7f — migrate darkMode, theme directory mgmt, sync, profiles, adblocker namespaces from legacy ipcMain.handle to strict tile:* handlers (trustedBuiltin-gated, token-validated) 84 - - Phase 3.7g — migrate window-devtools, get-focused-visible-window-id, pubsub-stats to strict tile:* handlers; delete legacy un-gated channels 85 - - 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) 86 - - 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 87 - - 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 88 - - Delete dead lazy-extension machinery (CONSOLIDATED_EXTENSION_IDS, loadLazyExtension, lazyExtensionLoaded, handleLazyExtensionReady, registerLazyCommand, registerLazyExtensionCommands, registerLazyEventInterceptors); v2 tile-lazy already covers load-on-dispatch + lazyEvents 89 - - Delete extension-host.html defensive guards (URL no longer produced; 3 dead-behavior tests deleted) 90 - - Delete dead convertV1ToV2 function + tests; sweep stale preload.js archaeology comments across 12 files 91 - 92 - Desktop - vocabulary purge (extension → tile / feature) 93 - - 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) 94 - - Rename protocol.ts::extensionPaths → tilePaths, getRegisteredExtensionIds → getRegisteredTileIds etc. 95 - - Rename main.ts::loadExtensions → loadFeatures, discoverBuiltinExtensions → discoverBuiltinFeatures, getRunningExtensions → getRunningFeatures, reloadExtension → reloadTile, EAGER_EXTENSION_IDS → EAGER_TILE_IDS, devExtensions map → devTiles 96 - - 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 97 - - 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 98 - - Drop the extensions table entry from the Settings → Datastore Browser 99 - - Rename app/index.js::builtinExtensions → builtinFeatureTiles, registerExtensionCommands → registerCoreCommands 100 - - 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 101 - - Sweep stale Phase tag comments from source files (~35 fixed across 12 files); historical record stays in docs/v1-removal-plan.md 102 - - Mark docs/v1-removal-plan.md Status section DONE 103 - 104 - Desktop - architecture docs refresh 105 - - Refresh README + DEVELOPMENT.md for the post-v1 reality (tile model, three FSMs, capability-gated tile-preload.cts + manifest grants + per-tile BrowserWindow) 106 - - 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 107 - 108 - Desktop - test infra (v1 removal fallout) 109 - - 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 110 - - Delete tests/desktop/extension-lifecycle.spec.ts — tested v1 admin install-from-folder lifecycle that has no v3 equivalent 111 - - 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 112 - 113 - Desktop - Core consolidation 114 - - 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 115 - - 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 116 - - 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 117 - - Move macOS did-become-active / did-resign-active overlay-hide/show handlers inline into main.ts (no longer owned by hud-glue) 118 - - Remove unused helpdocs feature 119 - 120 - Desktop - Tile preload migration (Phase 3.11) 121 - - Delete preload.js — cmd panel, chain-editor, canvas page host, settings, HUD overlay + widgets, datastore viewer, navigator, session, diagnostic all migrated to tile-preload.cjs 122 - - Delete legacy extensionHostWindow + host HTML + v1 branch of the extension broadcaster (Phase 3.10) 123 - - Delete IPC_CHANNELS const + 6 dead ipcMain.on handlers (Phase 3.11c) 124 - - Strict shims for tile:theme:, tile:extensions:, tile:chrome-extensions:, tile:window:opener-, tile:features:settings-schema, tile:window:get-id, tile:log:write, tile:app:quit/restart, tile:backup/shell/app — all trustedBuiltin-gated 125 - - Flip datastore, app-control, theme, extension-, opener-, features-schema, get-window-id to strict + delete legacy (Phase 3.6 sweep) 126 - - Migrate 6 features to the v2 settings API, fix datastore tableName param mismatch 127 - - Route about:blank and cmd panel / chain-editor through tile-preload (Cat 4 IZUI fix) 128 - 129 - Desktop - Feature tile conversions 130 - - Collapse groups, tag-actions, lex, entities, websearch into single-tile resident form — drop cross-window pubsub round-trips 131 - - Migrate callers from legacy peek://ext/{id} to v2 peek://{id} — plus test-URL sweep 132 - 133 - Desktop - Pubsub + tile-preload 134 - - Auto-initialize tile-preload at module load — remove the call-order trap 135 - - Register v2 window-entries opened via api.window.open with the tile broadcaster (they weren&apos;t being forwarded global publishes) 136 - - Broadcaster now reaches webview guests (peek:// URLs), not just BrowserWindows 137 - - Echo-prevention compares full URL, not just peek host — fixes sibling-window dropped pubsub inside the same feature 138 - - HUD widget init: initialize() calls, getExtKey shape fix 139 - - tile-preload getBounds / getDisplayInfo / setBounds + unwrap getWindowId result 140 - 141 - Desktop - Testing 142 - - Split smoke.spec.ts (2000+ lines, 29 describes) into one-file-per-describe for parallelism 143 - - Add desktop-serial Playwright project (workers: 1) for OS-integration-fragile tests 144 - - Per-describe Electron isolation via createPerDescribeApp() — kills cross-test state leaks 145 - - Disable cmd-panel close-on-blur + showSelf window.show under headless 146 - - Test module-health check — detects silent module-halt regressions from api drift 147 - - Deterministic window:opened-event wait in external-url test (no more 500ms sleep) 148 - - Fix tag-widget page-widget flake: per-test URL + key, gate on __pageModuleReady, poll for quit/restart registration 149 - - Rewrite cmd chain tests around canonical OUTPUT_SELECTION → CHAIN_MODE flow 150 - - Delete v1 api.commands.flush batching tests (no-op in v2) 151 - 152 - Desktop - Other fixes 153 - - Register will-download handler on webview guest session — fixes download-popup not being cleaned up 154 - - Preserve window size during drag-out-of-maximize in page host 155 - - Page widget updates reactively for tag events 156 - - Restore minimal cmd:register-batch publish + merge-preserve pattern in cmd resident 157 - - setWindowColorScheme window resolution in headless (Cat 3 theme fix) 158 - - ELECTRON_RUN_AS_NODE import compat for schema codegen 159 - - atproto signature-verification plan written (implementation pending)</description> 160 - </item> 161 - <item> 162 - <title>2026-04-14</title> 163 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-04-14</link> 164 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-04-14</guid> 165 - <pubDate>Tue, 14 Apr 2026 12:00:00 GMT</pubDate> 166 - <description>Desktop - Tiles v2 strict capability API 167 - - Phase 2: strict IPC handlers for window, features, context, dialogs, shortcuts, sync, oauth, settings.readForeign, session, escape, screen — all capability-gated 168 - - 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 169 - - Drop all v1-compat shim IIFEs from feature HTML, migrate api.subscribe/publish to api.pubsub.*, settings.getKey/setKey to get/set 170 - - Hard-fail stubs replace removed v1-compat names; TILE_STRICT env flag throws on capability violations 171 - - Features admin: update/dev/publish/devtools/browse actions with allowlists; izui capability gate 172 - - Per-table datastore scoping enforcement + context {read, write:[entities]} scoping 173 - - Single-file tiles: resident: true, flat window fields, unified show:false, showSelf/hideSelf no-capability actions — hello-world, widget-demo, mcp-server converted 174 - - relaunchTile(tileId) helper; delete dead createExtensionWindow + loadExtensionsConsolidated + stale consolidatedIds branches 175 - - trustedBuiltin grant + registerTrustedBuiltinWindow for core-renderer pubsub broadcast 176 - 177 - Desktop - Core extraction (cmd + hud + page) 178 - - Move cmd UI from features/cmd/ to app/cmd/; add cmd-glue.ts for Electron plumbing, wire into startup 179 - - Move hud UI from features/hud/ to app/hud/; add hud-glue.ts; peek://hud/ backcompat route 180 - - Extract page host from features/ to app/core via page-glue.ts 181 - - Launch cmd / hud / page-bg with tile-preload + trustedBuiltin grant, drop loadExtInHost 182 - - Merge background.{html,js} into single-file index.html core renderers 183 - - peek://ext/cmd/ and peek://ext/hud/ routes map to app/cmd/ / app/hud/ for backcompat 184 - 185 - Desktop - Features Manager feature 186 - - New feature — registry with persistence + CRUD, installer with builtin scan/local/sync, tile-loader bridging registry to tile launcher, feature-startup orchestrator 187 - - Manage UI: feature cards, search, actions, update badges, policy selector, capability review modal 188 - - Browse UI: discover features by publisher, noun browse action wired to browse.html 189 - - Install from AT URI: AtprotoSource with DidDocument narrowing, capability preview, minPeekVersion enforcement, CID validation on bundle blobs, atomic install via temp dir + rename 190 - - 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 191 - - Update mechanism: compareCapabilities, shouldAutoUpdate, compareSemver, scheduled background checks + update commands 192 - - features_history table with uninstall history write; disabled/update fields in registry 193 - 194 - Desktop - Tiles pubsub + lifecycle 195 - - Fix URL.origin returning null for peek:// — broadcaster was filtering ALL v2 tile messages as self-echo 196 - - ensureTileIpcHandlers at top of initialize so handlers register before any BrowserWindow 197 - - Forward console messages + handle render-process-gone for v2 tiles (revoke token, publish tile:crashed) 198 - - Tile lifecycle cleanup for shutdown, unsubscribe, unload, crash visibility 199 - - Expose DevTools button for all tile features via feature-devtools:open 200 - - Global unhandledRejection / uncaughtException handlers 201 - - Broadcast pubsub to v2 tile BrowserWindows 202 - 203 - Desktop - Cmd panel 204 - - Await init before publishing ext:ready so subscribers are ready for command batches 205 - - Replay registered commands when cmd loads to avoid timing race 206 - - Tab completion enters PARAM_MODE for commands with params 207 - - Lazy event interceptors: lazyEvents manifest field, pre-load tiles on subscribed events 208 - 209 - Desktop - Page host 210 - - toggleMaximize captures window bounds for exact restore 211 - - Track server-side redirects via did-redirect-navigation to prevent blank page on 301/302 212 - - Preserve group mode on init + during navigation (not just space mode) 213 - - Rename groups mode from space to group (undo incomplete rename), support groupMode option in window-open 214 - 215 - Desktop - MCP server feature 216 - - MCP server tile with stdio JSON-RPC transport, sqlite3 CLI database helper 217 - - Setup script + wrapper for Claude Code MCP config registration 218 - - Tile manifest, background tile, mcp-server:setup command 219 - 220 - Desktop - Other fixes 221 - - Auto-iterate download filenames to avoid overwrite failure 222 - - Clear lastFocusedVisibleWindowId on window close to prevent stale targeting 223 - - CSP injection on all tile responses (not just successful HTML) 224 - - get-display-info returns workArea at top level for direct invoke 225 - - Disable bypassCSP on peek:// protocol for tile security; v2 features excluded from legacy extension loading path 226 - - Emit tag:created/renamed/deleted pubsub events; publish tag:item-added for content hashtags, history auto-tag, sync pull, IPC handlers 227 - - Fall back to manifest defaults when settings key not stored 228 - - TWP translate extension vendored + registered; browser-extension options-page command registration 229 - - Pool isolated agent workspaces with per-agent Electron profile; split clean script 230 - 231 - Desktop - Testing 232 - - Smoke tests updated for v2 tile architecture (iframes → BrowserWindows) 233 - - AtprotoSource + installFromBundle unit tests (34); updater tests for compareCapabilities / shouldAutoUpdate / compareSemver 234 - - Deterministic waits for localsearch tests; replace waitForTimeout with trigger() for ESC child-content regression 235 - - Tile IPC coverage for strict capability enforcement across all surfaces (window, features, context, dialogs, shortcuts, datastore, sync, oauth, session, escape) 236 - - Exfiltration vector CSP tests; lazy event interceptor coverage</description> 237 - </item> 238 - <item> 239 - <title>2026-04-07</title> 240 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-04-07</link> 241 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-04-07</guid> 242 - <pubDate>Tue, 07 Apr 2026 12:00:00 GMT</pubDate> 243 - <description>Desktop - Tiles v2 architecture (initial landing) 244 - - Tile manifest v2 schema + parser, CSP injection for tile HTML responses in protocol handler 245 - - Tile launcher with token management + lifecycle 246 - - Capability-scoped tile preload with token validation 247 - - IPC capability enforcement for tile operations 248 - - Lazy loading for tiles with command stub registration 249 - - v1/v2 compatibility layer for incremental migration 250 - - Migrate first features (sync, tags) to v2 tile manifest format 251 - - Tile tests and token extraction into pure module 252 - 253 - Desktop - Docs 254 - - Lex web app design doc</description> 255 - </item> 256 - <item> 257 - <title>2026-03-31</title> 258 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-03-31</link> 259 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-03-31</guid> 260 - <pubDate>Tue, 31 Mar 2026 12:00:00 GMT</pubDate> 261 - <description>No user-facing changes this week.</description> 262 - </item> 263 - <item> 264 - <title>2026-03-24</title> 265 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-03-24</link> 266 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-03-24</guid> 267 - <pubDate>Tue, 24 Mar 2026 12:00:00 GMT</pubDate> 268 - <description>Desktop - Page Host 269 - - Error hardening: webview crash handler with reload overlay, show/hide opacity safety, myWindowId retry, global unhandledrejection handler 270 - - Fix stuck loading on redirect URLs (bsky.app/redirect) — meta-refresh loop breaker, latestNavigationUrl tracking 271 - - Fix OAuth callback URLs breaking page host — modal auth window, filter localhost callbacks from session restore 272 - - Unified popup handler — JS-opened links from modals/overlays now open in proper page host with navbar/widgets 273 - 274 - Desktop - Cmd Panel 275 - - Fix Tab completion entering param mode too early on partial command match 276 - - Fix kagi search tab completion — stale command cache validation, robust query extraction fallbacks 277 - - Fix search engine param forwarding from manifest through lazy command registration 278 - - Cmd+N opens new page host window with about:blank, inherits active space mode, navbar focused 279 - 280 - Desktop - Lex (AT Protocol) 281 - - Bluesky post composer: rich text facet detection (mentions/links/hashtags with byte offsets), 300-grapheme counter, image embed upload (up to 4), live preview 282 - - Phase 4 advanced types: union type sub-forms, external ref resolution, blob drag-and-drop upload, collapsible nested objects, client-side field validation with inline errors 283 - 284 - Desktop - Undo Close Window 285 - - Fix reopen — skip URL dedup for reopen requests, prevent double-push on quit 286 - - Persistent across restarts — stack saved to DB, all open windows pushed on quit for crash recovery 287 - - Works for all window types — peek:// windows (groups, spaces, tags) saved and reopened with correct role 288 - 289 - Desktop - Spaces 290 - - Spaces feature: machine tags (space: prefix), auto-tagging, screen border, session management 291 - - extension_settings → feature_settings rename across ~40 files with SQL migration 292 - - Backend cleanup: strip ~250 lines of space-specific logic from ipc.ts, move to feature layer 293 - - Groups simplified: tags == groups, remove promote/demote, pure data browser 294 - 295 - Desktop - Other 296 - - Fix maximize race condition with drag/resize handlers 297 - - Add reactivity to search, lists, and entities views (sync:pull-completed, item:created/deleted) 298 - - Fix windows switcher always focusing same window — overlay focus target mechanism 299 - - Persistent undo-close-window stack (50 entries, survives restart) 300 - - Proton Pass WebAuthn/passkey support via main-world injection 301 - - Favicon gaps: preload API, Google favicon fallback, entity enrichment persistence 302 - - Page maximize feature restored (was lost in prior overwrites) 303 - - Entity filter bar in tags view 304 - - Shichijuni theme missing font variables 305 - - 7 Claude Code skills: /ship, /fix, /test, /release, /explore, /review, /ios-build 306 - 307 - Desktop - Testing 308 - - Space mode tests: machine tags, auto-tagging, mode preservation, border visibility 309 - - Page host tests: loading abort, navigation guards, favicon fallback, maximize layout 310 - - Closed window tests: stack persistence, space mode capture, all window types 311 - - Cmd state machine: Tab partial match guard</description> 312 - </item> 313 - <item> 314 - <title>2026-03-17</title> 315 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-03-17</link> 316 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-03-17</guid> 317 - <pubDate>Tue, 17 Mar 2026 12:00:00 GMT</pubDate> 318 - <description>Desktop - Groups 319 - - Scope group mode to window lineage — prevent group tag leakage to items from external apps, cmd palette, peeks, slides 320 - - Add group screen border indicator — colored overlay with group name label, tracks focused window&apos;s mode 321 - - Focus-based border visibility — border shows only when focused window is a group member, not globally 322 - - Modal window exemption — cmd palette doesn&apos;t hide border during group work 323 - - Assign vivid colors to groups at creation/promotion — deterministic palette selection for desaturated defaults 324 - - Add color picker to group detail header — clickable color dot next to rename icon 325 - - Always show tags section in groups view — remove toggle, display groups and tags as separate sections with divider 326 - - Increase default window size from 800x600 to 1024x768 across groups, tags, search, wonderwall 327 - 328 - Desktop - Page View 329 - - Fix j/k/g/G keys blocked in tags input and notes panel — pagestream nav handler now checks for focused input elements 330 - - Fix findWindowByUrl to only match page-host windows — skip peeks, slides, modals for URL dedup 331 - 332 - Desktop - Shutdown 333 - - Fix shutdown hang from group screen border overlay — destroy overlay window and clear timers in before-quit handler 334 - 335 - Desktop - Testing 336 - - Add 45 group-mode unit tests — color resolution, leakage prevention, lineage scoping, focus-based border, modal exemption 337 - - Add 70 pagestream key navigation guard tests</description> 338 - </item> 339 - <item> 340 - <title>2026-03-11</title> 341 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-03-11</link> 342 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-03-11</guid> 343 - <pubDate>Wed, 11 Mar 2026 12:00:00 GMT</pubDate> 344 - <description>Desktop - IZUI Navigation 345 - - ESC at root opens Windows switcher — new escUnhandledPolicy second-phase policy for workspace windows in active/idle sessions 346 - - Preserve role/escapeMode across session restore — fix canvas mode check to not depend on role 347 - 348 - Desktop - Editor 349 - - Add img tag rendering in preview — sanitized HTML img tags with attribute allowlist and protocol security 350 - - Support relative image paths and file:// protocol — resolve images relative to edited file via peek://local-file/ protocol 351 - 352 - Desktop - Groups 353 - - Restructure group detail view header — group name, edit icon, view mode buttons, and inline sort controls in compact layout 354 - - Remove colored dot from group header 355 - 356 - Desktop - Shortcuts 357 - - Change Pagestream shortcut from Cmd/Ctrl+P to Cmd/Ctrl+Shift+P (avoids conflict with Print) 358 - 359 - Desktop - Docs 360 - - Update README — rewrite intro, add desktop screenshot, Core/Features/Keyboard Shortcuts/Feature API sections 361 - - Rename extension terminology to features throughout docs and README 362 - - Rename docs/extensions.md → features.md, extension-modes.md → feature-modes.md, extension-settings-api.md → feature-settings-api.md</description> 363 - </item> 364 - <item> 365 - <title>2026-03-09</title> 366 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-03-09</link> 367 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-03-09</guid> 368 - <pubDate>Mon, 09 Mar 2026 12:00:00 GMT</pubDate> 369 - <description>Desktop - Extensions 370 - - Fix extension ID mismatch — config.js IDs now match manifest IDs, fixing websearch and other lazy-loaded commands 371 - - Fix ext:ready ordering — all extensions call init() before publishing ext:ready, fixing cold-start command execution 372 - - Assert-and-trust lazy loading — remove polling, resolve immediately on ext:ready with subscriber verification 373 - - Fix websearch BroadcastChannel origin mismatch — switch to IPC pubsub for cross-origin communication 374 - 375 - Desktop - Windows 376 - - URL-based window dedup — opening same http/https URL focuses existing window instead of creating duplicate 377 - - Fix window centering on display switch — use cursor display instead of primary display 378 - - Fix download navigation — page stays loaded when clicking download links, cleanup blank popups 379 - 380 - Desktop - Page View 381 - - Add link hover tooltip — status bar shows URL destination on webview link hover 382 - 383 - Desktop - Search 384 - - Migrate search list view to standard peek-card components 385 - 386 - Desktop - Groups 387 - - Add remove-from-group icon on URL item cards in group detail view 388 - 389 - Desktop - Testing 390 - - Add Playwright tests for websearch commands, window URL handling, and download navigation 391 - 392 - Mobile 393 - - Android safe area, dark mode, crash fix, launcher icons, editor layout, 16KB alignment 394 - - Dual simulator dev command, DRY item components, fix iOS/Android crate-type conflict 395 - - Fullscreen image tap, today/later toggle, markdown reader mode for notes</description> 396 - </item> 397 - <item> 398 - <title>2026-03-07</title> 399 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-03-07</link> 400 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-03-07</guid> 401 - <pubDate>Sat, 07 Mar 2026 12:00:00 GMT</pubDate> 402 - <description>Desktop - Extensions 403 - - Deterministic lazy extension loading — replace setImmediate with hasSubscriber verification, message buffering for stubs/interceptors, 10s safety timeout (upxv (https://tangled.org/burrito.space/peek/commit/upxv)) 404 - - Convert lex to noun system — single lex noun with query/create/browse replaces 176+ dynamic command registrations (upxv (https://tangled.org/burrito.space/peek/commit/upxv)) 405 - 406 - Desktop - Page View 407 - - Tags widget updates reactively when tags added/removed via commands (upxv (https://tangled.org/burrito.space/peek/commit/upxv)) 408 - 409 - Desktop - Testing 410 - - Add pubsub and lazy-loading unit tests (24 tests), Playwright test for dynamic tags widget (upxv (https://tangled.org/burrito.space/peek/commit/upxv))</description> 411 - </item> 412 - <item> 413 - <title>2026-03-05</title> 414 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-03-05</link> 415 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-03-05</guid> 416 - <pubDate>Thu, 05 Mar 2026 12:00:00 GMT</pubDate> 417 - <description>Desktop - Shortcuts 418 - - Fix extension shortcuts — change most extension shortcuts from global to local so they work on Linux Wayland; cmd palette shortcut registered as both global and local (51e4 (https://tangled.org/burrito.space/peek/commit/51e4)) 419 - 420 - Desktop - Extensions 421 - - Add dropzone diagnostic extension for inspecting dropped content (6b91 (https://tangled.org/burrito.space/peek/commit/6b91)) 422 - - Wire up ext:ready pubsub to resolve lazy extension loading (680a (https://tangled.org/burrito.space/peek/commit/680a)) 423 - - Show all discovered extensions in Features settings, not just running ones (d506 (https://tangled.org/burrito.space/peek/commit/d506)) 424 - - Restore importSource metadata and extension- prefix for device IDs (ae80 (https://tangled.org/burrito.space/peek/commit/ae80)) 425 - 426 - Desktop - Command Palette 427 - - Stop forwarding history registration logs to main process terminal (7f0c (https://tangled.org/burrito.space/peek/commit/7f0c)) 428 - - Add &apos;open groups&apos; to manifest for immediate cmd palette availability (d43c (https://tangled.org/burrito.space/peek/commit/d43c)) 429 - 430 - Desktop - Cards &amp; UI 431 - - Restructure card layout — remove Text label, URL row, footer reorder (2bc8 (https://tangled.org/burrito.space/peek/commit/2bc8)) 432 - 433 - Desktop - Settings 434 - - Consolidate sync config into single Sync pane (a035 (https://tangled.org/burrito.space/peek/commit/a035)) 435 - - Restore settings hotkey and add shortcuts to settings UI (f2dd (https://tangled.org/burrito.space/peek/commit/f2dd)) 436 - 437 - Desktop - Codebase 438 - - Rename extensions/ → features/ and move chrome-extensions to project root (a809 (https://tangled.org/burrito.space/peek/commit/a809)) 439 - 440 - iOS - Share Extension 441 - - Make share extension content and OCR text editable (33a9 (https://tangled.org/burrito.space/peek/commit/33a9)) 442 - - Add Vision image analysis to Share Extension (f06b (https://tangled.org/burrito.space/peek/commit/f06b)) 443 - - Image dedup via thumbnail hash, OCR content persistence, WAL safety (4538 (https://tangled.org/burrito.space/peek/commit/4538)) 444 - - Share extension styling, theme generator, reader mode (4461 (https://tangled.org/burrito.space/peek/commit/4461)) 445 - - Fix collection view spacing, image sharing activation (e9fa (https://tangled.org/burrito.space/peek/commit/e9fa)) 446 - - Add app group entitlements and webhook push tests (b72a (https://tangled.org/burrito.space/peek/commit/b72a)) 447 - 448 - iOS - PeekCore 449 - - Create peek-core crate with types, schema, helpers, profiles (68a9 (https://tangled.org/burrito.space/peek/commit/68a9)) 450 - - Extract item CRUD and tags, wire up PeekStore (5b22 (https://tangled.org/burrito.space/peek/commit/5b22)) 451 - - Extract sync/offline DB operations (97c9 (https://tangled.org/burrito.space/peek/commit/97c9)) 452 - - Add UniFFI annotations and XCFramework build pipeline (82b6 (https://tangled.org/burrito.space/peek/commit/82b6)) 453 - - Migrate Share Extension from GRDB to PeekCore FFI (e382 (https://tangled.org/burrito.space/peek/commit/e382)) 454 - 455 - iOS - Editor 456 - - Shared EditorLayout component for all editor types (eed9 (https://tangled.org/burrito.space/peek/commit/eed9)) 457 - - Full-screen height, working resizers, URL editor flex layout (4999 (https://tangled.org/burrito.space/peek/commit/4999)) 458 - - Image editor content display + build script asset copy (4732 (https://tangled.org/burrito.space/peek/commit/4732)) 459 - 460 - Android 461 - - Add Tauri Android generated project files (d7ee (https://tangled.org/burrito.space/peek/commit/d7ee)) 462 - - Add Android build scripts and configuration (b213 (https://tangled.org/burrito.space/peek/commit/b213)) 463 - - Add platform cfg guards for iOS-specific FFI (b6a2 (https://tangled.org/burrito.space/peek/commit/b6a2))</description> 464 - </item> 465 - <item> 466 - <title>2026-03-04</title> 467 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-03-04</link> 468 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-03-04</guid> 469 - <pubDate>Wed, 04 Mar 2026 12:00:00 GMT</pubDate> 470 - <description>Desktop - Shortcuts 471 - - Fix Linux keyboard shortcuts — translate Option→Alt for global shortcuts, use Ctrl instead of Meta for page navigation (007b (https://tangled.org/burrito.space/peek/commit/007b), c157 (https://tangled.org/burrito.space/peek/commit/c157)) 472 - 473 - Desktop - Cards &amp; UI 474 - - Extract shared search-result-card component — single source of truth for item cards across tags, search, lists, pagestream, and groups (bb96 (https://tangled.org/burrito.space/peek/commit/bb96)) 475 - - Add x-key toggle for checkboxes in item cards — works in all card UIs via tag-action-toggle (1fba (https://tangled.org/burrito.space/peek/commit/1fba)) 476 - - Show entity type (Person, Organization, etc.) in shared card subtitle (e0d8 (https://tangled.org/burrito.space/peek/commit/e0d8)) 477 - - Update all hardcoded 800x600 window sizes to XGA default 1024x768 (99c9 (https://tangled.org/burrito.space/peek/commit/99c9)) 478 - 479 - Desktop - Extensions 480 - - Rename localsearch extension to lists (7426 (https://tangled.org/burrito.space/peek/commit/7426)) 481 - - Fix pagestream not loading — add command registration for lazy loading compatibility (1fba (https://tangled.org/burrito.space/peek/commit/1fba)) 482 - - Fix entities not auto-scanning — load extension eagerly, always publish extraction results, add rescan button (rmyy (https://tangled.org/burrito.space/peek/commit/rmyy), wqmp (https://tangled.org/burrito.space/peek/commit/wqmp)) 483 - - Remove entity browser popup from extract command (uxxu (https://tangled.org/burrito.space/peek/commit/uxxu)) 484 - 485 - Desktop - Command Palette 486 - - Fix input text overflow — scroll to keep cursor visible when text longer than bar width (1730 (https://tangled.org/burrito.space/peek/commit/1730)) 487 - - Fix sample-data command name collision with lists extension (9419 (https://tangled.org/burrito.space/peek/commit/9419)) 488 - 489 - Desktop - Settings 490 - - Overhaul datastore pane — grouped tables, descriptions, row counts, timestamps, synced stats (wplz (https://tangled.org/burrito.space/peek/commit/wplz)) 491 - 492 - Desktop - Search 493 - - Fix search icons showing &quot;T&quot; for all items — refactor to shared card-helpers with getItemDisplayInfo (smky (https://tangled.org/burrito.space/peek/commit/smky), mwtn (https://tangled.org/burrito.space/peek/commit/mwtn)) 494 - 495 - Schema &amp; Sync 496 - - Add item_events table and entity type to server, Tauri desktop, and mobile backends (vzwv (https://tangled.org/burrito.space/peek/commit/vzwv), rtnz (https://tangled.org/burrito.space/peek/commit/rtnz), mkpw (https://tangled.org/burrito.space/peek/commit/mkpw))</description> 497 - </item> 498 - <item> 499 - <title>2026-03-01</title> 500 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-03-01</link> 501 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-03-01</guid> 502 - <pubDate>Sun, 01 Mar 2026 12:00:00 GMT</pubDate> 503 - <description>Desktop - Editor 504 - - Redesign note editing — inline textarea replaces broken Edit button, auto-opens on new highlight (2988 (https://tangled.org/burrito.space/peek/commit/2988)) 505 - - Notes pane UX polish — Enter creates newlines, delete confirms with two-click, collapsed hides + button, header shows selection text excerpt with ellipsis (2a5c (https://tangled.org/burrito.space/peek/commit/2a5c)) 506 - - Fix ESC in note textarea — Electron&apos;s before-input-event intercepted ESC before DOM, now handled via escape IPC callback (f978 (https://tangled.org/burrito.space/peek/commit/f978)) 507 - 508 - Desktop - Entities 509 - - Add lightweight NER — regex-based person name extraction with name database validation (f42e (https://tangled.org/burrito.space/peek/commit/f42e)) 510 - - Recursive JSON-LD extraction — walk nested objects, extract relationship entities (performer, location, organizer), expanded schema.org type mappings (2816 (https://tangled.org/burrito.space/peek/commit/2816)) 511 - - Fix page fallback extractors — inline entity extraction in page.js now parses JSON-LD, relaxed relationship field filters, added pipeline logging (d8f2 (https://tangled.org/burrito.space/peek/commit/d8f2)) 512 - - Expand name database with ~500 international names — Japanese, Korean, Chinese, Indian, African, Vietnamese, French, Spanish, Italian (fe37 (https://tangled.org/burrito.space/peek/commit/fe37)) 513 - - Fix person name regex — mandatory \s+ between first and last name was missing, regex could never match normal names (937e (https://tangled.org/burrito.space/peek/commit/937e)) 514 - 515 - Desktop - Page View 516 - - Remove translateX transforms from page panels — opacity-only fade animation as intended (f70c (https://tangled.org/burrito.space/peek/commit/f70c)) 517 - - Replace keyframe animations with 500ms CSS transitions for fade in/out (5296 (https://tangled.org/burrito.space/peek/commit/5296)) 518 - 519 - Desktop - Command Palette 520 - - Cache history commands — batch registration, skip re-registration when unchanged, incremental delta updates (66ec (https://tangled.org/burrito.space/peek/commit/66ec))</description> 521 - </item> 522 - <item> 523 - <title>2026-02-28</title> 524 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-02-28</link> 525 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-02-28</guid> 526 - <pubDate>Sat, 28 Feb 2026 12:00:00 GMT</pubDate> 527 - <description>Desktop - Editor 528 - - Redesign pane management with uniform state model — visible/collapsed/width per pane, single source of truth via _applyPaneState() (6a00 (https://tangled.org/burrito.space/peek/commit/6a00b274)) 529 - - Add Notes pane (renamed from Annotations) — Cmd+Shift+L to add note at selection/cursor, Cmd+Shift+H to toggle pane, line-anchored notes with + button (7766 (https://tangled.org/burrito.space/peek/commit/7766bcc1)) 530 - - Add Cmd+Shift+Plus/Minus shortcuts for outline zoom in/out (b860 (https://tangled.org/burrito.space/peek/commit/b860b819)) 531 - - Fix selection contrast — hardcoded rgba per color-scheme, works in both light and dark themes (b860 (https://tangled.org/burrito.space/peek/commit/b860b819)) 532 - - Fix active line obscuring same-line selection — reduced to 4% opacity (b860 (https://tangled.org/burrito.space/peek/commit/b860b819)) 533 - - Fix uniform sidebar header heights — constrain add-btn height (81b4 (https://tangled.org/burrito.space/peek/commit/81b4f2d2)) 534 - 535 - Desktop - Theme 536 - - Fix HUD, cmd palette, and page panels stuck in dark mode — replace hardcoded rgba with theme variables (f39b (https://tangled.org/burrito.space/peek/commit/f39b1d52)) 537 - 538 - Desktop - IZUI 539 - - Fix ESC closing root-level content windows in active sessions — child-content now follows session-aware policy (616b (https://tangled.org/burrito.space/peek/commit/616b3b69)) 540 - 541 - Desktop - Page View 542 - - Fix extension widget showing &quot;not loaded&quot; — filter by enabled, not loaded state (692d (https://tangled.org/burrito.space/peek/commit/692d0cf0)) 543 - - Fix widget spacing — recalculate positions after async entity content loads (692d (https://tangled.org/burrito.space/peek/commit/692d0cf0)) 544 - 545 - Desktop - Tests 546 - - Add 15 IZUI escPolicy unit tests covering all role/session-state combinations (616b (https://tangled.org/burrito.space/peek/commit/616b3b69)) 547 - - Add editor notes/highlights unit tests — serialization, empty text, line-anchored highlights (f8c0 (https://tangled.org/burrito.space/peek/commit/f8c05fac)) 548 - - Add editor layout Playwright tests — pane toggles, notes shortcuts, notes pane UI (f8c0 (https://tangled.org/burrito.space/peek/commit/f8c05fac))</description> 549 - </item> 550 - <item> 551 - <title>2026-02-26</title> 552 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-02-26</link> 553 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-02-26</guid> 554 - <pubDate>Thu, 26 Feb 2026 12:00:00 GMT</pubDate> 555 - <description>Desktop - Editor 556 - - Add file open/save with autosave and vim :w/:wq/:e support — Cmd+O opens file picker, Cmd+S saves, autosave to disk (5658 (https://tangled.org/burrito.space/peek/commit/56589716)) 557 - - Sync outline sidebar collapse with document folds — bidirectional, click toggle or vim zc/zo (efa7 (https://tangled.org/burrito.space/peek/commit/efa77299)) 558 - - Add inline suggestions with Tab/Shift-Tab cycling to vim command bar (542f (https://tangled.org/burrito.space/peek/commit/542fe48f)) 559 - - Skip saving empty notes with no tags — defer item creation until user types (0bd9 (https://tangled.org/burrito.space/peek/commit/0bd98f19)) 560 - 561 - Desktop - Command Palette 562 - - Fix single-select enum params accumulating on Tab — now replaces, with Shift-Tab reverse cycling (e410 (https://tangled.org/burrito.space/peek/commit/e4106a8a), eefc (https://tangled.org/burrito.space/peek/commit/eefcfd58)) 563 - - Fix local file paths treated as domain names — tighten domain regex, add filesystem-first check (85b4 (https://tangled.org/burrito.space/peek/commit/85b48192)) 564 - - Fix connector commands with produces blocking param mode for edit command (4c28 (https://tangled.org/burrito.space/peek/commit/4c2840b9)) 565 - 566 - Desktop - Chrome Extensions 567 - - Show extension entry points from manifest in Settings, make them cmd-searchable (f55b (https://tangled.org/burrito.space/peek/commit/f55b6bb3)) 568 - - Add extensions widget to page view with per-site adblocker toggle (046d (https://tangled.org/burrito.space/peek/commit/046d5dd6)) 569 - - Fix Proton Pass black screen — remove browser.permissions shim that broke webextension-polyfill (1aa6 (https://tangled.org/burrito.space/peek/commit/1aa63e10)) 570 - - Replace chrome.permissions completely before extension code runs — prevents Proton Pass Proxy override (b744 (https://tangled.org/burrito.space/peek/commit/b744e8b7)) 571 - - Clear chrome.runtime.lastError before permission shim callbacks (8569 (https://tangled.org/burrito.space/peek/commit/8569c20d)) 572 - - Add callback-style permissions shim for webextension-polyfill compatibility (23f8 (https://tangled.org/burrito.space/peek/commit/23f81b96)) 573 - - Add chrome.storage.session and getBackgroundPage shims for Proton Pass service worker (a7d7 (https://tangled.org/burrito.space/peek/commit/a7d79dd2), b48f (https://tangled.org/burrito.space/peek/commit/b48f5001)) 574 - - Fix adblocker enable/disable state not persisting across restarts (ced1 (https://tangled.org/burrito.space/peek/commit/ced182ff)) 575 - 576 - Desktop - Tag Actions 577 - - Render tag action affordances as single toggle icon buttons in item cards (b721 (https://tangled.org/burrito.space/peek/commit/b721b51c)) 578 - - Simplify config UI to tag pairs with icon style — checkbox, eye, star, heart, flag, bookmark (fd82 (https://tangled.org/burrito.space/peek/commit/fd82de24)) 579 - - Fix event propagation on affordance clicks, fix \! syntax errors (efa7 (https://tangled.org/burrito.space/peek/commit/efa77299)) 580 - 581 - Desktop - Settings 582 - - Reorganize core pane into System/Data &amp; Backup/Windows groups (4d59 (https://tangled.org/burrito.space/peek/commit/4d597f2e), c7bf (https://tangled.org/burrito.space/peek/commit/c7bf11d1)) 583 - - Add &quot;Set as default handler for HTTP addresses and HTML documents&quot; button (85b4 (https://tangled.org/burrito.space/peek/commit/85b48192)) 584 - - Add HTML file association to electron-builder for macOS open command support (85b4 (https://tangled.org/burrito.space/peek/commit/85b48192)) 585 - - Update default window sizes from 800x600 to 1024x768 across 21 files (a9a1 (https://tangled.org/burrito.space/peek/commit/a9a14310)) 586 - 587 - Desktop - Items 588 - - Fix text items showing link icon when content contains URLs — use datastore type for icon (d47d (https://tangled.org/burrito.space/peek/commit/d47d759b)) 589 - 590 - Desktop - Infrastructure 591 - - Add jj-worktrees.sh script and Claude skill for multi-agent workflow (85b4 (https://tangled.org/burrito.space/peek/commit/85b48192)) 592 - - Fix microseason preload null reference on document.documentElement (efa7 (https://tangled.org/burrito.space/peek/commit/efa77299))</description> 593 - </item> 594 - <item> 595 - <title>2026-02-25</title> 596 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-02-25</link> 597 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-02-25</guid> 598 - <pubDate>Wed, 25 Feb 2026 12:00:00 GMT</pubDate> 599 - <description>Desktop - Command Palette 600 - - Rewrite cmd panel to use state machine with transition table and dispatch — 10 states, guard-based transitions, enforced invariants (0496 (https://tangled.org/burrito.space/peek/commit/04960fb1), 08eb (https://tangled.org/burrito.space/peek/commit/08eb8055)) 601 - - Add 76 unit tests and 15 integration tests for state machine (3c05 (https://tangled.org/burrito.space/peek/commit/3c05a142)) 602 - - Fix IDLE → PARAM_MODE direct transition for fill-style input (2f83 (https://tangled.org/burrito.space/peek/commit/2f83e6d8)) 603 - - Restore two-tone inline suggestion styling — bold typed text, dim completion (4d35 (https://tangled.org/burrito.space/peek/commit/4d35289b)) 604 - 605 - Desktop - Page View 606 - - Add page info and entities panels to navbar overlay — 75% off-page, 25% overlapping (e144 (https://tangled.org/burrito.space/peek/commit/e144dbd8)) 607 - - Refactor page layout to flexbox centering — window padding expands symmetrically (b494 (https://tangled.org/burrito.space/peek/commit/b494e8a3)) 608 - - Eliminate one-frame visual flash on navbar show/hide with opacity masking (8f22 (https://tangled.org/burrito.space/peek/commit/8f22aa70)) 609 - - Fix Cmd+L navbar auto-hide on mouseleave (4ff2 (https://tangled.org/burrito.space/peek/commit/4ff260b2)) 610 - - Fix navbar show/hide and loading lifecycle failures (6780 (https://tangled.org/burrito.space/peek/commit/67d01801)) 611 - 612 - Desktop - HUD 613 - - Fix macOS Spaces switching — use showInactive() to prevent activateIgnoringOtherApps (0166 (https://tangled.org/burrito.space/peek/commit/0166d4b3)) 614 - - Make HUD visible on all macOS Spaces and pass through visibleOnAllWorkspaces option (3893 (https://tangled.org/burrito.space/peek/commit/3893e68b)) 615 - 616 - Desktop - Extensions 617 - - Add search view extension with text and tag search (86a2 (https://tangled.org/burrito.space/peek/commit/86a21be6)) 618 - - Add tag actions extension for configurable tag-based automation (a617 (https://tangled.org/burrito.space/peek/commit/a6170230)) 619 - - Extract shared grid navigation into app/lib/grid-nav.js (e787 (https://tangled.org/burrito.space/peek/commit/e787c66f)) 620 - - Refactor tags to use shared card-helpers for peek-card slot construction (0580 (https://tangled.org/burrito.space/peek/commit/0580c349)) 621 - 622 - Desktop - Lexicon Studio 623 - - Seed recent lexicons from collections, fix sidebar styling (a629 (https://tangled.org/burrito.space/peek/commit/a629437c)) 624 - - Always show recent lexicons section in sidebar (d6cf (https://tangled.org/burrito.space/peek/commit/d6cfe9af)) 625 - 626 - Desktop - Windows 627 - - Unify hold-to-drag default to 1s, fix webview drag reliability (ce48 (https://tangled.org/burrito.space/peek/commit/ce483874)) 628 - - Prevent macOS Space switching when opening cmd palette (ac9a (https://tangled.org/burrito.space/peek/commit/ac9aa862))</description> 629 - </item> 630 - <item> 631 - <title>2026-02-23</title> 632 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-02-23</link> 633 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-02-23</guid> 634 - <pubDate>Mon, 23 Feb 2026 12:00:00 GMT</pubDate> 635 - <description>Desktop - Extensions 636 - - Reduce extension windows from 14 to 4 — consolidation with shared iframes, lazy loading, and show/hide instead of create/destroy (7977 (https://tangled.org/burrito.space/peek/commit/79772231)) 637 - - Add declarative command and shortcut registration in extension manifests — no background.js needed for simple commands (42ca (https://tangled.org/burrito.space/peek/commit/42ca20ac)) 638 - - Migrate intra-extension messaging from IPC pubsub to BroadcastChannel (7563 (https://tangled.org/burrito.space/peek/commit/7563532d)) 639 - - Migrate UI view preferences from api.settings to localStorage (7aea (https://tangled.org/burrito.space/peek/commit/7aea1f74)) 640 - - Fix lazy command replay, iframe ready signaling, and test updates (d1c2 (https://tangled.org/burrito.space/peek/commit/d1c2c614)) 641 - - Fix peek-card slot handling, HUD focus tracking, test reliability (51d8 (https://tangled.org/burrito.space/peek/commit/51d859c2)) 642 - 643 - Desktop - Lexicon Studio 644 - - Add record viewing, detail panel, and record deletion (62b4 (https://tangled.org/burrito.space/peek/commit/62b4c259)) 645 - - Rename me-core extension to Lexicon Studio across all user-facing strings (6940 (https://tangled.org/burrito.space/peek/commit/694d061f), c3fb (https://tangled.org/burrito.space/peek/commit/c3fb9b52)) 646 - - Eliminate background.js — make extension fully declarative with direct XRPC calls (c637 (https://tangled.org/burrito.space/peek/commit/c6375de5), 4aa1 (https://tangled.org/burrito.space/peek/commit/4aa1789b)) 647 - - Remove Bluesky reference from login and auto-close OAuth window (65b0 (https://tangled.org/burrito.space/peek/commit/65b0906d)) 648 - - Add unit tests for pure functions (a09d (https://tangled.org/burrito.space/peek/commit/a09d0f53)) 649 - 650 - Desktop - HUD 651 - - Add performance metrics widget — window counts and pubsub stats (2dc8 (https://tangled.org/burrito.space/peek/commit/2dc85478)) 652 - - Show active window info in HUD window widget (a7af (https://tangled.org/burrito.space/peek/commit/a7af389a)) 653 - 654 - Desktop - Editor 655 - - Add clickable links extension for CodeMirror (5660 (https://tangled.org/burrito.space/peek/commit/56600693)) 656 - - Remove highlightSelectionMatches to stop highlighting matching text on other lines (ef48 (https://tangled.org/burrito.space/peek/commit/ef48d325)) 657 - 658 - Desktop - Command Palette 659 - - Fix Tab/Enter semantics — Tab fills inline suggestion text, Enter executes with correct item identity (ced4 (https://tangled.org/burrito.space/peek/commit/ced4c145)) 660 - - Fix editor:open lazy-load interceptor so edit command opens editor on first use (0d39 (https://tangled.org/burrito.space/peek/commit/0d396ba8)) 661 - - Fix cmd palette blink on hotkey — skip non-focusable windows in did-resign-active handler (0d39 (https://tangled.org/burrito.space/peek/commit/0d396ba8)) 662 - 663 - Desktop - Windows 664 - - Add maximize window and fullscreen toggle commands (4ce0 (https://tangled.org/burrito.space/peek/commit/4ce0a233)) 665 - - Fix external URLs with no explicit position causing NaN coordinates (1f7f (https://tangled.org/burrito.space/peek/commit/1f7f24d5)) 666 - - Fix external URL opening from other apps — move single-instance lock before app.whenReady (efa0 (https://tangled.org/burrito.space/peek/commit/efa0bad6)) 667 - 668 - Desktop - Page View 669 - - Show navbar with loading spinner, tone down and theme the loading glow (fc63 (https://tangled.org/burrito.space/peek/commit/fc63631e)) 670 - 671 - Desktop - UI 672 - - Compact UI for tags and groups, muted accent colors for dark theme (d3f0 (https://tangled.org/burrito.space/peek/commit/d3f0be32)) 673 - - Show source URL on entity cards with open button (5ff4 (https://tangled.org/burrito.space/peek/commit/5ff490b5)) 674 - - Show URL on address cards in group view (529f (https://tangled.org/burrito.space/peek/commit/529fc7ac)) 675 - 676 - Mobile 677 - - Add offline reading with saved article content (0c55 (https://tangled.org/burrito.space/peek/commit/0c55e5ce)) 678 - - Add webview navigation tracking and configurable tag settings (0c55 (https://tangled.org/burrito.space/peek/commit/0c55e5ce)) 679 - - Hide from:history items from default list view (a0a4 (https://tangled.org/burrito.space/peek/commit/a0a47cc1)) 680 - - Move reader CSS from Rust to frontend for HMR support (8a02 (https://tangled.org/burrito.space/peek/commit/8a02b7c9)) 681 - - Fix markdown list auto-bulleting bugs (b9c3 (https://tangled.org/burrito.space/peek/commit/b9c3c1da))</description> 682 - </item> 683 - <item> 684 - <title>2026-02-20</title> 685 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-02-20</link> 686 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-02-20</guid> 687 - <pubDate>Fri, 20 Feb 2026 12:00:00 GMT</pubDate> 688 - <description>Desktop - Lexicon Studio (AT Protocol Identity) 689 - - Add AT Protocol identity extension — connect your Bluesky/AT Protocol account via OAuth PKCE+DPoP (b549 (https://tangled.org/burrito.space/peek/commit/b549fa8a), ea7b (https://tangled.org/burrito.space/peek/commit/ea7ba305)) 690 - - Add lexicon browser — explore all known AT Protocol lexicons, view your repo&apos;s collections with record counts (ba52 (https://tangled.org/burrito.space/peek/commit/ba528419)) 691 - - Add record creation — auto-generated forms from lexicon schemas, create records directly from the app (93fc (https://tangled.org/burrito.space/peek/commit/93fc3561), b9a4 (https://tangled.org/burrito.space/peek/commit/b9a485e1)) 692 - - Add recent lexicons sidebar — shortcuts for frequently used record types (260c (https://tangled.org/burrito.space/peek/commit/260cf397)) 693 - - Persist lexicon directory and schemas to survive restarts (3ba9 (https://tangled.org/burrito.space/peek/commit/3ba994f0)) 694 - - Add chain-form popup — create records directly from command palette without opening full panel (ba78 (https://tangled.org/burrito.space/peek/commit/ba7814e4), 1eec (https://tangled.org/burrito.space/peek/commit/1eec6c47)) 695 - 696 - Desktop - Windows 697 - - Add reopen-last-closed-window with Cmd+Shift+T and command palette (579c (https://tangled.org/burrito.space/peek/commit/579c9926)) 698 - 699 - Desktop - Extensions 700 - - Enable cross-origin fetch for extensions — extensions can now fetch from https:// origins (5051 (https://tangled.org/burrito.space/peek/commit/505123ab))</description> 701 - </item> 702 - <item> 703 - <title>2026-02-19</title> 704 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-02-19</link> 705 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-02-19</guid> 706 - <pubDate>Thu, 19 Feb 2026 12:00:00 GMT</pubDate> 707 - <description>Desktop - Themes 708 - - Switchable themes from command palette — themes are now installable CSS extensions (213b (https://tangled.org/burrito.space/peek/commit/213b4794a5f6dac0f29da22b9317c41fd23563d9)) 709 - - Add 七十二候 micro-seasons theme — colors change automatically every ~5 days based on Japan&apos;s 72 seasons calendar (d031 (https://tangled.org/burrito.space/peek/commit/d031c4f42b804bbe2442c1169069264c6ecfa326)) 710 - - Fix theme font loading and URLs (da4b (https://tangled.org/burrito.space/peek/commit/da4b78bf3077013c31ba650f02dba8a0b393eff9)) 711 - - Improve syntax highlighting readability in dark mode (de99 (https://tangled.org/burrito.space/peek/commit/de993e4710b2c02369c0a0ef378c908f6e11f583)) 712 - 713 - Desktop - Groups 714 - - Save and restore window layouts per group (1a25 (https://tangled.org/burrito.space/peek/commit/1a25f1d8742a52ec3e849f99b9465cafc61f3089)) 715 - - Close all windows in group, scope search to group, switch between groups, pin windows (b8a6 (https://tangled.org/burrito.space/peek/commit/b8a6befeb2eff51b5638aa4b790b77a74c4ddf52)) 716 - - Add unit tests for group quick wins (805d (https://tangled.org/burrito.space/peek/commit/805d0993e4c4edc294b57bd463bcfef71d9f0266)) 717 - 718 - Desktop - Widget System 719 - - Add widget sheet extension with freeform layout (9644 (https://tangled.org/burrito.space/peek/commit/96449d04269ac0a14740bad03067ddf2e784b6e3)) 720 - - Migrate HUD to widget sheet system with individual widget pages (4ec6 (https://tangled.org/burrito.space/peek/commit/4ec60504040874495d9439636db38513188aad46)) 721 - - Add widget demo extension (7aeb (https://tangled.org/burrito.space/peek/commit/7aeb1baa90812f18a26699035eab6487294c78fd)) 722 - - Add freeform layout mode with drag-to-move, edge-drag-to-resize, and snap-to-grid (6f05 (https://tangled.org/burrito.space/peek/commit/6f05c81f835653363d7f5df6ede6f48878495031)) 723 - 724 - Desktop - Editor 725 - - Add vim :set wrap/nowrap, :set number/nonumber, and :q command (4750 (https://tangled.org/burrito.space/peek/commit/4750ab83412366fa303bd4756fab3c393aebaaf8)) 726 - - Persist vim :set settings across sessions (ab30 (https://tangled.org/burrito.space/peek/commit/ab30313bf529b5065a06a1e55517c2a1c7edff35)) 727 - - Support multiple simultaneous editor instances (a3be (https://tangled.org/burrito.space/peek/commit/a3beea130920c0f4da96ee99d4021ab673a576b9)) 728 - 729 - Desktop - Page View 730 - - Show loading indicator for in-page navigations (538f (https://tangled.org/burrito.space/peek/commit/538f3769aa6cba57af1c12cb57cb14437527a4db)) 731 - - Rewrite loading indicator for reliability (847d (https://tangled.org/burrito.space/peek/commit/847dd119d0b540cd96f9fa1d9a6bdbd0c6fb2a95)) 732 - - Ensure loading glow clears when page finishes loading (1630 (https://tangled.org/burrito.space/peek/commit/16304f58514b40a14cf040e31826699e83dc93a6)) 733 - 734 - Desktop - Entity Recognition 735 - - Add entity validation framework (64f7 (https://tangled.org/burrito.space/peek/commit/64f7a7a470aa06fd7576607113b04cfa9adfbb1c)) 736 - - Add unit tests for name-validator module (d81c (https://tangled.org/burrito.space/peek/commit/d81c07d73229f5920d1f253b220e2d4fa35d9578)) 737 - 738 - Desktop - Tauri 739 - - Add system tray with click-to-show (c469 (https://tangled.org/burrito.space/peek/commit/c469d9da5ea67e513eb0467bda8550f3f10e1c1c)) 740 - - Add net-fetch proxy and file dialog commands (83f5 (https://tangled.org/burrito.space/peek/commit/83f5a1d261ff53a8d91407131c60218ba2eb2971)) 741 - 742 - Desktop - Refactoring 743 - - Extract shared modules to app/lib for platform-agnostic use between Electron and Tauri (da44 (https://tangled.org/burrito.space/peek/commit/da44fd3dd4ea7db548b9894687e8cefa18efbe64), 9ff2 (https://tangled.org/burrito.space/peek/commit/9ff26e737bf254facffdcc47ec708ec5ef88db23), 10f0 (https://tangled.org/burrito.space/peek/commit/10f0bfc0855ac5934ec1f6c7f6843fc5efd0025e), e267 (https://tangled.org/burrito.space/peek/commit/e267e2661139e7ebad0e91ac7e458af05a3502ba), 7ed8 (https://tangled.org/burrito.space/peek/commit/7ed8b22556f1e2fbbe26c3cc833956f7cc29a270)) 744 - 745 - Desktop - Fixes 746 - - Fix hold/drag cursor feedback CSS (6e86 (https://tangled.org/burrito.space/peek/commit/6e862be638d70eac3fa1163c6c1dd7e14b11b8f5)) 747 - - Make sync fire-and-forget with 15s timeout (96ed (https://tangled.org/burrito.space/peek/commit/96edd06a18c374926e515b703d6193116fe2c19d), 73f9 (https://tangled.org/burrito.space/peek/commit/73f9896fd1aa5c6b0b683cafa9d58ec12528be6c)) 748 - - Handle macOS open command with local file paths (1ae8 (https://tangled.org/burrito.space/peek/commit/1ae8101e0554cf9d2e17db11ee94b9aabc58e8c7)) 749 - - Prevent opening app directory as file:// URL on startup (e12b (https://tangled.org/burrito.space/peek/commit/e12bef73e27699ed8cc7b53da178fc2a247b198b)) 750 - - Use Promise.allSettled for extension loading so one failure doesn&apos;t block all commands (d031 (https://tangled.org/burrito.space/peek/commit/d031c4f42b804bbe2442c1169069264c6ecfa326)) 751 - 752 - Testing 753 - - Resolve pre-existing unit test failures across 4 test suites (a961 (https://tangled.org/burrito.space/peek/commit/a9610b631d66db1a190ab49332cc06667fad3ef9))</description> 754 - </item> 755 - <item> 756 - <title>2026-02-16</title> 757 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-02-16</link> 758 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-02-16</guid> 759 - <pubDate>Mon, 16 Feb 2026 12:00:00 GMT</pubDate> 760 - <description>Desktop - Command Palette 761 - - Generic command chaining with pipe system (5975 (https://tangled.org/burrito.space/peek/commit/5975f593ff109df82daf56b47233cf6910db89d3)) 762 - - Replace embedded chain editor with popup window system (5729 (https://tangled.org/burrito.space/peek/commit/5729822b4748acc4bf98c9563d4f7c2a17ae2435)) 763 - - Add parameter suggestions to command palette (693d (https://tangled.org/burrito.space/peek/commit/693de4ad13de5edf49643088a724d2788936aca6)) 764 - - Add noun registration API for declarative command generation (191f (https://tangled.org/burrito.space/peek/commit/191fb02212c460355702d619f264fa5801edb6b3)) 765 - - Remove download cmd, fix save filename, fix dialog parent, unify hashtag extraction (5b95 (https://tangled.org/burrito.space/peek/commit/5b95d1af28ec91787778989f5d0f4d8b34435769)) 766 - - Preserve noun routing metadata in command registry pipeline (39a4 (https://tangled.org/burrito.space/peek/commit/39a45314a629b9083163e03a2e59162836266e31)) 767 - 768 - Desktop - Entity Recognition 769 - - Add observation frequency ranking for entities (8031 (https://tangled.org/burrito.space/peek/commit/80313a9eb1da5e586e5d5d50823c0f88a23f57b9)) 770 - - Add thumbs up/down feedback for entity quality scoring (c0e5 (https://tangled.org/burrito.space/peek/commit/c0e5afab57ec4749b29ab35c5ab526b24912720b)) 771 - 772 - Desktop - Tags 773 - - Add rename and delete tag operations (ac2a (https://tangled.org/burrito.space/peek/commit/ac2a86fb419412483cbaa784108526e15067642e)) 774 - - Fix protocol 404 logging, handle all item types, fix filter counts (403e (https://tangled.org/burrito.space/peek/commit/403ea5b151149ef10cd2a22b61838cf7fa3b02a8)) 775 - 776 - Desktop - Display Switching 777 - - Simplify display-watcher to safety-net-only approach — let macOS handle display migration natively, only rescue orphaned windows (afae (https://tangled.org/burrito.space/peek/commit/afae1e4af08491ae69b6feb6dab9c6f1fa7cae10)) 778 - 779 - Desktop - Page View &amp; Dragging 780 - - Fix keyboard shortcuts responding in wrong page window (6573 (https://tangled.org/burrito.space/peek/commit/65735c4d27ac2411d62d9c32c4b6c4494e28e0ba)) 781 - - Fix drag ending on webview mouseup to prevent overlay blocking clicks (a7b8 (https://tangled.org/burrito.space/peek/commit/a7b8948d19f2fec4c239bf51217421dda79d4b80)) 782 - - Fix webview mousemove during active drag for window movement (ac37 (https://tangled.org/burrito.space/peek/commit/ac37674d8b52be9359f4aa1706d86dca11c8ec72)) 783 - - Restore hold-to-drag in extension windows (63c1 (https://tangled.org/burrito.space/peek/commit/63c17b27bd19b3c8f9a288ba491271054a31b450)) 784 - 785 - Desktop - Auth &amp; URLs 786 - - Improve OAuth popup bridge and flow (c93a (https://tangled.org/burrito.space/peek/commit/c93a46dc3ed7ce977e1227f8e3f8ce02152e4695)) 787 - - Wait for frontend ready and session restore before processing external URLs (e7ab (https://tangled.org/burrito.space/peek/commit/e7ab8092a3cdde2dd2ba99de18b7fd1babc4a3c2)) 788 - 789 - Testing 790 - - Add completer unit tests; fix tag # prefix stripping (6102 (https://tangled.org/burrito.space/peek/commit/61020b937d52bd87cfad5425f77167e65421c3c1)) 791 - - Add integration tests for command execution through pubsub (e11d (https://tangled.org/burrito.space/peek/commit/e11daddb41f2c53cbba0ecbae40b0e71e1ec4cb0)) 792 - - Add command chaining pipe system tests (566c (https://tangled.org/burrito.space/peek/commit/566c9ec7028c8197426369b93f148090aa2e7087)) 793 - - Add OAuth bridge unit tests (77b0 (https://tangled.org/burrito.space/peek/commit/77b0f1972afb51f6e0c271bf8abaff09e80a8020)) 794 - - Fix 4 stale test expectations in desktop smoke tests (4d96 (https://tangled.org/burrito.space/peek/commit/4d9683f93f590c58fc823024fddcc65f38b29183))</description> 795 - </item> 796 - <item> 797 - <title>2026-02-13</title> 798 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-02-13</link> 799 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-02-13</guid> 800 - <pubDate>Fri, 13 Feb 2026 12:00:00 GMT</pubDate> 801 - <description>Desktop - Session Restore 802 - - Full session save/restore — snapshot windows on quit, restore on startup with confirmation, autosave timer, crash recovery dialog (0e8a (https://tangled.org/burrito.space/peek/commit/0e8afccdff0075b9151b3dbd40609f53f16a8521), f270 (https://tangled.org/burrito.space/peek/commit/f270c56db43c1799a0a6c8dd801a00a2419124e3), d015 (https://tangled.org/burrito.space/peek/commit/d0150877ced2ff5e02d7414b3c6c08cd404e0f17), d2fb (https://tangled.org/burrito.space/peek/commit/d2fb834abcd81e1a7d23898b4875f996f8899c52)) 803 - - Save settings windows, strip stale params on restore, fix display-watcher race conditions (d12b (https://tangled.org/burrito.space/peek/commit/d12bd2b93d553c124f508fe37bbd6f7d325f4362)) 804 - - Suppress display-watcher during session restore to preserve window positions (c32b (https://tangled.org/burrito.space/peek/commit/c32b73dfaf9ef4f497623452d7f919be28194392)) 805 - - Treat SIGINT/SIGTERM as clean shutdowns to prevent false crash dialog (f56f (https://tangled.org/burrito.space/peek/commit/f56f5624550c93ef1e93f60392496a70b6dc393f), 8ab6 (https://tangled.org/burrito.space/peek/commit/8ab6d36de9d593b894ef92893dc59b6af751ba3b), 16a2 (https://tangled.org/burrito.space/peek/commit/16a2d4bcabce898ceb850ae3258965c384d71b89)) 806 - - Fix synchronous SIGINT save and correct canvas page bounds (2df8 (https://tangled.org/burrito.space/peek/commit/2df8a7339298b2b3c30f81168eef6b0bfabf4299)) 807 - - Open startup feature when restore is declined or fails (0f28 (https://tangled.org/burrito.space/peek/commit/0f280143d148e3bf25cd870b39cfaef528939d0a)) 808 - 809 - Desktop - Display Switching 810 - - Reposition windows when displays change — preserves positions before OS moves them (d732 (https://tangled.org/burrito.space/peek/commit/d732fa7912f47f70d32fde3b932f5842705fcc38)) 811 - - Track home display to restore windows after display reconnect (60b0 (https://tangled.org/burrito.space/peek/commit/60b0798db24bc9b6b571a30106a1392b453eae1f)) 812 - - Use group-based distance scaling for window repositioning (1116 (https://tangled.org/burrito.space/peek/commit/11166190d9066226b760225731477215c690a1c7)) 813 - 814 - Desktop - Entity Recognition 815 - - Show source pages in entity list and add detail pane with full metadata (12fe (https://tangled.org/burrito.space/peek/commit/12feb9024640dc6a132b2080ae85012307407c78)) 816 - - Improve detection coverage and reduce price noise (82b7 (https://tangled.org/burrito.space/peek/commit/82b700377bbc902113c276d7eb50a5df59812d92)) 817 - - Remove standalone price entities lacking product context (3832 (https://tangled.org/burrito.space/peek/commit/383202ae65eb33aebafb52b01d4dd46579a6060b)) 818 - - Require context for date entities, remove standalone dates (6ada (https://tangled.org/burrito.space/peek/commit/6ada27ba19445ed4dc1c076961336ace34b0c83e)) 819 - 820 - Desktop - Command Palette 821 - - Add command chaining flow for list notes, markdown, download, save as note (04ef (https://tangled.org/burrito.space/peek/commit/04ef4c8aaf106cb8ef8c5110abbda841b940f1b7)) 822 - - Add &quot;open file&quot; command with chaining and fix note inline tag extraction (0717 (https://tangled.org/burrito.space/peek/commit/0717e87b6898b822075effa65d75beb4c9043120)) 823 - - Require explicit command match on Enter — remove web search fallback (49c6 (https://tangled.org/burrito.space/peek/commit/49c6e5ec4027e472af606462fcaeef8044cfdc77)) 824 - - Sort history by frecency, use targeted queries for URL lookups (0873 (https://tangled.org/burrito.space/peek/commit/0873e5ee688ec0a53440382fd88ccd681323a0f8)) 825 - - Restore web page URLs in frecency suggestions (65ba (https://tangled.org/burrito.space/peek/commit/65baa072eef50d9b1ef7c69ad4e03e33116af346)) 826 - - ESC clears text first, Shift-Tab cycles backward, fix frecency tracking (8f6b (https://tangled.org/burrito.space/peek/commit/8f6b41a8db9dc7ca85a1a696f3af4cca74915ac7)) 827 - - Register IZUI escape handler so ESC clears text before closing (8059 (https://tangled.org/burrito.space/peek/commit/80592eb03a143100ddaaa3a4f32db2d95eabc3cc)) 828 - - Remove prefix feedback that caused adaptive sort cross-contamination (5ceb (https://tangled.org/burrito.space/peek/commit/5ceb05172fdfaf0c779ac6f23547a6e56567e123)) 829 - - Add deterministic tiebreaker to sort for consistent autocomplete (566b (https://tangled.org/burrito.space/peek/commit/566b63a8df0b21056b8157670216a668602e1855)) 830 - 831 - Desktop - Page View &amp; Navigation 832 - - Replace fullscreen transparent window with minimal page host (c543 (https://tangled.org/burrito.space/peek/commit/c543e38bf36d79a2c448e3e860157a4a34da388c)) 833 - - Eliminate navbar show/hide webview jump (43c9 (https://tangled.org/burrito.space/peek/commit/43c9353ec1523cd67d3c848ec5536561ad1e797b), 982f (https://tangled.org/burrito.space/peek/commit/982f6a10ac4ed9b7ab383e09b4889aa8224d8262), 083f (https://tangled.org/burrito.space/peek/commit/083fbdf90c90c9b717c259887ae4c22adebae84e), bd04 (https://tangled.org/burrito.space/peek/commit/bd0449db6277a60577ccbc0e6a37afb58adb433c)) 834 - - Restore webview drag with mousedown/mouseup bridge from guest page (63cd (https://tangled.org/burrito.space/peek/commit/63cd141464c98f54e17ad475248208c356957c8a)) 835 - - Remove broken click-through code that activated unrelated windows (10f2 (https://tangled.org/burrito.space/peek/commit/10f29146d98c2cf25b8c63de56de3cfc85b712a9)) 836 - 837 - Desktop - Window Dragging 838 - - Rewrite window drag system — unified, faster, works everywhere (5a7c (https://tangled.org/burrito.space/peek/commit/5a7c7899116f7501f40ca99cbe1b6ed8c93031f3), fa58 (https://tangled.org/burrito.space/peek/commit/fa58f66b384faf13746f8aa3e2bca266fdde3530), 1f81 (https://tangled.org/burrito.space/peek/commit/1f815b618a836270b1b444cf9cbfc13c6373a884)) 839 - 840 - Desktop - HUD &amp; Groups 841 - - Hide HUD on app blur (be05 (https://tangled.org/burrito.space/peek/commit/be05026c3fe8bf9d28c28c05490fc16c3a75a204)) 842 - - Fix group creation via inline form (1418 (https://tangled.org/burrito.space/peek/commit/141829f79561a67556fb231fe89197de795cde09)) 843 - - Restore tags reactivity on sync and data changes (60eb (https://tangled.org/burrito.space/peek/commit/60eb36df2fc0febad130ac8ce104ce756649cc91)) 844 - - Fix item icons, group creation form, and tagset detection (5b0c (https://tangled.org/burrito.space/peek/commit/5b0ca9380c3217a63a66853858ab24dccb5d088f)) 845 - 846 - Desktop - Dark Mode &amp; Settings 847 - - Respect OS color scheme in system dark mode (6813 (https://tangled.org/burrito.space/peek/commit/6813ea5f2e3fb51f11942470c1b706976e985afd)) 848 - - Fix web search suggestions, default engine setting, and settings UI (bcae (https://tangled.org/burrito.space/peek/commit/bcaeb2051189ac03e9c06279cfe87a49c33a730c)) 849 - - Add Kagi as built-in search engine (e7d0 (https://tangled.org/burrito.space/peek/commit/e7d05c943f84b04b521fdce849312e5f05574a78)) 850 - - Add descriptions and human-readable labels to core settings (0bfe (https://tangled.org/burrito.space/peek/commit/0bfe87b9e109ded26ea92c90a0adc9629f29bf3a)) 851 - - Fix quit shortcut default reset, editor portrait, datastore table (f6a1 (https://tangled.org/burrito.space/peek/commit/f6a16ad4a2d060b01ac213b6154bc02aee4f371b)) 852 - 853 - Desktop - Fixes 854 - - Fix mode leak into global scope and bring existing windows to front (9b78 (https://tangled.org/burrito.space/peek/commit/9b783b6b8e544458af64e6129a190fe6b218d436)) 855 - - Silence spurious warnings when unregistering global shortcuts during shutdown (7941 (https://tangled.org/burrito.space/peek/commit/7941b5f670a2e4c764736ab9baff94c287a643b6)) 856 - - Ensure command registration after extensions loaded (3f9d (https://tangled.org/burrito.space/peek/commit/3f9df0153f85a43f3ed392d5bd07357b801dfa33)) 857 - - Simplify command registration — remove boilerplate (f730 (https://tangled.org/burrito.space/peek/commit/f7306de6a6086d45fe56ce76bb5e27612ab593c1)) 858 - - Add sorting and view modes to card grid toolbar (83a8 (https://tangled.org/burrito.space/peek/commit/83a8533205ca3eaf796046a61b627b925dae997f)) 859 - - Use tangled.org URLs for RSS, fix localsearch manifest loading (06af (https://tangled.org/burrito.space/peek/commit/06afcb89112a6ff4dfa9e707f9aeeff057c489f2)) 860 - 861 - Testing 862 - - Add 67 real integration tests for session save/restore (49f0 (https://tangled.org/burrito.space/peek/commit/49f094f7fa698dadd2745c802de1015dcc9f30a3)) 863 - - Add display-watcher tests for pre-debounce capture, suppress timer, and isRemoval flag (fd56 (https://tangled.org/burrito.space/peek/commit/fd56204f81d78dcbb6b586aaea0ef97441eecbd8)) 864 - - Add 94 new unit tests and fix 3 E2E test failures (2251 (https://tangled.org/burrito.space/peek/commit/2251f86f43643a9b308cac6fa46dbf593141cfb3))</description> 865 - </item> 866 - <item> 867 - <title>2026-02-11</title> 868 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-02-11</link> 869 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-02-11</guid> 870 - <pubDate>Wed, 11 Feb 2026 12:00:00 GMT</pubDate> 871 - <description>Desktop - New Extensions 872 - - Web search extension — search from command palette with live suggestions, auto-discovers OpenSearch endpoints on visited pages (bf48 (https://tangled.org/burrito.space/peek/commit/bf488889b77d22dd6b17d3613597379ba2b15737)) 873 - - Unified search extension (4b95 (https://tangled.org/burrito.space/peek/commit/4b95973d39a9ab252cce55b8402fbed674d742c4)) 874 - - Vertical history stream extension (35f9 (https://tangled.org/burrito.space/peek/commit/35f9afccca7020cee7762bb603ee68709949dcea)) 875 - 876 - Desktop - History Unification 877 - - Unify address/visit system into items table — remove dual-write, redirect APIs, update Tauri backend, remove legacy code (475e (https://tangled.org/burrito.space/peek/commit/475e97feb695d45e1253e03cd05e1b8a2d1982d7)..6f90 (https://tangled.org/burrito.space/peek/commit/6f90f258e36b729608a49b178db50894478f628f)) 878 - 879 - Desktop - Dark Mode 880 - - 3-tier dark mode for web pages — System (prefers-color-scheme), Force (Chromium CIELAB inversion), with settings UI (ef24 (https://tangled.org/burrito.space/peek/commit/ef242dde9d5829fdb5342d1ba7781bc0e9767485)) 881 - 882 - Desktop - Page View &amp; Navigation 883 - - Browser navigation hotkeys and editable URL bar — Cmd+R reload, Cmd+[/] back/forward, Cmd+L to edit URL (52a9 (https://tangled.org/burrito.space/peek/commit/52a99ec7c345ba5bd9cfc37036848d29ca0294ae)) 884 - - Widget system with OpenSearch discovery notification (ce5a (https://tangled.org/burrito.space/peek/commit/ce5ae4bb7d118320c02ae80a00af9793a5749bcf)) 885 - - Improve drag-from-anywhere with long-press detection and all-corner resize (d135 (https://tangled.org/burrito.space/peek/commit/d135cfa61cc3563cb597987ebf7b55eea5e3d03c)) 886 - - Apply background detection to non-canvas web pages (e1ac (https://tangled.org/burrito.space/peek/commit/e1ac7b6f8920944019cbca21aaf1188b25592bd2)) 887 - - Restore full-width navbar — remove floating bubble design (7769 (https://tangled.org/burrito.space/peek/commit/7769f1e19c6f74cb5fd18493c42bbaecc8a59644)) 888 - - Fix Loading... title bug, add page content extraction and URL metadata enrichment (61ca (https://tangled.org/burrito.space/peek/commit/61ca6f009ba9ad357e09f310770fa5cdf2940b9c)) 889 - 890 - Desktop - Tags &amp; Editor 891 - - Embed editor in detail pane for inline note editing with vim status bar (a575 (https://tangled.org/burrito.space/peek/commit/a575013e7000b50db91235fa09b67104ea5293d2)) 892 - - Content search with tag combo filtering, pin selected tags in sidebar (d005 (https://tangled.org/burrito.space/peek/commit/d005d3dd966595778c482c2ce8f555ffb8550ca6)) 893 - - Fix note command blank editor, tags reactivity, and editor height (cb4d (https://tangled.org/burrito.space/peek/commit/cb4d5e10b8d4a27c6529945e00efea2bed701fc0)) 894 - - Forward ESC to vim in insert/visual mode before IZUI handles it (7b86 (https://tangled.org/burrito.space/peek/commit/7b866e87a87e357bd1482e5d8e5775f9702c5d81)) 895 - - Fix editor layout, vim status bar positioning, and focus ring cleanup (0848 (https://tangled.org/burrito.space/peek/commit/08483e4ef820d8eece5fc28f7c113690ff002c82), 3100 (https://tangled.org/burrito.space/peek/commit/3100ec71fc60978bc7cc89da1c1a5f8bf82f4e11), 3a07 (https://tangled.org/burrito.space/peek/commit/3a072f24678bb375a193b04ea7fdb05b92d546be)) 896 - 897 - Desktop - Shortcuts &amp; Commands 898 - - Dual hotkey registration — local Cmd+ alongside global Opt+ for palette, editor, tags, groups, HUD (545e (https://tangled.org/burrito.space/peek/commit/545e95b47d436171406bc01c3783ac7d1e5ca382)) 899 - - Query registered commands via pubsub (696c (https://tangled.org/burrito.space/peek/commit/696c7859c3b10bb81a8ea741dbb65e595bbe3af3)) 900 - - Fix frecency/adaptive sorting in command palette (2f6d (https://tangled.org/burrito.space/peek/commit/2f6da3fd76ba4780daf8e0626bd45e9a50b1dd5e)) 901 - 902 - Desktop - Settings &amp; Extensions 903 - - Rework extensions settings — separate Features vs Extensions sections, add options buttons (cb54 (https://tangled.org/burrito.space/peek/commit/cb54040945458d258ed48f9951820998ebdd6e75)) 904 - - Dynamically list all builtin extensions in Features section (90fe (https://tangled.org/burrito.space/peek/commit/90fe93d0fea4d2286ab6099ffd097e40205e1fef)) 905 - - Generic settings/UI system for bundled Chrome extensions (edbf (https://tangled.org/burrito.space/peek/commit/edbf5169a396539ed2d94df1b873690d168d7b7a)) 906 - - Migrate ad blocker from @cliqz to @ghostery (93b4 (https://tangled.org/burrito.space/peek/commit/93b445613d086b8f1d4caea934d5e466a0b975a6)) 907 - 908 - Desktop - Fixes 909 - - Fix HUD focus stealing, chrome ext options styling, duplicate group cards (4768 (https://tangled.org/burrito.space/peek/commit/47686da71893feb30b286fbc5e45021e6f442e07)) 910 - - Prevent duplicate windows/URLs, fix race conditions and title resolution (20cb (https://tangled.org/burrito.space/peek/commit/20cb9956145d94e57a902a1976e1bd56a1242d4b)) 911 - - Resolve extension disabled by settings key collision (671d (https://tangled.org/burrito.space/peek/commit/671df42e33f9b08db4a058e98e8e4e6f7bdbddad)) 912 - - Resolve window ID from caller when null, set mode before loadURL (c1d7 (https://tangled.org/burrito.space/peek/commit/c1d77f286c8ba45015514d6a836bf4a13df7f66a)) 913 - - Align entity and script UIs with groups/tags component patterns (c5df (https://tangled.org/burrito.space/peek/commit/c5df43bcf9d5f28dd1dbf129fe47612346c26b6f), 50c6 (https://tangled.org/burrito.space/peek/commit/50c639ff3a591181e8bd6b10b8bfdd8f906406a3)) 914 - - Use extension settings API for vim mode, audit localStorage usage (3962 (https://tangled.org/burrito.space/peek/commit/3962110b5db93447fd6b95379281de6a0223a203)) 915 - - Pin Node version to 24.11.1 to match Electron 40 (96c0 (https://tangled.org/burrito.space/peek/commit/96c05941d16a0989f7407b00a63cda2994e52d24)) 916 - 917 - Testing 918 - - Add unified URL/history tests for unification refactor (d3ac (https://tangled.org/burrito.space/peek/commit/d3ac05f7135ead6685d7c8ddb50ba378c2e700b9)) 919 - - Add comprehensive test data for entity recognition (d710 (https://tangled.org/burrito.space/peek/commit/d710d039355e4e355c0c3e26844753c8c6d4e245))</description> 920 - </item> 921 - <item> 922 - <title>2026-02-09</title> 923 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-02-09</link> 924 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-02-09</guid> 925 - <pubDate>Mon, 09 Feb 2026 12:00:00 GMT</pubDate> 926 - <description>Desktop - IZUI Role-Based Redesign 927 - - Unified ESC handling, migrate components to shared peek-components, fix HUD tests (21d5 (https://tangled.org/burrito.space/peek/commit/21d59cc00e8516382e0425f2442019ff915936e5)) 928 - - Role-based window policy — five deterministic roles (root, child-content, child-tool, hud, transient) govern ESC behavior and lifecycle (3fbc (https://tangled.org/burrito.space/peek/commit/3fbcade9a47b8375e0e10d15bf693104587433f3)) 929 - - Complete role-based migration — all window creation uses role policy, remove legacy session tracking (8528 (https://tangled.org/burrito.space/peek/commit/8528f053e1ef930b191eb2b834180eb84475851c)) 930 - - Promote content to child-content when opened from parent window (92d3 (https://tangled.org/burrito.space/peek/commit/92d359c5c5ecdf8baa6aca5cdcc3fb81c34c7921)) 931 - - Promote transient session on app focus, fix startup role (055b (https://tangled.org/burrito.space/peek/commit/055b77ed748ccce030da378d116e1d8c503bf659)) 932 - 933 - Desktop - Navigation &amp; UI 934 - - Restore floating nav bar — remove embedded regression (9306 (https://tangled.org/burrito.space/peek/commit/93060df349c11e0bae011121552a1901ec02c068)) 935 - - Delegate click/focus through shadow DOM boundary in peek-card (b15c (https://tangled.org/burrito.space/peek/commit/b15c6434bd885e0e00b31ce2ef62e670c282232c)) 936 - - Migrate tags UI to shared peek-components for consistent styling (3145 (https://tangled.org/burrito.space/peek/commit/3145a08ad2604f17424b26604e8d1b003c4aacf9)) 937 - - Align startupFeature schema default with actual default (aab2 (https://tangled.org/burrito.space/peek/commit/aab2b20b8a365fdb47c28554c9cbbf9062010ed2)) 938 - - Delay URL processing to ensure app activation completes (f0d1 (https://tangled.org/burrito.space/peek/commit/f0d1e5bd1289caf470e9a6a9d793414abb3ae6a1)) 939 - 940 - Desktop - Entity Recognition 941 - - Entity recognition extension — extract entities (people, places, dates, etc.) from saved items with extensible matcher and store (ae0c (https://tangled.org/burrito.space/peek/commit/ae0cd81109117239e4ad4ac0f30366246a1e94b9)) 942 - 943 - Desktop - HUD &amp; Groups 944 - - Populate HUD mode, active window, and stats fields (be18 (https://tangled.org/burrito.space/peek/commit/be18f49f540738aab4bcd11cb2ab3f2c388ffd2e)) 945 - - Preserve group context through page navigation (1d69 (https://tangled.org/burrito.space/peek/commit/1d69ce8fd81c9fc23faac81368fb004d7bb82d9a)) 946 - - Disable FK checks during entity type migration (9802 (https://tangled.org/burrito.space/peek/commit/98025bcca6309076ea578a32b287d81091295a55)) 947 - 948 - Desktop - Shortcuts &amp; Page 949 - - Guard ev.reply() against destroyed senders and add roundtrip tests (49b6 (https://tangled.org/burrito.space/peek/commit/49b626e9c92523f39dc190d8024770e84737d17d)) 950 - - Use BrowserWindow ID not WebContents ID for shortcut callbacks (d6fe (https://tangled.org/burrito.space/peek/commit/d6fe8cbfe845cd081eb712d6add07b4b08dab227)) 951 - - Resolve stale IPC reference in global shortcut callbacks (221d (https://tangled.org/burrito.space/peek/commit/221d5a442d970de8a1db07dfd4f5816b607a60f2)) 952 - - Content-sized BrowserWindow instead of fullscreen canvas (2eb7 (https://tangled.org/burrito.space/peek/commit/2eb7a7037b92ef3d9a3961a39de2774fbf41ecff)) 953 - 954 - Desktop - Command Bar 955 - - Restore URL detection for domains without protocol (youtube.com) (8abf (https://tangled.org/burrito.space/peek/commit/8abf13b6300b6735ff748d65a71145f584972fed)) 956 - 957 - Sync Architecture 958 - - Separate sync pull from user operations — server metadata preserved naturally (b3cb (https://tangled.org/burrito.space/peek/commit/b3cbb47e44fa6fb766c98a1e87547d86f2fce87c)) 959 - - Remove syncSource from schema, replace with device ID tracking via _sync metadata (3ffa (https://tangled.org/burrito.space/peek/commit/3ffa9bf15275feeafcb1fcef5cfce0013276d7db)) 960 - - Remove sync_source usage from iOS sync (3ca3 (https://tangled.org/burrito.space/peek/commit/3ca335f097031f0d227d9d4984274f019a53f05d)) 961 - - Add device ID and _sync metadata to mobile backend (abc4 (https://tangled.org/burrito.space/peek/commit/abc408159b76a74cf8712ab42e6c6f572b9f9ebc)) 962 - 963 - Mobile / iOS 964 - - Native inline WKWebView and fix dev build pipeline (ac11 (https://tangled.org/burrito.space/peek/commit/ac1154e70ac137d8c4079ebfd90fbf504c951f9e)) 965 - - Separate dev/release build paths and enable media autoplay (5044 (https://tangled.org/burrito.space/peek/commit/5044478650895bf02ea44ab07247a1437de290c4)) 966 - - Prevent white flash when opening inline webview (edc1 (https://tangled.org/burrito.space/peek/commit/edc1b5b97953a149f48bdea6f7b02e5a00e1b26a)) 967 - - Tighten header layout alignment (6f63 (https://tangled.org/burrito.space/peek/commit/6f639e85a362d16b7a3a0d40d55d2369fb679929)) 968 - - Editor overlays fill to keyboard, tagset cards use tag chips (bb03 (https://tangled.org/burrito.space/peek/commit/bb032a08cc463712f90feff4d66d2e79c89ff534)) 969 - - Replace Once::call_once with retryable Mutex for DB init (bb02 (https://tangled.org/burrito.space/peek/commit/bb02d53584824cc53a8231b5edf603798a309933)) 970 - - Hide from:history items from default list view (c6ac (https://tangled.org/burrito.space/peek/commit/c6acfc60)) 971 - - Separate derivedDataPath for simulator and device builds (d687 (https://tangled.org/burrito.space/peek/commit/d687029109f05f5d20cebeb6b3c459e1f86469fe)) 972 - - Add --standalone flag to embed real frontend in iOS builds (90c7 (https://tangled.org/burrito.space/peek/commit/90c7f5d80c3c7333c51c4838a3b04597b4dff348)) 973 - 974 - Testing 975 - - Add comprehensive URL detection tests for command panel (ccc5 (https://tangled.org/burrito.space/peek/commit/ccc5a13b2af9dff5333de06918bd9b89595dcd30)) 976 - - Add syncSource migration simulation tests (7273 (https://tangled.org/burrito.space/peek/commit/72731acf9cd9d3be88c0a1f8f5f92217c023ce70)) 977 - - Add unit tests for entity extractors, matcher, and store (8759 (https://tangled.org/burrito.space/peek/commit/8759b7070b4d9fb4703d9b3533a2b3b3d6c22a69)) 978 - - Add mode context propagation tests (5fbc (https://tangled.org/burrito.space/peek/commit/5fbcc1cae400d44fba0007d77155937b7e03b7a7)) 979 - - Deterministic profile IDs via PEEK_PROFILE_ID env var (7c61 (https://tangled.org/burrito.space/peek/commit/7c61aa6e47e5d0b03b63918b68134c449d99b867)) 980 - - Run unit tests under Electron&apos;s Node to match native module ABI (e1e0 (https://tangled.org/burrito.space/peek/commit/e1e0c7c5c989c296fc75adf8f493ada592443caa)) 981 - - Enable single-user mode for e2e tests (c6c2 (https://tangled.org/burrito.space/peek/commit/c6c249b52830b6efd18b2d91ea2eaad6e3bc94f6))</description> 982 - </item> 983 - <item> 984 - <title>2026-02-02</title> 985 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-02-02</link> 986 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-02-02</guid> 987 - <pubDate>Mon, 02 Feb 2026 12:00:00 GMT</pubDate> 988 - <description>Desktop - IZUI (Inverted Zooming User Interface) 989 - - IZUI state machine for transient vs active window behavior — centralized state tracking, ESC behavior depends on context (457c (https://tangled.org/burrito.space/peek/commit/457ce41d3dd96dc2447951347ce5047f85d87029)) 990 - - OS-level focus for transient detection, graceful test shutdown (e176 (https://tangled.org/burrito.space/peek/commit/e17643284ffa2e175fa4d48aca1b973382a60b96)) 991 - - Passive backend window manager — extensions open their own windows via API (1888 (https://tangled.org/burrito.space/peek/commit/188894c4855996600fbbb1702a592b6a2b6be035)) 992 - - Child windows always close on ESC, new windows centered on screen (b0d0 (https://tangled.org/burrito.space/peek/commit/b0d07b893143dff7da8fdebc2669e0520c01a2a8)) 993 - - Visibility-based transient detection and active mode ESC protection (d74b (https://tangled.org/burrito.space/peek/commit/d74b62b550f87d05a927a1f5e3fee75b82159355)) 994 - - Center child windows over parent window, restore focus on close (bd94 (https://tangled.org/burrito.space/peek/commit/bd947dbcbcd76009990571d8292f283d81268cd1)) 995 - - Renderer-driven escape lifecycle for navigate mode windows (dc47 (https://tangled.org/burrito.space/peek/commit/dc470b7fe05f1b83c77f66e4ffe0b38522848919)) 996 - - Fix ESC navigation, window drag, and navbar cleanup (3ca4 (https://tangled.org/burrito.space/peek/commit/3ca4841b6a279c6280d9673632b64f6433e88f45)) 997 - - Fix transient detection race condition (d634 (https://tangled.org/burrito.space/peek/commit/d634a52bd07f2b64112e5a7d6cd3e60119a5a959)) 998 - - Clean up modes, remove overlay, fix IZUI navigation stack (6be5 (https://tangled.org/burrito.space/peek/commit/6be5fc453d88914a3536d66cc6ecb80e5118d731)) 999 - - Filter peek:// URLs and fix IZUI stack navigation (70ab (https://tangled.org/burrito.space/peek/commit/70ab1706b21a2456b0f5896a60ac5acf0e23c5d2)) 1000 - - Remove vestigial overlay references and rename events (1640 (https://tangled.org/burrito.space/peek/commit/164028401acd7efb18e149270868cb6ca3ddf220)) 1001 - - Remove non-existent overlay from consolidated extension IDs (518c (https://tangled.org/burrito.space/peek/commit/518c44065a4b23cd221bca9f1e054eeb5ea6a7c9)) 1002 - 1003 - Desktop - Reactivity &amp; Events 1004 - - Tag-centric events for real-time UI updates — tag:created, tag:item-added, tag:item-removed (8c22 (https://tangled.org/burrito.space/peek/commit/8c229cdf68c32bb51332f49c7feb6093b7201a2e)) 1005 - - Item CRUD events with debouncing, history/feeds subscriptions (1d35 (https://tangled.org/burrito.space/peek/commit/1d351083780203bd00166ecf0d800167f5d038bb)) 1006 - - Implement item_events table and CRUD operations (7895 (https://tangled.org/burrito.space/peek/commit/78950782d132b1f3e2fc25b5e76fd10dbdb52759)) 1007 - - Expose item_events API to renderer (f8f8 (https://tangled.org/burrito.space/peek/commit/f8f85ebcba23b323d93c38bd97a4308c7472301d)) 1008 - 1009 - Desktop - Window Management 1010 - - Add overlay mode for transient full-screen views (0727 (https://tangled.org/burrito.space/peek/commit/0727112b71e08949c5c85ab1f4ae11eb4e5f519c)) 1011 - - Hide other windows after windows view opens (37ee (https://tangled.org/burrito.space/peek/commit/37ee7d4361aa10d5f320a4d41c7985837b2a75c4)) 1012 - - ESC always closes windows, remove fallback emoji (3fdd (https://tangled.org/burrito.space/peek/commit/3fddd1a6beaaeb2d9032c5a697d2a1b3814726c3)) 1013 - - Transparent background with groups/tags card style (414e (https://tangled.org/burrito.space/peek/commit/414e2139f66fa276266fe53e27f4b8c563c8301d)) 1014 - - Use peek-card and peek-grid components for windows (666e (https://tangled.org/burrito.space/peek/commit/666efa8d77ddf47fa81f214cff5e8564db06d074)) 1015 - - Fix component import paths (8b66 (https://tangled.org/burrito.space/peek/commit/8b6686e4809a891ee9db6007fb5c79d7ab059b3d)) 1016 - 1017 - Desktop - Architecture &amp; Modes 1018 - - App-wide context API for extensible mode management (196a (https://tangled.org/burrito.space/peek/commit/196a12d063dcb5c6eafca5a2e9c40b9b1ab4c474)) 1019 - - Consolidate modes into context API and datastore (5943 (https://tangled.org/burrito.space/peek/commit/5943e2232e66658377ba0843d607f7ee0101f605)) 1020 - - Simplify to page/group/default modes (eab5 (https://tangled.org/burrito.space/peek/commit/eab54a3ff2b29957873ecd224dd419f8d8185511)) 1021 - - Add feeds and series architecture (8688 (https://tangled.org/burrito.space/peek/commit/8688c50133ebac280772bca4173b5ee99cd4a61b)) 1022 - - Add feed reader extension (44c5 (https://tangled.org/burrito.space/peek/commit/44c5b507a1d0f879ba60c68de0b1e529bc5feed9)) 1023 - 1024 - Desktop - Editor &amp; Commands 1025 - - Note editing flow with autosave (0ae5 (https://tangled.org/burrito.space/peek/commit/0ae56bb7c9586de0c2c9cf14245148ae9de2ecfd)) 1026 - - Restore mode indicator to command bar — shows current mode, click to cycle (9176 (https://tangled.org/burrito.space/peek/commit/917640cacdb7e6f016cdd7e5a4dec3434a198d4b)) 1027 - - Add &quot;Sync now&quot; command for manual sync trigger (18d0 (https://tangled.org/burrito.space/peek/commit/18d02d2cd3d65f60537a1d1622923c0696029999)) 1028 - - Use connector pattern for edit and note commands (4846 (https://tangled.org/burrito.space/peek/commit/48465f72a50e5b801a71e9c09c4262dff0636ebb)) 1029 - - URL command returns error instead of opening editor when no URL provided (5141 (https://tangled.org/burrito.space/peek/commit/5141fb07b095f117552fd8ce461ac318f5907219)) 1030 - 1031 - Desktop - UI &amp; Components 1032 - - Add glass-morphism tokens and component modes (7b2e (https://tangled.org/burrito.space/peek/commit/7b2e52dca752a2c46920364667e0f58a42360ba2)) 1033 - - Center card headers, disable URL input autocapitalize, fix dev script (aa57 (https://tangled.org/burrito.space/peek/commit/aa578e0d91539d6f4d7b6e177e993106e9e9b226)) 1034 - - Set default background on webview content when page has none — respects system theme (9fc2 (https://tangled.org/burrito.space/peek/commit/9fc274ab7ffc402f4409769023bed2bfcb439d3e)) 1035 - - Use trackNavigation for URL visit recording (f267 (https://tangled.org/burrito.space/peek/commit/f267789149b2418d4e58d90f24da86c023bf930f)) 1036 - 1037 - Desktop - Profiles &amp; Startup 1038 - - Chromium session partition isolation per profile (2d70 (https://tangled.org/burrito.space/peek/commit/2d704158814b911fd76579febe03ea6119e596ea)) 1039 - - Register peek:// protocol on profile session (cd80 (https://tangled.org/burrito.space/peek/commit/cd80de8d23562964ac212b240f49813535f9b1d3)) 1040 - - Respect startupFeature pref instead of always opening settings (5b92 (https://tangled.org/burrito.space/peek/commit/5b920fab23aa7c30105f3e435931a0d25092fa70)) 1041 - 1042 - Desktop - Fixes 1043 - - ESC handling for Active mode windows (IZUI policy compliance) 1044 - - Add getFocusedVisibleWindowId API for modal window targeting 1045 - - Add trackNavigation API for unified page load tracking 1046 - - Update test to use peek://ext/cmd/panel.html 1047 - - Window-list returns actual URLs from peek://app/page containers 1048 - - Mode detection from URL in window creation 1049 - - Add native module check script (prevents NODE_MODULE_VERSION mismatch) 1050 - - Unit tests run under Electron&apos;s Node to match native module ABI 1051 - - Cast address to string for type safety (32a7 (https://tangled.org/burrito.space/peek/commit/32a7f8a0b97b12718211cc4cd39264cea5a6de49)) 1052 - - Sanitize window params to prevent serialization crash (fca6 (https://tangled.org/burrito.space/peek/commit/fca6a26f963623bc04a94bc2361cb9e4f49a2678)) 1053 - - Exclude tmp/ agent workspaces from electron-builder (f0f2 (https://tangled.org/burrito.space/peek/commit/f0f26e312d0174f2d6a304ed8638145d09a2c94b)) 1054 - - Electron-builder uses yml config via extends (4620 (https://tangled.org/burrito.space/peek/commit/4620155f4f96c9a42bdf00211967efa547063e19)) 1055 - - Normalize trailing slash on bare domain URLs (3c2b (https://tangled.org/burrito.space/peek/commit/3c2bbd619327e7cb6dfbba027ce1805d5873e0b2)) 1056 - 1057 - Mobile / iOS 1058 - - URL action icons with native WKWebView + visit tracking — open in Safari or embedded webview (ee06 (https://tangled.org/burrito.space/peek/commit/ee06ef990eb2bad8a17de65708a088198625e7f7)) 1059 - - Simplify Swift webview integration with direct FFI (1825 (https://tangled.org/burrito.space/peek/commit/182588302aef990b8ced2c8b4bd1143ba813653f)) 1060 - - Fix native webview and restore icon system (1b64 (https://tangled.org/burrito.space/peek/commit/1b641ed1fdd510c83847c8cf213cc14eac5e1319)) 1061 - - Require hold gesture for pull-to-refresh to prevent accidental triggers (0efb (https://tangled.org/burrito.space/peek/commit/0efb444539dba1d4cc7ed5cbd68815978ee2a5b0)) 1062 - - Bottom sheet webview (80fb (https://tangled.org/burrito.space/peek/commit/80fb7d8f9f3df9d064720c4801c91af0898e611f)) 1063 - - Card-expansion iframe overlay replaces native bottom sheet (eb43 (https://tangled.org/burrito.space/peek/commit/eb43f135aaf8ed51c69dff6d7726cf995bf0c3ed)) 1064 - - Silence linker warnings and remove unused default icons (8cd3 (https://tangled.org/burrito.space/peek/commit/8cd36323c9173e18559108b909718589433bbcda)) 1065 - - UX polish pass — 18 fixes for editor, share extension, layout, build (cf5f (https://tangled.org/burrito.space/peek/commit/cf5fe38b9cf9148fb2b506085aced75a0871221f)) 1066 - - UX polish — 13 fixes for share sheet, editor, keyboard, sorting, filters (956f (https://tangled.org/burrito.space/peek/commit/956fdcb80b723c155a25195e6a6aa55e9a35b336)) 1067 - - Maximize editor card space — tighter padding, expand to edges (2a0f (https://tangled.org/burrito.space/peek/commit/2a0fc4bf7c778068a7a76bee723410d98a44265b)) 1068 - - Undo/redo at top, reduce gaps, add webview link for text items (90d7 (https://tangled.org/burrito.space/peek/commit/90d76c5178864b8d313333b0a6507b64ff1eaf6b)) 1069 - - Commit pending tag text when Done is tapped (712a (https://tangled.org/burrito.space/peek/commit/712a5108ebca84bfa96143b6dfd12d0725a79b54)) 1070 - - Use dynamic DerivedData path for sim:install (9442 (https://tangled.org/burrito.space/peek/commit/94420c1731e25992049d270b48b6a0626f13a54e)) 1071 - 1072 - Testing 1073 - - Add Playwright browser extension e2e tests 1074 - - Improve extension ID detection and shared instance handling 1075 - - Remove Firefox Playwright support (not supported by Playwright) 1076 - - Add integration tests for tag-centric events (ed9d (https://tangled.org/burrito.space/peek/commit/ed9dd17a41ba94b54faae75cd595934f2e9cecb2)) 1077 - 1078 - Refactoring 1079 - - Move tag and tagset commands to tags extension (d663 (https://tangled.org/burrito.space/peek/commit/d6636aaa3087c2ec7bcf817363f16a9b7c901244)) 1080 - - Create files extension with csv and save commands (435c (https://tangled.org/burrito.space/peek/commit/435cc952196795389322bda8f9f9d48b176c4340)) 1081 - - Create sync extension with sync command (e586 (https://tangled.org/burrito.space/peek/commit/e5867452459b6c136b01c663d1237cc3c05a4899)) 1082 - 1083 - Datastore &amp; UI 1084 - - Show addresses/visits/tags stats with safe error handling 1085 - - Extract stats from result.data wrapper 1086 - - Clean up settings and diagnostic UI 1087 - 1088 - Code Cleanup 1089 - - Remove vestigial app/cmd/ directory (24 files, replaced by features/cmd/) 1090 - - Remove app/scripts/ (disabled feature with missing HTML files) 1091 - - Remove dead functions from app/index.js 1092 - - Remove Cmd and Scripts entries from app/config.js 1093 - - Simplify app/features.js (all features are now extensions) 1094 - - Remove commented-out sendToWindow/onMessage APIs from preload.js 1095 - - Remove 7 unused IPC handlers from ipc.ts (~155 lines)</description> 1096 - </item> 1097 - <item> 1098 - <title>2026-01-26</title> 1099 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-01-26</link> 1100 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-01-26</guid> 1101 - <pubDate>Mon, 26 Jan 2026 12:00:00 GMT</pubDate> 1102 - <description>Server 1103 - - feat(server): add single-user mode support (no auth required for solo use) 1104 - - feat(server): add storage abstraction layer for image handling 1105 - - feat(server): add SQL abstraction layer for database portability 1106 - 1107 - Extension 1108 - - feat(extension): add command bar popup with tag, note, search 1109 - - feat(extension): add Alt+P hotkey for command bar popup 1110 - - feat(extension): simplify command bar popup UI 1111 - - feat(extension): add e2e sync tests and preserve original timestamps 1112 - 1113 - Desktop - Fullscreen Canvas 1114 - - feat(page): implement fullscreen transparent canvas architecture 1115 - - feat(page): fullscreen transparent canvas with floating navbar 1116 - - fix(navbar): prevent hiding when hovering over gaps between child elements 1117 - 1118 - Desktop - IZUI / ESC Handling 1119 - - feat(izui): add minimal IZUI window navigation system 1120 - - feat(izui): complete ESC key handling with IZUI integration 1121 - - feat(izui): navigation stack for ESC in child windows 1122 - - feat(izui): complete preload API wiring for ESC key handling 1123 - - feat(esc): change default escapeMode from &apos;close&apos; to &apos;auto&apos; 1124 - - fix(izui): overlay no longer steals ESC from web pages 1125 - - fix(esc): web pages now close on first ESC key press 1126 - - feat(cmd): add mode indicator to command bar 1127 - 1128 - Mobile 1129 - - feat(mobile): improve item card UI and keyboard stability 1130 - - feat(mobile): migrate tags.id from INTEGER to TEXT for sync compatibility 1131 - - fix(mobile): prevent orphaned databases and ensure dev profile in dev builds 1132 - - fix(mobile): resolve deadlock and respect profile choice in dev builds 1133 - - fix(sync): filter out peek:// URLs from server sync 1134 - 1135 - Schema &amp; Data Layer 1136 - - feat(schema): add schema codegen system with single source of truth 1137 - - feat(schema): integrate codegen into build system with Rust backend tests 1138 - - feat(schema): comprehensive test coverage for generated types 1139 - - chore(server): align Node engine to repo-wide v22 policy 1140 - 1141 - Testing Infrastructure 1142 - - test(components): add component test infrastructure 1143 - - test(components): expand coverage to 56 tests with deterministic waits 1144 - - docs(components): add Testing section to README 1145 - - fix(tests): consolidate packaged tests to single Electron instance 1146 - 1147 - Editor 1148 - - feat(editor): integrate CodeMirror markdown editor with three-panel layout 1149 - - Outline sidebar with header navigation 1150 - - Live markdown preview sidebar 1151 - - Vim mode toggle (persisted in settings) 1152 - - Resizable panels, focus mode 1153 - - Full syntax highlighting 1154 - - feat(editor): add vim fold commands, status line, and comprehensive tests 1155 - 1156 - Web Extensions 1157 - - feat(web-ext): add bundled web extensions infrastructure 1158 - - feat(extensions): bundle Consent-O-Matic for automatic cookie consent handling 1159 - - docs: add research on bundled web extensions (uBlock, Proton Pass, Consent-O-Matic) 1160 - - Integrated @cliqz/adblocker-electron for native ad blocking 1161 - 1162 - Mobile / iOS 1163 - - feat(mobile): add Release CLI builds via xcodebuild 1164 - - Fix Share Extension configuration inheritance (CONFIGURATION=Release override) 1165 - - Add yarn mobile:ios:xcodebuild:release command 1166 - - Add yarn mobile:ios:xcodebuild:install:release command 1167 - - feat(tests): iOS e2e testing improvements and window utilities 1168 - - Add PEEK_AUTO_SYNC env var support 1169 - - Add --headless and --build flags to e2e-full-sync-test.sh 1170 - - docs: add research on xcodebuild CLI vs Xcode GUI environment issues 1171 - 1172 - Developer Tooling 1173 - - chore: add multi-agent workflow with jj workspaces 1174 - - chore: update agent-setup to handle both install and update 1175 - - docs: add CLAUDE.coordinator.md for coordinator agents 1176 - - docs: update jj workflow - always commit before operations</description> 1177 - </item> 1178 - <item> 1179 - <title>2026-01-19</title> 1180 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-01-19</link> 1181 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-01-19</guid> 1182 - <pubDate>Mon, 19 Jan 2026 12:00:00 GMT</pubDate> 1183 - <description>- [x][desktop] history &amp; addressability: track peek:// loads, all window/webview loads, in-page navigation, JS window.open child windows (mkylrnxy) 1184 - - [x][desktop] history chaining: prevId/nextId columns on visits table with migration backfill (mkylrnxy) 1185 - - [x][desktop] history API: getHistory() with date range filtering, enriched visit+address join query, IPC + preload exposure (mkylrnxy) 1186 - - add device ID tracking to item metadata (swskpulq) 1187 - - app version and datastore version as separate layers of compatibility (rltmkytv) 1188 - - define compat detection system across desktop/server/mobile/other (rltmkytv) 1189 - - define how sync works when incompatible (clients only sync w/ datastore-compatible nodes) (rltmkytv) 1190 - - sync is not spoke server - all nodes equal participants (rltmkytv) 1191 - - implement version compat in desktop/server (DATASTORE_VERSION + PROTOCOL_VERSION, exact match, 409 on mismatch) (rltmkytv) 1192 - - implement version compat in mobile (add version headers to lib.rs sync) (rlrlqkqz) 1193 - - [x][mobile] fix sync re-pushing all items every time - per-item synced_at (nxszorty) 1194 - - [x][mobile] add version headers to mobile sync - DATASTORE_VERSION + PROTOCOL_VERSION (rlrlqkqz) 1195 - - [x][desktop] add new items - url/tagset/note commands (pwuyrstl) 1196 - - [x][desktop] editor extension with full note editing (rmztsrkr) 1197 - - [x][tauri] sync module, schema migrations, version compat to match Electron (zzyllzsk) 1198 - - e2e sync &amp; version test suite, fix sync profile resolution (rlrlqkqz) 1199 - - [x][mobile] fix share extension creating duplicate items per tag (yvumsuqr) 1200 - - [x][mobile] merge home and search into unified view, configurable archive tag (txzkumku) 1201 - - [x][mobile] fix big bottom bar showing again (tqnmowqm) 1202 - - [x][mobile] iOS profile support with build detection and per-profile databases (ylkwxtut) 1203 - - [x][mobile] UUID-based profile sync across mobile, desktop, and server (mlqntkvw) 1204 - - [x][mobile] iOS share extension fixes + tag input filtering (smuxwlzx) 1205 - - [x][mobile] consolidate editor views with shared components (wvvqrquo) 1206 - - [x][mobile] add clear buttons to all input fields and textareas (vyuwkrpy) 1207 - - [x][mobile] fix tags not persisting on text notes (qowppxlk) 1208 - - [x][mobile] add archive tag support to hide items from views (urmmzrvr) 1209 - - [x][mobile] add font size slider in settings with realtime preview (umqpnqto) 1210 - - [x][mobile] mobile editing ux - toasts, validation, draft persistence, spacing, bottom bar fix (rqwmmpnm) 1211 - - [x][mobile] pull-to-refresh gesture triggers sync (roqqsxyp) 1212 - - [x][desktop] window titlebar hide/show pref with settings UI (wpykxvrl) 1213 - - [x][desktop] windows movable and resizable by default with window.open API params (wpykxvrl) 1214 - - [x][desktop] persist keyed/url window position+size across app restarts (wpykxvrl) 1215 - - [x][desktop] pin window on top (app and OS level) with commands (wpykxvrl) 1216 - - [x][desktop] configurable escape behavior per-window via window.open API (wpykxvrl) 1217 - - [x][desktop] window animation API (to/from coords, time) + slides impl (wpykxvrl) 1218 - - [x][desktop] Desktop Windows - title bar, persistence, pin controls, animations (wpykxvrl) 1219 - - [x][desktop] migrate old addresses to items table, fix CHECK constraint (ltovmzon) 1220 - - [x][desktop] multi-tag search in tags UI (ltovmzon) 1221 - - [x][desktop] extension nav styling improvements (ltovmzon) 1222 - - [x][desktop] fix groups extension - add visit tracking, filter for URLs only (wuywuwyn) 1223 - - [x][desktop] fix sync status in settings UI - use correct field name for display (xxtpswys) 1224 - - [x][desktop] persist autoSync setting in extension_settings (vyvorvtq) 1225 - - [x][desktop+server] add sync version compatibility - DATASTORE_VERSION + PROTOCOL_VERSION (rltmkytv) 1226 - - [x][desktop+server] add user profiles and profile switching (qlyszyzx) 1227 - - [x][desktop] add tags extension for tag visualization and management (kwuwspun) 1228 - - [x][desktop] click-and-hold window dragging for frameless windows (myyozwzx) 1229 - - [x][desktop] fix better-sqlite3 node/electron version mismatch with postinstall script (mmywmysr) 1230 - - [x][desktop] debug and stabilize build on new Electron (stale node_modules after upgrade) (kszpuvqr) 1231 - - [x][desktop] upgrade Electron to 40 + pin Node to 24 (kszpuvqr) 1232 - - [x][desktop] e2e sync test infrastructure for production (snrnkvls) 1233 - - [x][desktop] daily data snapshots saved to compress archives in ~/sync/peek-backups (qkpozntl) 1234 - - [x][desktop] fix 5GB packaged build by adding exclusions to electron-builder.yml (~280MB now) (qknnlynl) 1235 - - [x][desktop] update release build and drive it (rlytpznn) 1236 - - [x][security] remove production server endpoint from source - require env config (rnxppwkx) 1237 - - [x][server] Add pre-migration backup to server migration (uvkkmoos) 1238 - - [x][server] add daily snapshot backups on server, test locally, deploy, test and confirm working on railway (vpvuotkr) 1239 - - [x][server] document Railway deployment info so agents don&apos;t have to relearn each time (wlwruzuq) 1240 - - [x][sync] fix duplicates: add sync_id parameter for server-side deduplication (yswsyzvl) 1241 - - [x][sync] investigate remaining sync edge cases (purnxzzz) 1242 - - [x][sync] E2E integration tests for desktop-server sync (uowlzlxm) 1243 - - data model: multi-user support (server full, desktop profile isolation) (qlyszyzx) 1244 - - desktop sync working (bidirectional in backend/electron/sync.ts) (mxwrymlv) 1245 - - sync config in settings UI (vyvorvtq) 1246 - - windows draggable/moveable (click-and-hold in app/drag.js) (myyozwzx) 1247 - - notes in datastore (items table with type=&apos;text&apos;) (xxnxwnwx) 1248 - - peek-node supports text/urls/tagsets/images (xxnxwnwx) 1249 - - backup/restore snapshots (daily automated + manual) (zuzylokr) 1250 - - action history storage (visits table) (wuywuwyn) 1251 - - update main README (kpylorrl) 1252 - - [x][mobile] shared iOS build cache to avoid Rust rebuilds across agent workspaces (nputkypr) 1253 - - [x][mobile] update to full bidirectional sync (pull + push, not just webhook push) (otsvqvzo) 1254 - - [x][workflow] agent workspace isolation - rules to stay in workspace, no parent repo access (lorkrruo) 1255 - - [x][workflow] fix divergent commits - mmerge uses jj new+restore pattern (zponttxz) 1256 - - [x][workflow] Railway deploy scripts - npm/yarn scripts with --service flag (zponttxz) 1257 - - [x][workflow] fix TODO archival - updated agent templates with clearer instructions (uytsrstx) 1258 - - [x][workflow] clarify ./app rule - now about respecting front-end/back-end architecture boundary (tkvzpvlu) 1259 - - [x][workflow] restore git/github push for Railway deploys (vkrunkpn) 1260 - - [x][workflow] fix jj commit/merge strategy - agents no longer touch main bookmark (srmykyqy)</description> 1261 - </item> 1262 - <item> 1263 - <title>2026-01-12</title> 1264 - <link>https://tangled.org/burrito.space/peek/blob/main/CHANGELOG.md#2026-01-12</link> 1265 - <guid isPermaLink="false">https://tangled.org/burrito.space/peek#2026-01-12</guid> 1266 - <pubDate>Mon, 12 Jan 2026 12:00:00 GMT</pubDate> 1267 - <description>- [x][desktop] settings UI for sync (vyvorvtq) 1268 - - [x][desktop] test sync and package (ssxzpoxo) 1269 - - merge peek-node into peek repo (now at backend/server/) (zturryym) 1270 - - update peek-node to support multi-user and the core types (already done) (zturryym) 1271 - - unify data model across mobile/desktop/server (nlxqykul) 1272 - - sync working between all three (mxwrymlv) 1273 - - [x][mobile] test and deploy ios to prod (rtmtkykn) 1274 - 1275 - ### Old completed items 1276 - 1277 - ### Addressability / Core history 1278 - - add peek:// loads to history table (mkylrnxy) 1279 - - peek urls don&apos;t need params yet, but we&apos;ll need to do cmd params and connector data somehow maybe (mkylrnxy) 1280 - - ensure all window/frame/webview loads of any kind are entered in history (mkylrnxy) 1281 - - bug: some link clicks in web pages open in a window with a title bar that&apos;s clearly not entered in peek&apos;s window tracking, maybe js in the page opening windows? (mkylrnxy) 1282 - - sync: don&apos;t sync peek addresses for now (mkylrnxy) 1283 - - not doing paths/forking yet - is just one single chain of actions (mkylrnxy) 1284 - - add next/prev cols to history table, or maintain in new table? (mkylrnxy) 1285 - - when a history record is added, set prevId pointing to previous history record (mkylrnxy) 1286 - - each time a history record is added, set nextId to its prevId (mkylrnxy) 1287 - - enumerate history (mkylrnxy) 1288 - - filter on date ranges (mkylrnxy) 1289 - 1290 - ### Server Backend 1291 - - Add database integrity verification (uvkkmoos) 1292 - 1293 - ### Base Extensions 1294 - - see notes/extensibility.md 1295 - - window manager views (bad name, but what Peek &quot;features&quot; are now) 1296 - - commands (eg Quicksilver, Ubiquity, Raycast style) 1297 - 1298 - ### Portability 1299 - - Abstract back-end system 1300 - - Electron back-end 1301 - - Tauri back-end 1302 - 1303 - ### Pages, Tagging &amp; Groups 1304 - - Open page by default in cmd 1305 - - Open page from OS, other apps 1306 - - Cmd to tag current page 1307 - - Groups based on tags, for now 1308 - - Untagged -&gt; default group 1309 - - Cmd to open groups home 1310 - - Escape for navigating back up the group views, not closing window 1311 - - adaptive matching 1312 - - frecency 1313 - 1314 - ### V.0.3 - Datastore 1315 - - Datastore 1316 - 1317 - ### v0.2 - MVCP 1318 - - app showing in dock even tho disabled 1319 - - app not showing in tray, even tho enabled 1320 - - all api calls get source attached 1321 - - window cache s/custom/map/ 1322 - - window cache all windows not just persistent 1323 - - window cache - evaluate key approach (use-case: apps need to identify windows they open) 1324 - - always return window id, so apps can manage it 1325 - - reimplement keys, so much easier for callers than managing ids 1326 - - account for number of renderer processes (seems double?) 1327 - - prototype window.open 1328 - - evaluate webContents.setWindowOpenHandler 1329 - - stop using openWindow to show pre-existing hidden windows? 1330 - - [x] can track web windows locally 1331 - - [x] can identify web windows on both sides (key/name) 1332 - - [x] add new custom api for windows superpowers 1333 - - collapse window opening to span both approaches 1334 - - finish converting all openWindow to window.open 1335 - - figure out single devtools window if possible 1336 - 1337 - ### v0.1 - MVPOC 1338 - 1339 - minimum viable proof of concept. 1340 - 1341 - question: would i use this? 1342 - 1343 - Core moduluarization 1344 - - Modularize feature types, eyeing the extensibility model 1345 - - move settings window to features/settings 1346 - 1347 - App cleanup 1348 - - main window vs settings 1349 - - change settings shortcut from global+esc to opt+comma 1350 - 1351 - Window lifecycle 1352 - - modularize window open/close + hidden/visible 1353 - - update settings, peeks, slides, scripts 1354 - - hide/show window vs create fresh 1355 - - update slides impl to use openWindow (x, y) 1356 - 1357 - Minimal Electron + Maximal Web 1358 - - move features to all web code, with a couple special apis 1359 - - make globalShortcut an api like openWindow 1360 - 1361 - Create core app 1362 - - core settings 1363 - - registers other features 1364 - 1365 - Move all features to web implementation 1366 - - move all possible code from the electron file to the web app 1367 - - move to web implemented globalShortcut 1368 - - move to web implemented openWindow 1369 - - move settings re-use code to utils lib 1370 - - ability to add clickable links in settings panes 1371 - - add links to Settings app 1372 - - per-feature settings ui 1373 - 1374 - Core+settings 1375 - - move feature list and enablement to storage 1376 - - merge core + settings 1377 - - enable/disable features 1378 - - configurable default feature to load on app open (default to settings) 1379 - - wire up tray icon to pref 1380 - - tray click opens default app 1381 - 1382 - Core/Basic 1383 - - basic command bar to open pages 1384 - - fix setting layout wrapping issue 1385 - 1386 - Commands/messaging 1387 - - implement pubsub api 1388 - - way to tell feature to open default ui (if there is one) 1389 - - way tell feature to open its settings ui (if there is one) 1390 - 1391 - Features cleanup 1392 - - enable/disable individual slides, peeks 1393 - - enable/disable individual scripts 1394 - 1395 - Internal cleanup 1396 - - s/guid/id/ 1397 - - fix label names, match to pwa manifest 1398 - - put readable log labels back in</description> 1399 - </item> 1400 10 </channel> 1401 11 </rss>
+2 -1
package.json
··· 177 177 "restart:electron": "yarn kill:electron && sleep 1 && yarn debug:electron", 178 178 "restart:tauri": "yarn kill:tauri && sleep 1 && yarn debug:tauri", 179 179 "lint": "echo \"No linting configured\"", 180 - "rss": "node scripts/changelog-to-rss.js" 180 + "rss": "node scripts/changelog-to-rss.js", 181 + "changelog:bump": "node scripts/changelog-bump.js" 181 182 }, 182 183 "dependencies": { 183 184 "@codemirror/commands": "^6.10.1",