• U-031: closes a structural integration gap found during the REQ-01~14 regression
    audit -- plan_work_graph/execute_work_graph/run_work_node were each individually
    tested but never actually called together in production code (e2e_pipeline.py's
    only validated closed loop bypassed all three via flat org_node_trigger calls).
    Adds work_graph_orchestrate.py (topological sort over graph_manifest + one
    one-node dynamic-workflow agent() call per Work Node, needed for REQ-06's
    per-node breakpoint recovery), rewires e2e_pipeline.py's plan_documents/
    implement_code onto the real chain, and fixes two bugs a real API run
    surfaced: graph_manifest's id/node_id/depends_on normalization
    (work_graph_plan._normalize_graph_manifest) and a missing repo_path in
    run_work_node's cwd resolution. work_node_run.py also now marks a node
    'blocked' instead of leaving it stuck 'running' on any unretryable run_fn
    exception.
    
    U-024.5: the regression audit also found REQ-12's reconnect boundary case
    (refetch a snapshot after a dropped WS reconnects) was never implemented --
    only the dashboard reacted to onStatusChange, and even it never refetched.
    Fixes mountDashboard/mountTaskBoard/mountTaskDetail (which embeds
    v_graph_visualizer) to refetch their current snapshot on reconnect.
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    bboonnee authored
     
    Browse File »

  • Closes the c_artifact_write gap U-011 flagged (03-C §3.7, unowned by any
    Unit despite REQ-02 needing it directly): src/artifact_write.py writes
    content to the target project, commits it to the target's own git history,
    validates depends_on_artifact_ids against existing rows before writing
    anything (REQ-02's failure case), creates the immutable artifact row.
    validation_status is set to 'passed' unconditionally -- noted as a real
    simplification (semantic content review, e.g. REQ-02's "PRD 里出现矛盾" boundary
    case, needs its own LLM-judgment step this codebase doesn't build yet).
    
    src/e2e_pipeline.py orchestrates architecture doc §11's MVP criteria 1-3:
    plan_documents() makes 4 real sequential Planner calls (BRD, then PRD
    referencing BRD, then SDD referencing PRD, then Benchmark referencing SDD),
    writing each via c_artifact_write with correct lineage. implement_code()
    calls Coder once, captures the resulting `git diff` as code_diff and the
    Coder's own response as test_report. validate_implementation() calls
    Validator once and parses an explicit 'VERDICT: PASS|FAIL|INCONCLUSIVE'
    line. run_end_to_end() chains create_task -> plan -> implement -> validate,
    using U-010's trigger_org_node_full only for task.status bookkeeping (a
    lightweight "confirm ready" call per phase) and plain org_node_trigger
    calls for actual content generation, since trigger_org_node_full's
    contract returns a status dict, not text.
    
    Real-verified: plan_documents ran for real against "实现贪吃蛇游戏" -- all 4
    documents produced, correctly lineaged, validation_status=passed, real
    content (>100 chars each), ~5m45s total for the 4 sequential calls.
    Deliberately NOT run for real: run_end_to_end's Coder/Validator half (real
    code generation + real test execution) is a different order of magnitude
    in cost/time/uncertainty than every other real call this session -- built
    and mock-tested, but not executed without checking first.
    
    19 new mocked stdlib unittest cases (4 for artifact_write, 5 for the
    pipeline orchestration, all real/unmocked for artifact_write since git
    operations are fast/free/local same as U-013's worktree tests) + 1 gated
    real test. 127 total mocked/real-local tests across U-001-014, all passing.
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    bboonnee authored
     
    Browse File »