DesireCore v10.0.148
Release Date: 2026-09-07

New Features
- Claude subscriptions reuse the claude-cac isolated environment for login; source is selectable and only genuinely available environments are listed (#2690)
- messages/fetch now exposes offset pagination, and responses include pagination info (#2672)
- ManageSchedule supports expressing trigger times in IANA time zones (#2637)
- Add governed media export and fix file retraction admission (#2646)
- Complete remote/clean capabilities; harden raw calls in business modules with handle zeroing (#2604)
Fixes
- Hot dependency ranking no longer redacts the entire table—module IDs are converted to repo-relative paths on the reporter side (#2708)
- Native channel validates credential availability; dead entries after logout no longer show as connected (#2707)
- Guard empty runtime combinator schema
- Safely fast-forward official bootstrap seed
- Ack accounting no longer compares the global outstanding byte-by-byte; stream ID quota is counted by live count (#2702)
- Add a concurrency gate for manual schedule triggers / gate concurrent manual schedule triggers (#2685)
- Crash cleanup failure no longer swallows the child's cause of death / stop swallowing the child's cause of death when crash cleanup fails (#2683)
- Merge duplicate capabilities properties in browser-control generation tests and fix dev typecheck failures (#2703)
- Align the two resource test fixtures and delegated input admission, fixing dev baseline failures (#2700)
- External browser capabilities cross the Utility boundary; fix persistent host_unavailable (#2631)
- Display deduplication now keys on target session; ownership criteria add the conversation dimension (#2612)
- Exclusive leases no longer let the same principal preempt itself / stop exclusive leases from preempting the same principal (#2686)
- Sanitize startup avatar model paths
- Integrate trusted delegation and conditional document context (#2680)
- Accept current market team entries
- Extend default agent service startup timeout (#2677)
- Sort validation errors for nested if/then + anyOf by correctability; merge anyOf branches into "either/or" (#2674)
- Folder query and ingestion sides share normalization; fetch limit supports body (#2670)
- IMAP
:uidroute acceptsimap:<uid>returned by listings; invalid IDs no longer fail silently (#2669) - IMAP integration uses explicit short timeouts, parallel tests, and supports receive-only integrations (#2666)
- Async write path waits for the maintenance lease instead of failing after 250ms, eliminating false lock timeout reds on slow runners (#2668)
- rrule-parser computes throughout by target time zone wall clock, eliminating hidden dependency on host time zone (#2667)
- Classify market agent update 409 as "modified locally" and "ownership cannot be proven", and add a force-update path / classify market agent update 409 and add force-update path (#2665)
- Remove duplicate index.agents.push in rebuildIndex to eliminate false duplicate-id diagnostics on every sync (#2664)
- Fix AskUserQuestion answers shape in two tests from PR #2629, restoring dev typecheck (#2663)
- Claude subscription default full toolset returned 400—tool schema now projected to an SDK subset, preflight violations 63→0 (#2650)
- Fix three-layer Windows Bash cmd fallback failure and interjections being swallowed by suspended targets (#2629)
- Give an actionable hint when opening an instance occupied by lingering processes (#2653)
- Contain abortSession mock implementation leak causing random red failures (#2655)
- Fix historical skill entries being permanently frozen and unable to update to newer versions (#2632)
- Synchronously rebaseline Agent package digest after trusted writes / rebaseline agent package digest after trusted writes (#2645)
- On export, unreadable files are skipped and accounted for; failures no longer silently produce bad packages (#2619)
- Fix credential-bearing fill being incorrectly killed by the redaction guard, and make pointer dispatch without a synthetic surface fail fast (#2652)
- Extend team directory read-only authorization to all top-level subdirectories, no longer only shared/ (#2651)
- Background Run user deliveries no longer silently dropped / background run deliveries no longer silently dropped (#2624)
- Packaging cleanliness criteria cover artifacts ignored by .gitignore (#2644)
- Fix market agent unable to uninstall & update after restart / unblock market agent uninstall & update after restart (#2617)
- Clear sent file references (#2618)
- Built-in browser native view can detach and reconnect when the presentation channel becomes invalid (#2594)
- Handle Windows cursor-key persistence and custom update paths (#2640)
Improvements
- Break up hidden static strongly connected components; move domain logic down from the composition root and request surface (#2720)
- Stage startup work and unblock Windows host preparation / staged parallel startup (#2688)
- run-manager run_status broadcast now goes through an injected publisher, cutting the static import to socket-server (#2699)
- Change runtime/index to adapter registration, cutting the static import edge to pi-adapter (#2698)
- Extract agentExists as a zero-dependency leaf, cutting team-service's static import to the reader heavy graph (#2696)
- session/store lazily loads the title generator; split placeholder titles into a lightweight leaf (#2695)
- ToolExecutor lazily loads the checkpoint service, cutting static import to the session/runtime heavy graph (#2694)
- Streamline startup failure fallback page and enable renderer artifact compression (#2687)
- Break static import cycle among server.ts ↔ socket-server ↔ handlers (#2678)
- Split app/lib into directories by responsibility domain; pure move with no functional changes (#2681)
- Split lib/main into directories by responsibility domain; pure move with no functional changes (#2661)
- Measure per-file fixed overhead and reduce setup module closures from 196 to 8 (#2671)
- Separate local startup preparation from remote refresh (#2649)