Conversation
We have effectively zero users, so all code that reads or upgrades OLD persisted formats is dead weight. Remove it; keep only the current write formats. A corrupt/unreadable save is now logged and discarded so startup always continues fresh rather than throwing at the boot boundary. Removed: - Session v1→v2→v3 migration (legacy shapes, guards, migrate* fns) — session-types.ts - Dockview `layout` → Lath `lathLayout` upgrade reader — dockview-convert.ts (+test), the `PersistedSession.layout` field, `persistedLathLayout` fallback - Pre-Lath `PersistedDoor` positioning fields + `legacyTokenFromDoor` + `edgeForDoorDirection` + door-alias canonicalization in leafMetaFromDoor / LathHost - Pre-workspace bare-session → PersistedWindow migration in readPersistedWindow - `migrateTodoState` + legacy `ALERT_DISABLED` status handling — alert-manager.ts - Browser `renderMode` legacy-blob resolution (`surfaceType: iframe/agent-browser`, `poppedOut`) + BrowserPanel canonicalization effect - WebKit localStorage → Rust store one-time migration (the SUNSET branch) — tauri-adapter.ts Hardening: readPersistedSession / readPersistedWindow warn-and-return-null on unreadable content; loadSessionState parses defensively so bad JSON degrades to a fresh start instead of throwing. Specs updated to match (transport, tiling-engine, standalone, alert, dor-browser, layout, glossary); spec-lint passes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Cleanups surfaced by the reuse/simplification/efficiency/altitude review: - agent-browser-surface-controller: `params.renderMode ?? resolveRenderMode(params)` collapses to `params.renderMode === 'ab-popout'`; drop the now-dead import. - browser-surface `resolveRenderMode`: drop the redundant `|| === 'iframe'` arm (the fall-through already returns 'iframe'). - session-types `readPersistedSession`: drop the redundant `isRecord()` prefix — `isPersistedSessionV3` already checks it. - Sweep stale test fixtures still spelling the removed legacy `PersistedDoor` fields (session-save.test.ts) and the obsolete `.layout` assertion (Wall.test.tsx). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Deploying mouseterm with
|
| Latest commit: |
e32207b
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://4cbf63fa.mouseterm.pages.dev |
| Branch Preview URL: | https://migration.mouseterm.pages.dev |
dormouse-bot
approved these changes
Jul 8, 2026
This was referenced Jul 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
We have effectively zero users, so all code that reads or upgrades old persisted formats is dead weight. This deletes it — keeping only the current write formats — and hardens the boot path so a corrupt/unreadable save can never block startup.
Removed migration tech-debt
v1→v2→v3migrationmigrateSessionV1toV2/migrateSessionV2toV3layout→ LathlathLayoutlath/dockview-convert.ts(+test), thePersistedSession.layoutfield, thepersistedLathLayoutfallbackPersistedDoorpositioning fields,legacyTokenFromDoor,edgeForDoorDirection, door alias canonicalization inleafMetaFromDoor/LathHostPersistedWindowreadPersistedWindowmigrateTodoState, legacyALERT_DISABLEDhandlingrenderModelegacy blobsurfaceType: iframe/agent-browser+poppedOutresolution, theBrowserPanelcanonicalization effectSUNSETmigration branch intauri-adapter.tsHardening (corrupt saves are non-fatal)
readPersistedSession/readPersistedWindowwarn-and-return-null on present-but-unreadable content (silent on genuinely-empty state).window-persistence.tsparses stored JSON defensively — bad JSON degrades to a fresh start instead of throwing at the boot boundary.Settings are best-effort; a bad blob logs a
[dormouse] Ignoring …; starting fresh.warning and boots clean.Specs
Updated to match and re-folded (
transport,tiling-engine,standalone,alert,dor-browser,layout,glossary); the now-emptystandalone.md## FutureSUNSET item was removed.pnpm lint:specspasses.Net
~1350 lines deleted, 3 files removed. Second commit is
/simplifycleanup.Test plan
libtypecheck (tsc -b) cleanlibfull suite — 1043 passedstandalonesuite — 47 + 4 passedpnpm lint:specs— OK (23 specs)🤖 Generated with Claude Code