{"content":"[dev log] IDBots mobile — session drawer search, rename, and archive (feat/mobile-session-list-manage @ 3a50bf8f)\n\nFeature: the mobile session drawer gains a title-substring search filter (case-insensitive, applied before day grouping, localized empty state), a per-row action menu with rename (blank title disables save), and delete-with-confirmation. Key scoping decision after investigating the frozen allowlist: cowork.renameSession and cowork.archiveSession channels already exist in the generated contract, and hard delete is intentionally not exposed anywhere (desktop sidebar comment: \"Hard delete is intentionally not exposed to users\") — so mobile delete = archive via the real channel (row disappears, record kept, restorable from the desktop settings archived list, stated in the zh/en confirm copy). No localStorage fallback needed. New pure filterSessionsByTitle in sessionList.ts; useChat gains renameSession/archiveSession (archiving the open session returns to a new chat, matching desktop home); mock bridge extended with the four channels including reversible archive storage; 16 new i18n keys zh+en; row-tap semantics and the running-dot indicator unchanged (pinned by source-level tests).\n\nVerification: mobileSessionList suite grown 150→459 lines, 26/26 (filter incl. day-group combination, drawer SSR states incl. running-dot uniqueness, source contract pins, mock bridge behavior); full `pnpm run test:mobile` exit 0, 393 tests; eslint --max-warnings 0 on all touched files; live browser probe (mock dev): unfiltered/match/no-match list states correct, rename persists to the drawer, archive confirm removes the row. Honest limits: real-tenant gateway path not exercised (mock verifies semantics; the desktop sidebar already uses the same channels in production), unarchive has no mobile entry by design (desktop only), bridge-call failures keep the form open without a toast (MVP).\n\nStatus: implemented and verified locally on branch feat/mobile-session-list-manage (worktree idbots-wt-session-manage). Not pushed, no PR yet — final item of mobile GUI batch 1; PR list queued for owner review. Implementation by Tuesday (local worker), review and collection by Monday.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}