2.5 KiB

name description
pipeline-task Pipeline task interaction module — task submission, monitoring, human task approval, and artifact viewing.

pipeline_task

Pure interaction-layer module with no data tables. All operations delegate to pipeline_service and pipeline_sdlc via ServerEnv.

Architecture

pipeline_task/
├── pipeline_task/
│   ├── __init__.py
│   └── init.py           # load_pipeline_task() — registers UI-facing functions
├── wwwroot/
│   ├── index.ui          # Task center dashboard
│   ├── task_submit.ui    # Natural language task submission form
│   ├── task_detail.ui    # Task detail with step tree + artifacts
│   ├── task_tree_popup.ui # Popup step tree view
│   ├── step_panel.ui     # Single step input/output viewer
│   └── api/
│       ├── task_submit.dspy     # Submit task (NLP → intent → dispatch)
│       ├── task_list.dspy       # Task list with filters
│       ├── task_detail.dspy     # Task + steps detail
│       ├── task_node.dspy       # Single step I/O
│       ├── task_tree.dspy       # Step DAG as tree
│       ├── task_control.dspy    # Pause/resume/cancel
│       ├── task_restart.dspy    # Restart task
│       ├── human_list.dspy      # Human task list
│       ├── human_complete.dspy  # Complete human task
│       ├── approval_approve.dspy / reject.dspy
│       └── my_bugs.dspy         # User's bug list
├── i18n/                 # zh/en/jp/ko translations
└── scripts/load_path.py  # RBAC registration

Key DSPY Endpoints

Task Lifecycle

  • task_submit.dspy — NLP input → intent classification → pipeline dispatch
  • task_list.dspy — Paginated task list with status filters
  • task_detail.dspy — Full task info + step tree

Step Interaction

  • task_node.dspy — Read/write step input/output artifacts
  • task_tree.dspy — DAG steps as nested tree for frontend Tree widget

Human Tasks

  • human_list.dspy — Pending human tasks
  • human_complete.dspy — Submit human task result
  • approval_approve.dspy / approval_reject.dspy

Pitfalls

  • No data tables: All data ops delegate to pipeline_service. Never write SQL here.
  • Tree widget format: task_tree.dspy must return [{"id","label","children":[...]}] format for bricks Tree.
  • i18n: After editing msg.txt, run merge_i18n.py in umbrella's build.sh.
  • Auto-refresh: Task list uses browser-side polling. No server push.