Skip to content

feat(agent): observable agent execution + durable runs - #70

Closed
1012839419a-alt wants to merge 4 commits into
2233admin:mainfrom
1012839419a-alt:feat/agent-execution-experience
Closed

feat(agent): observable agent execution + durable runs#70
1012839419a-alt wants to merge 4 commits into
2233admin:mainfrom
1012839419a-alt:feat/agent-execution-experience

Conversation

@1012839419a-alt

Copy link
Copy Markdown
Contributor

Summary

  • observable agent execution: chat API now streams structured agent-run progress events; the global agent dock renders live run state, and the Operations/Agents page surfaces run activity
  • durable agent runs: interactive agent runs are persisted (new AgentRun / AgentRunEvent / AgentSession models + alembic migration), so runs survive API restarts and can be replayed/queried
  • documented in openspec/changes/agent-execution-experience/ (brief / design / motion / qa / tasks)

Origin

This is T2 split out of draft PR #61 (7 commits → 4 independent themes). T2 = cde5ff8 (observable agent execution) + 80fb22d (persist interactive agent runs), cherry-picked onto current main (7838811, #60) with zero conflicts; T1 (local admin onboarding) was already split into #68 and is NOT included here.

Verification

  • pytest: 50 passed (code-intel pipeline-selected candidates: chat API, identity models, and related suites)
  • ruff: no net-new lint debt vs main baseline (27 remaining = all pre-existing; the only T2-introduced E501 was fixed)
  • code-intel change risk (T2 scope): level=medium, 67th percentile, 11 files +674/-16 — testAsymmetry 0 (no dedicated tests for the new run-persistence code; covered indirectly via chat API tests). Additional unit coverage for AgentRun persistence is a follow-up.

Notes

  • alembic migration a8b9c0d1e2f3 down_revision was rewired from T1's local-admin migration (z7a8b9c0d1e2) to the actual predecessor on main (k8l9m0n1o2p3), so the migration chain is self-contained without T1.
  • T3 (dev toolchain) and T4 (fixed API image) remain in Add first-run local administrator onboarding #61.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@1012839419a-alt, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 59 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 18a9f650-0995-424b-a59c-7294ac194d9b

📥 Commits

Reviewing files that changed from the base of the PR and between 94ab53d and 763ae85.

📒 Files selected for processing (15)
  • backend/api/v1/chat.py
  • backend/migrations/versions/a8b9c0d1e2f3_add_durable_agent_runs.py
  • backend/models/__init__.py
  • backend/models/agent_run.py
  • docs/backend-capability-exposure-matrix.yaml
  • frontend/app/(app)/operations-agents/page.tsx
  • frontend/components/shell/global-agent-dock.tsx
  • openspec/changes/agent-execution-experience/brief.md
  • openspec/changes/agent-execution-experience/design.md
  • openspec/changes/agent-execution-experience/motion.md
  • openspec/changes/agent-execution-experience/qa.md
  • openspec/changes/agent-execution-experience/tasks.md
  • tests/integration/test_legacy_native_intelligence_migration.py
  • tests/integration/test_legacy_plugin_migration.py
  • tests/unit/test_migration_heads.py

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@1012839419a-alt

Copy link
Copy Markdown
Contributor Author

CI: Next Frontend failure — 上游 CI 配置缺陷(next start vs output: standalone)

现象Next Frontend job 失败,page.goto: net::ERR_CONNECTION_REFUSED at http://127.0.0.1:3000/login(e2e/login.spec.mjs:4)

根因:job 的 WebServer 步骤用 next start --hostname 127.0.0.1 --port 3000,但项目 next.configoutput: standalone。日志明确:

⚠ "next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead.

next start 在 standalone 模式下不监听端口(或直接退出)→ e2e 连 3000 被拒。

为什么历史 PR 是绿的#65 等):同一警告也出现在 #65 的日志里,但那次 next start 恰好起来了(1 passed)。该失败是 standalone 生效与否的 runner 环境差异——间歇性 flake,不是 #68/#70 的前端代码问题:

  • next build 完全成功:✓ Compiled successfully + ✓ Generating static pages (35/35)
  • 本 PR 前端改动(global-agent-dock.tsx 等)已通过编译 + 全页 prerender,无 SSR 错误

建议:上游把 CI WebServer 步骤改为 standalone 模式正确启动方式(node .next/standalone/server.js,参考 Next.js 官方 standalone 部署文档),或 rerun 该 job 等 runner 恢复正常。本 PR 代码无需改动。

@2233admin

Copy link
Copy Markdown
Owner

已审查:PR #91/#80 已覆盖当前会话与运行记录边界;本 PR 的 a8b9c0d1e2f3 迁移与主线同 revision ID 冲突,旧 replay API 也缺少工作区授权。拒绝整包合入,保留其事件分类/重连 UX 作为后续设计输入。

@2233admin 2233admin closed this Sep 2, 2026
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.

2 participants