Last updated: 2026-03-23
This reference documents the local-terminal execution integration for the Execution Workbench.
Workbench page:
/Users/miethe/dev/homelab/development/CCDash/components/FeatureExecutionWorkbench.tsx
Execution UI components:
/Users/miethe/dev/homelab/development/CCDash/components/execution/ExecutionRunHistory.tsx/Users/miethe/dev/homelab/development/CCDash/components/execution/ExecutionRunPanel.tsx/Users/miethe/dev/homelab/development/CCDash/components/execution/ExecutionApprovalDialog.tsx/Users/miethe/dev/homelab/development/CCDash/components/execution/RecommendedStackCard.tsx/Users/miethe/dev/homelab/development/CCDash/components/execution/WorkflowEffectivenessSurface.tsx
Client service + shared types:
/Users/miethe/dev/homelab/development/CCDash/services/execution.ts/Users/miethe/dev/homelab/development/CCDash/services/analytics.ts/Users/miethe/dev/homelab/development/CCDash/services/agenticIntelligence.ts/Users/miethe/dev/homelab/development/CCDash/types.ts
Dependency-aware execution contract:
FeatureExecutionContextnow carriesdependencyState,familySummary,familyPosition,executionGate, andrecommendedFamilyItemalongside the existing recommendation and analytics payloads.- The workbench overview reads those fields directly to render the execution-gate card, family position, blocked-by evidence, and linked document actions.
- Route buttons on the overview header intentionally point back to the board, plans, sessions, and analytics so the family view stays connected to the rest of CCDash.
Route wiring:
/Users/miethe/dev/homelab/development/CCDash/App.tsx(/execution)
Router:
/Users/miethe/dev/homelab/development/CCDash/backend/routers/execution.py
Policy engine:
/Users/miethe/dev/homelab/development/CCDash/backend/services/execution_policy.py
Runtime manager:
/Users/miethe/dev/homelab/development/CCDash/backend/services/execution_runtime.py
Repositories:
/Users/miethe/dev/homelab/development/CCDash/backend/db/repositories/execution.py/Users/miethe/dev/homelab/development/CCDash/backend/db/repositories/postgres/execution.py
POST /api/execution/policy-checkPOST /api/execution/runsGET /api/execution/runsGET /api/execution/runs/{run_id}GET /api/execution/runs/{run_id}/eventsPOST /api/execution/runs/{run_id}/approvePOST /api/execution/runs/{run_id}/cancelPOST /api/execution/runs/{run_id}/retryGET /api/features/{feature_id}/execution-contextGET /api/analytics/workflow-effectivenessGET /api/analytics/failure-patterns
- UI runs
policy-checkfrom review modal. create runwritesexecution_runs+ initial event.- Policy verdict paths:
allow-> run moves toqueued, runtime starts immediately.requires_approval-> run staysblockeduntil approval.deny-> run remainsblockedwith policy reason events.
- Runtime streams stdout/stderr into
execution_run_events. - UI polls
GET run+ incremental events (after_sequence) while run is active. - Terminal status is persisted as
succeeded/failed/canceled.
Tables:
execution_runsexecution_run_eventsexecution_approvals
Key columns:
- run identity + project/feature scoping
- source + normalized command
- policy/risk/approval metadata
- lifecycle timestamps/status/exit code
- append-only event stream with sequence numbers
Runstab keeps a feature-scoped run list.- Selected run event feed is loaded once, then incrementally polled.
- Polling runs only while selected run is
queuedorrunning. - Approval dialog and review modal both mutate run state through API, then refresh list.
- Stack recommendations are only rendered when project SkillMeat feature flags keep them enabled.
- Workflow intelligence can be disabled independently; the workbench and analytics dashboard render explicit fallback notices instead of firing disabled requests.
- The feature board and document modal now expose the same family/dependency surfaces as the workbench, so
blocked_byrelations andsequenceOrdervalues should stay normalized across the API payloads. FeatureExecutionContext.documentsshould include the linked documents used for sequence chips, and thefeaturepayload should already contain the derived dependency/family summary fields when the workbench renders.- The workbench should treat the blocked-state banner as a review-only affordance. It is present when
reviewPolicy.verdict === 'deny'andreviewOpenis true, with the button state disabled until the policy is reconsidered.
Backend tests:
PYTHONPATH=. uv run pytest backend/tests/test_execution_router.py backend/tests/test_execution_policy_service.py -qFrontend build:
npm run buildAdditional intelligence checks:
python3 -m pytest backend/tests/test_agentic_intelligence_flags.py backend/tests/test_integrations_router.py backend/tests/test_features_execution_context_router.py backend/tests/test_analytics_router.py -q
npm test -- --run services/__tests__/agenticIntelligence.test.ts
npm test -- --run components/__tests__/dependencyAwareExecutionUi.test.tsxSee /Users/miethe/dev/homelab/development/CCDash/docs/agentic-sdlc-intelligence-developer-reference.md for rollout and flag details.