Skip to content

[DO NOT MERGE] Implement Workflow Activity vNext console - #3187

Draft
AbigailDeng wants to merge 192 commits into
devfrom
feat/2026-08-04_workflow-activity-vnext
Draft

AbigailDeng wants to merge 192 commits into
devfrom
feat/2026-08-04_workflow-activity-vnext

Conversation

@AbigailDeng

@AbigailDeng AbigailDeng commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

This draft implements the Workflow Activity vNext console: a dedicated workspace for creating workflows, running them, inspecting execution activity, managing schedules, and configuring account/AI settings. The implementation uses the existing backend APIs and the checked-in design baseline.

Draft integration PR — DO NOT MERGE. Keep this PR in Draft with auto-merge disabled while integration review is in progress.

Implemented behavior

  • Add the scoped /scopes/:scopeId/workflow-activity-vnext workbench with Workflows, Activity, and Settings navigation.
  • Implement the workflow catalogue, creation through description/blank/import/template flows, workflow editing, save/publication, and run interactions using the existing typed API boundaries.
  • Implement Activity lists and run detail/recovery surfaces, keeping workflow, member, service, and run identities distinct and preserving accepted-versus-observed execution semantics.
  • Add workflow schedule management and schedule history alongside the workflow authoring and execution experience.
  • Implement account, AI defaults, and settings surfaces; reuse existing login/callback/session behavior and Umi localization, with matching English and Chinese copy.
  • Update shared canvas/UI capabilities, frontend configuration/dependencies, route/auth behavior, regression tests, and product/design/user-path documentation.

Scope and backend impact

At merge commit 6254a4117e0ff960d70ba18344fc1a0628209069, the PR contains 381 changed files compared with dev: 347 files under the frontend package, 32 repository documentation files, and 2 CI workflow/test files.

There are no backend production or backend test changes under src/ or test/, and no C#, project, or protobuf contract changes. Backend contracts are consumed by the frontend. The .github/workflows/ci.yml change affects backend coverage job routing, so the PR's impact includes CI behavior.

Primary implementation paths:

  • apps/aevatar-console-web/src/pages/workflow-activity-vnext/
  • apps/aevatar-console-web/src/shared/, src/locales/, and src/app.tsx
  • apps/aevatar-console-web/config/ and dependency manifests
  • apps/aevatar-console-web/docs/ and related repository docs/
  • .github/workflows/ci.yml

Home and CI behavior

The home URL is /workflows. It refreshes the existing /api/auth/me account scope and opens the current account's scoped workflow catalogue with loading, retry, and sign-in recovery. The branch-name backend coverage exemption has been removed: coverage is skipped for frontend-only PR changes, while mixed changes, CI/build infrastructure changes, and scheduled/manual/mainline runs retain the applicable gate. Frontend tests are partitioned into four CI shards; the existing console-web gate also owns typecheck and production build.

Design and API contract

Design baseline: apps/aevatar-console-web/docs/design-baselines/workflow-activity-vnext/
Primary design: aevatar-workflow-activity-vnext.excalidraw
SHA-256: 30e74d7b410ae72c4c91432355436679033679c54c10b1702908435b001577de
Contract: apps/aevatar-console-web/docs/superpowers/specs/2026-08-04-workflow-activity-vnext-design.md
User paths: apps/aevatar-console-web/docs/superpowers/specs/2026-08-04-workflow-activity-vnext-user-paths.md
Authentication/localization: existing console auth, callback, session, returnTo, and Umi locale capabilities.
Production data: real APIs and API-acknowledged actions; prototype fixtures are design references only.

The design specification records the original feature/integrate contract baseline. Feature-specific changes must be checked against that branch's current API contracts, retain separate resource identities, and expose API failure/projection delay honestly.

Synchronization with dev — 2026-09-16

Merge commit 6254a4117e0ff960d70ba18344fc1a0628209069 merges dev at 1df08db0d88627eb47c2e8a9a44b5df806ee293d into the previous integration head 3dfb85f2796f1fd2c13a9e00c7962adab78e7331. It incorporates 972 previously missing commits without rewriting the branch history. dev is now an ancestor of this integration head.

Resolved 16 conflicted files. The merge keeps canonical scoped navigation and vNext routes, combines dev's Chat actor-state/control APIs with the existing shared toast/tooltip behavior, preserves required access-review return URLs while adding exact OAuth resource indicators, adopts member endpoint invocation-readiness contracts, retains Team request views, and uses dev's deterministic Kafka batch reader. A deletion-failure regression test protects the retained Chat toast behavior. No backend production or test differences remain relative to dev; backend changes brought into this branch are inherited from dev.

Documentation impact: the existing product/design documents remain the feature contract, dev documentation updates are incorporated, and this PR records the integration decisions and verification evidence.

Local verification

  • Explicit affected frontend tests: 27 suites, 435 tests passed (22 suites / 403 tests plus 5 direct-consumer suites / 32 tests).
  • Kafka receiver backpressure tests: 21 passed.
  • Changed-file Biome lint for all 15 conflicted frontend files: passed.
  • Workflow binding boundary, query projection priming, projection source version, projection current-state mirror, test stability guards, and 3 CI change-scope regression tests: passed. Test stability guards used Python 3.12 and passed on the committed merge, as their provenance tests require dev commits to be ancestors of HEAD.
  • A broader lint of the 51 imported/merged TypeScript files reported 23 pre-existing errors in chatPresentation.tsx (accessibility and array-index keys), plus existing warnings. Both parent versions reproduce the accessibility diagnostics; all nine index-key diagnostic source lines are unchanged in both parents. These were not introduced by the conflict resolutions.
  • git diff --check for the resolved files passes. The complete incoming diff retains one pre-existing trailing blank-line diagnostic in test/Aevatar.AI.Tests/NyxIdChatActionContinuationEndpointsTests.cs, identical to dev.
  • Full frontend suite, full typecheck, and production build are delegated to GitHub CI under the personal local-validation policy. No reliable affected typecheck target is available. CI is not being monitored as part of this synchronization.
Exact focused verification commands

Frontend commands were run from apps/aevatar-console-web/:

pnpm exec jest --runInBand --runTestsByPath src/app.test.tsx src/pages/MissionWall/index.test.tsx src/pages/chat/ChatActorControls.test.tsx src/pages/chat/chatActorState.test.ts src/pages/chat/chatApi.test.ts src/pages/chat/chatHistoryApi.test.ts src/pages/chat/chatTaskPlan.test.ts src/pages/chat/index.test.tsx src/pages/chat/nyxIdServiceApi.test.ts src/pages/settings/userLlmSelection.test.ts src/pages/studio/components/StudioFilesPage.test.tsx src/pages/studio/components/StudioMemberInvokePanel.test.tsx src/pages/team-member-invoke/index.test.tsx src/pages/team-work-order-detail/index.test.tsx src/pages/teams/detail.test.tsx src/pages/teams/tabs/TeamWorkOrdersTab.test.tsx src/shared/api/scopeRuntimeApi.test.ts src/shared/api/workOrdersApi.test.ts src/shared/auth/client.test.ts src/shared/navigation/teamRoutes.test.ts src/pages/studio/index.test.tsx src/shared/navigation/consoleHome.test.ts
pnpm exec jest --runInBand --runTestsByPath src/pages/chat/chatPresentation.test.tsx src/pages/studio/components/StudioShell.test.tsx src/shared/navigation/scopeRoutes.test.ts src/pages/workflow-activity-vnext/WorkflowHomePage.test.tsx src/pages/workflow-activity-vnext/settings/AccountPanel.test.tsx
pnpm exec biome lint config/routes.ts src/app.tsx src/locales/en-US.ts src/locales/zh-CN.ts src/pages/chat/index.test.tsx src/pages/chat/index.tsx src/pages/studio/components/StudioMemberInvokePanel.test.tsx src/pages/studio/components/StudioMemberInvokePanel.tsx src/pages/studio/index.tsx src/pages/teams/detail.test.tsx src/pages/teams/detail.tsx src/shared/api/scopeRuntimeApi.test.ts src/shared/api/scopeRuntimeApi.ts src/shared/auth/client.test.ts src/shared/auth/client.ts

The broader changed-file lint command (pre-existing diagnostics noted above):

pnpm exec biome lint config/routes.ts jest.config.ts src/app.test.tsx src/app.tsx src/locales/en-US.ts src/locales/projectMessages.en-US.ts src/locales/projectMessages.zh-CN.ts src/locales/zh-CN.ts src/pages/MissionWall/index.test.tsx src/pages/chat/ChatActorControls.test.tsx src/pages/chat/ChatActorControls.tsx src/pages/chat/chatActorState.test.ts src/pages/chat/chatActorState.ts src/pages/chat/chatApi.test.ts src/pages/chat/chatApi.ts src/pages/chat/chatHistoryApi.test.ts src/pages/chat/chatHistoryApi.ts src/pages/chat/chatPresentation.tsx src/pages/chat/chatTaskPlan.test.ts src/pages/chat/chatTaskPlan.ts src/pages/chat/chatTypes.ts src/pages/chat/index.test.tsx src/pages/chat/index.tsx src/pages/chat/nyxIdServiceApi.test.ts src/pages/chat/nyxIdServiceApi.ts src/pages/settings/userLlmSelection.test.ts src/pages/studio/components/StudioFilesDetailPane.tsx src/pages/studio/components/StudioFilesPage.test.tsx src/pages/studio/components/StudioFilesPage.tsx src/pages/studio/components/StudioMemberInvokePanel.test.tsx src/pages/studio/components/StudioMemberInvokePanel.tsx src/pages/studio/components/StudioShell.tsx src/pages/studio/index.tsx src/pages/team-member-invoke/index.test.tsx src/pages/team-member-invoke/index.tsx src/pages/team-work-order-detail/index.test.tsx src/pages/team-work-order-detail/index.tsx src/pages/teams/detail.test.tsx src/pages/teams/detail.tsx src/pages/teams/tabs/TeamWorkOrdersTab.test.tsx src/pages/teams/tabs/TeamWorkOrdersTab.tsx src/shared/api/scopeRuntimeApi.test.ts src/shared/api/scopeRuntimeApi.ts src/shared/api/workOrdersApi.test.ts src/shared/api/workOrdersApi.ts src/shared/auth/client.test.ts src/shared/auth/client.ts src/shared/config/consoleFeatures.ts src/shared/models/runtime/scopeServices.ts src/shared/navigation/teamRoutes.test.ts src/shared/navigation/teamRoutes.ts --max-diagnostics=100

Commands run from the repository root:

python3 ~/.codex/skills/frontend-incremental-pr/scripts/frontend_change_scope.py --repo . --base HEAD
~/.dotnet/dotnet test test/Aevatar.Foundation.Runtime.Hosting.Tests/Aevatar.Foundation.Runtime.Hosting.Tests.csproj --filter FullyQualifiedName~KafkaReceiverBackpressureTests --nologo
PATH="/opt/homebrew/opt/python@3.12/libexec/bin:$PATH" bash tools/ci/test_stability_guards.sh
bash tools/ci/workflow_binding_boundary_guard.sh
bash tools/ci/query_projection_priming_guard.sh
bash tools/ci/projection_state_version_guard.sh
bash tools/ci/projection_state_mirror_current_state_guard.sh
python3 tools/ci/tests/test_ci_change_scope.py
git merge-base --is-ancestor 1df08db0d88627eb47c2e8a9a44b5df806ee293d 6254a4117e0ff960d70ba18344fc1a0628209069

The scope analyzer used pre-merge HEAD (3dfb85f2796f1fd2c13a9e00c7962adab78e7331) while the merge was staged. High-fan-out locale/app/route files were verified through scoped static checks and explicit contract/consumer tests; no unbounded dependency-discovery run was used.

@codecov

codecov Bot commented Aug 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.43%. Comparing base (f2336c1) to head (6254a41).
⚠️ Report is 2 commits behind head on dev.

@@            Coverage Diff             @@
##              dev    #3187      +/-   ##
==========================================
- Coverage   83.43%   83.43%   -0.01%     
==========================================
  Files        1685     1685              
  Lines      193217   193217              
  Branches    23239    23239              
==========================================
- Hits       161218   161202      -16     
- Misses      21194    21200       +6     
- Partials    10805    10815      +10     
Flag Coverage Δ
ci 83.43% <ø> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 8 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

AbigailDeng and others added 22 commits August 6, 2026 11:05
* Implement Workflow Activity vNext

* Render Workflow Activity vNext as standalone workbench

* Refine Workflow Activity vNext settings layout

* Hide internal workflow diagnostics from primary UI

* Decode system-default LLM settings

* Fix Workflow Activity table scrolling

* Document workflow list filter semantics

* Align Workflow and Activity filters

* Fix Workflow Activity user path defects

* Fix committed workflow editor fallback

* Complete Workflow Activity functional paths

* Reuse Workflow Studio canvas surface

* Document NyxID visual alignment

* Fix AI service selection

* Align Workflow Activity with NyxID

* Complete Workflow Activity vNext implementation

* Fix workflow API error feedback

* Fix console web type errors

---------

Co-authored-by: Abigail Deng <abigaildeng@AbigaildeMacBook-Pro.local>
* Document settings save action dock

* Plan Settings save action dock implementation

* Fix Settings save action dock
Co-authored-by: Abigail Deng <abigaildeng@AbigaildeMacBook-Pro.local>
Co-authored-by: Abigail Deng <abigaildeng@AbigaildeMacBook-Pro.local>
* Keep new workflow setup recoverable

* codex: fix CI failure on PR #3234

---------

Co-authored-by: Abigail Deng <abigaildeng@AbigaildeMacBook-Pro.local>
* Map run failures to actionable toasts

* codex: fix CI failure on PR #3232

---------

Co-authored-by: Abigail Deng <abigaildeng@AbigaildeMacBook-Pro.local>
* Improve editor save and publish readiness

* codex: fix CI failure on PR #3241

---------

Co-authored-by: Abigail Deng <abigaildeng@AbigaildeMacBook-Pro.local>
* Redesign account identity surface

* codex: fix CI failure on PR #3237

---------

Co-authored-by: Abigail Deng <abigaildeng@AbigaildeMacBook-Pro.local>
Co-authored-by: Abigail Deng <abigaildeng@AbigaildeMacBook-Pro.local>
* Document workflow list metadata design

* Plan workflow list metadata refinement

* Refine workflow list metadata hierarchy

---------

Co-authored-by: Abigail Deng <abigaildeng@AbigaildeMacBook-Pro.local>
Co-authored-by: Abigail Deng <abigaildeng@AbigaildeMacBook-Pro.local>
* Document new workflow creation UX

* Plan new workflow creation UX

* Fix new workflow creation experience

---------

Co-authored-by: Abigail Deng <abigaildeng@AbigaildeMacBook-Pro.local>
* Document workflow row action hierarchy

* Plan workflow row action hierarchy

* Fix workflow row action hierarchy
* Design workflow archive behavior

* Plan workflow archive implementation

* Model workflow archival observation

* Add workflow archive controls
* Use toast for workflow save failures

* Route transient frontend errors to toast
* Document workflow published invoke flow

* Invoke published workflows from the editor

* Add published run translations
* Document Add node sequential link fix

* Document Add node implementation plan

* Test implicit workflow transition materialization

* Materialize implicit workflow transitions

* Test Add node sequential placement

* Fix Add node sequential placement
* Document content skeleton design

* Plan content skeleton implementation

* Refine skeleton TDD sequence

* Add shared content skeleton presets

* Add skeletons to primary catalog tables

* Add skeletons to primary resource lists

* Add skeletons to governance catalogs

* Add a Mission Wall loading skeleton

* Refine skeleton loading semantics

* Fix console locale catalog audit

* Fix console web merge type errors
…t-name-suffix

fix: Add six random digits to default channel names
…as-scaling

Scale Workflow Activity vNext canvas for large workflows
…tion-feedback

Clarify workflow generation and pending change feedback
…l-skill-name

Fix channel connection feedback and show authorized services
…and-ci-scope

Fix workflow home scope and frontend-only coverage routing
…me-editor

Add channel runtime editor with shared connection controls
…h-loading

Show connected channels table loading during manual refresh
…e-layout

Display channel authorized services in one horizontal list
…eedback

Fix channel editor returning to details after saving
…imeouts

fix: Prevent frontend CI test timeouts without skipping coverage
…ction-success

fix: Restore Telegram creation success details
…ames

fix(channels): edit only label and skill name
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