Skip to content

Persist RuntimeEvents per AgentRun - #10

Merged
likun666661 merged 1 commit into
apache:mainfrom
likun666661:runtime-v2-runtimeevent-ledger-migration
Jun 15, 2026
Merged

Persist RuntimeEvents per AgentRun#10
likun666661 merged 1 commit into
apache:mainfrom
likun666661:runtime-v2-runtimeevent-ledger-migration

Conversation

@likun666661

Copy link
Copy Markdown
Member

Summary

  • add a dedicated per-run RuntimeEvent ledger to AgentRunStore
  • persist RuntimeRunner result events from SessionManager.sendMessage without changing the public SessionEvent stream
  • keep operational AgentRunEvent recovery/status ledger separate from canonical runtime-events.jsonl

Notes

Verification

  • npm run build --workspace packages/core
  • npm run test --workspace packages/storage -- --runInBand
  • npm run typecheck --workspace packages/runtime
  • npm run test --workspace packages/runtime -- --runInBand
  • git diff --check upstream/main..HEAD

@likun666661
likun666661 merged commit 7901612 into apache:main Jun 15, 2026
jackwener pushed a commit that referenced this pull request Jun 21, 2026
…r-migration

Persist RuntimeEvents per AgentRun
jackwener pushed a commit that referenced this pull request Jun 21, 2026
…r-migration

Persist RuntimeEvents per AgentRun
jackwener added a commit that referenced this pull request Jun 21, 2026
…ame + Permission Center cleanup + badge polish

Continuing per kenji's commit-1 review (msg 93ee9df0):

1. Sidebar group label `会话 65` → `会话 · 65` with middle-dot
   separator span + dropped `margin-left: auto` on count so the
   count clusters next to the label instead of right-aligning
   like row meta. Reads as one phrase "group · count" now.

2. 即将推出 badge polish (kenji 93ee9df0 #2): bg alpha 0.06→0.04,
   radius 999px → 4px (rounded rect not pill), `cursor: default`
   + `pointer-events: none`. Reads as informational tag, not
   clickable pill.

3. Settings · 搜索服务 → 联网搜索 (yuejing UX audit msg 9c779b56
   semantic disambiguation): the sidebar's local-content search
   modal is conceptually different from web-search-engine
   credentials. Naming both `搜索` makes users confuse them.
   `联网搜索` for web search; sidebar `搜索` modal stays for
   local content.

4. Permission Center "可暂停 · 即将可用" / "可撤销 · 即将可用"
   chips removed — they violated the capability presentation
   contract by rendering like disabled toggle buttons. Hidden
   until the actual pause/revoke wiring ships in
   PR-PERMISSION-GUIDE-0, at which point they return as real
   `data-state="available"` buttons.

5. New `? 快捷键` chip in sidebar footer (yuejing UX audit P2 #10):
   surfaces the existing `?` keyboard shortcut for
   KeyboardHelpModal. Hidden discoverability was the main issue —
   ⌘? opens the modal but no user without docs-reading habit
   could find it.

   Implementation:
   - `useKeyboardHelp()` now returns `[open, closeHelp, openHelp]`
     so non-keyboard callers can open the modal without
     dispatching synthetic KeyboardEvent's. Existing callers
     ignoring the third element are unaffected.
   - `main.tsx` AppShell destructures the new `openHelp` and
     passes it to SessionListPanel as `onOpenKeyboardHelp`.
   - SessionListPanel renders a small `.maka-session-panel-help-chip`
     button in the footer below 设置. Visual weight is intentionally
     lighter than the nav rows (it's a hint, not a primary action).
     Includes a `<kbd>?</kbd>` glyph + "快捷键" label, plus
     `aria-label`, `title`, and focus-visible ring.

Gates:
- typecheck clean, UI + renderer build clean
- desktop tests: 647 pass / 0 fail (includes xuan's PR-DESKTOP-SMOKE-0
  4 new contract assertions from `8bb09d4` rebase)
- core tests: 392 pass

Remaining commit-2 scope items (will land in commit 3 if needed):
- Daily Review Settings sub-page consolidation (audit says hide;
  needs xuan/WAWQAQ call on whether to fully hide or keep with
  passive copy)
- Modal backdrop token unification (cross-modal `--modal-backdrop-blur`
  / `--modal-backdrop-scrim`)
- Capability enum static-analysis gate (visible-copy-hygiene-contract
  extension forbidding `<button>` for `data-state="coming_soon"`)

These three are smaller and less-WAWQAQ-visible than the items
in commits 1-2; will batch after the resize blocker passes and
this stack starts merging.
jackwener pushed a commit that referenced this pull request Jun 21, 2026
…r-migration

Persist RuntimeEvents per AgentRun
jackwener pushed a commit that referenced this pull request Jun 21, 2026
…r-migration

Persist RuntimeEvents per AgentRun
anaconda110 added a commit to anaconda110/maka-agent that referenced this pull request Aug 3, 2026
…pache#10)

ChatScreen rendered the session list with ScrollView + sessions.map,
which fully renders all items without recycling. Replace it with a
FlatList (ListHeaderComponent for the header/new button, ListEmptyComponent
for the empty hint), consistent with the message stream FlatList already
used below.

New-session titles were derived from sessions.length + 1, which collides
after deletions (e.g. delete '会话 2' then create -> '会话 2' again).
Switch to a timestamp-based title '会话 YYYY-MM-DD HH:mm' via a shared
utils/session.ts helper, applied in both ChatScreen and HomeScreen.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant