fix: 统一会话与收藏工作态并消费独立名称字段 - #89
Open
Florious95 wants to merge 68 commits into
Open
Conversation
Synchronize tools/nodeprobe from 863c316 (auto-discovered .js observer, default pi-activity dir, web /api/status schema 1, unique-Pi missing channel health=normal). Replace Go title/process classifiers with a typed nodeprobe adapter, extend protocol/APP data models with four axes, and leave list/icon/animation/favorite UI unchanged.
IME squeeze now keeps the cursor in the follow window so short snapshots stay visible instead of jumping to blank bottom rows. Fresh-install typography uses Agent CLI Mobile .cli 12.5sp with CSS line-height 1.75.
System Back hides IME without moving Compose focus. Force-clear focus when any real IME-visible signal drops, and handle focused Back in the input bar so the capsule returns to 46dp without popping the session.
Revert TermSurfaceView/Presenter/FontSizeStore to b267127. Drop HTML CLI panel padding. Wire 查看 to the real session list. Classify upload HTTP failures without leaking tokens. System bars replace extra bottom chrome.
API 33+ IME owns DEFAULT OnBackInvokedCallback, so GLOBAL_ACTION_BACK never reached Compose BackHandler while the keyboard was attaching. Register an overlay-priority callback while the editor is focused, and stop treating a stuck IME animation target as still-visible.
The MCP fixture opened SessionSwitchSheet with an empty list, so 查看 showed workspace · 0. Feed the same Session→L2Entry mapping used by viewMenuSource, and assert open/select/dismiss on production SessionRoute.
500 bodies now carry resolve_dir/measure_dir/write_file operands without paths or tokens. Default dir probes Downloads then ~/.agentmirror/uploads, and long names are truncated so write cannot fail ENAMETOOLONG.
Independent AVD failed because predictive back was off, so overlay OnBackInvokedCallback was a no-op and IME swallowed KEYCODE_BACK before hide/clearFocus stuck. Enable the callback, intercept window Back, and drive capsule collapse even if the editor keeps system focus.
SessionScreenScaffold was full-bleed, so the terminal met the dock on a hard edge. Reuse the b267127 SessionShellScreen card: 4dp margin, 14dp radius, clip, light elevation / dark hairline, and a 1dp rule above the dock. Top name row stays omitted.
Disable predictive OnBackInvoked so KEYCODE/GLOBAL reach the single Compose BackHandler. Keep dispatchSessionBack focus→overlay+Sessions→ dock→host. Split IME expand waits into height vs dumpsys mInputShown.
Keep predictive back off in merged debug and release application tags.
Ordinary and favorite rows share one gesture owner: online short-press opens, offline short-press does not navigate, long-press shows exactly one favorite action. Working uses the existing busyDot lamp frames; idle is static; unknown/abnormal play no animation and do not show question marks or repeated 未知. The right side is the official Provider mark from the status-core DTO, with pinned LobeHub SVG bytes.
Workspace and favorites production routes now share one SessionRow (title + cwd, 66dp). Runtime AndroidSVG and LobeHub SVG copies are removed because the frozen visual source JPEG contains no Provider glyphs to crop. Canonical ids stay closed; no invented marks.
Reuse icon() inline SVG fallbacks for claude_code/codex/grok/cursor. Copilot and Pi have no source glyph; those rows stay blank.
Exact drawable-nodpi bytes from 96a075f (R.drawable.provider_pi / provider_copilot_color). No overlay, no LobeHub download.
Exact prior-app LICENSE/NOTICE blobs for the two reused PNGs only. KDoc @contract/@inv/@consumes on touched UI files; no icon regeneration.
Auditable composition branch only. Owning PR histories unchanged.
Cover conversation session dock chips, workspace level-2 list, and the view overlay so offline rows cannot remain on those surfaces while idle/waiting/unknown stay visible and the favorite ledger is kept.
Filter conversation favorite chips by live ref, matching FavoritesPane. For the view overlay, use the subscribed live snapshot so an empty level2 frame cannot keep stale cache rows (#84). Favorite storage is unchanged; online idle/waiting/unknown stay visible.
Favorites must drop the row without restart when live is gone, and must not show 不在线. Session list must keep the row, mark 不在线, and refuse open. Dock/overlay hide coverage is withdrawn.
Record every level2 frame including empty for favorite reconciliation so leaving a session marks favorites offline without restart. Session list keeps seen rows and paints them 不在线 instead of deleting them. Revert dock/overlay hiding; those surfaces are not this homepage pair.
Favorites pane keeps the row and marks 不在线 without restart. Workspace level-2 list drops the live-gone row, no ghost offline. Session dock/favorite chips hide offline instead of greying them.
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.
让会话列表、外部收藏和对话内收藏使用一致的活动语义,同时消费服务端独立的会话名称字段,保留现有三面收藏及前台恢复行为。
用户已安装候选 APK 并确认手机完全正常,明确授权合并。已验 App 来源 04bfde8,hosted build 34098991746;APK SHA256 bd4ababfcec3301c19ced02350ff2193f183311f9ec0bdd455145deab3b3e861,35,610,017 bytes。真实本机会话加载和手验记录保留在 NAME-A-DELIVERY.md 及验收证据。
本 PR 原位追加合入 main,head 4fe3b98。最终 app subtree 精确等于已验 A:ba02ebedbfb9b208ddbba9a165283bf48f218cbd;tools/nodeprobe subtree 精确等于已验 N:bdc49c7b8cbaad7604e8c2a7066d89784d9d8abf。23 个导入路径全部与 main 对应 blob 相同,包含必要 CI 与既有交付收据;PR86/73/72/74/76 及已验 A 历史均保留。未重写 owning history。
新 revision 的 CI runs 34144285852 / 34144285853 正在执行,完成后据实际结果更新;未本机编译或重新打 APK。历史架构 partial、未覆盖项不追认为通过。性能 Issues 属独立后续工作,不用于解释已结束的旧手机包差异。