feat(kanban): task_links.link_type gates vs depends-on (HEL-3219) - #28
Conversation
TRC Technical Review — HEL-3219 — verdict: GOExact head reviewed: Intake gateCommitted on named branch Verification performed (not taken on faith)
Findings
VerdictGO. Behaviorally proven at exact head via independent local execution, not just CI trust. CTO wake signal (SSC-DAN requested reviewer) already present per DoD. Handing to standing merge-lane owner Rhea Ramos (RRA) for GATEWAY-VERDICT: TRC=PASS head=1e38f9e8044622a93daf54fcb719aae5ae7a1e36 |
RRA merge-lane disposition — AWAITING-APPROVALAll own-side gates verified at exact head
Sole remaining gate: independent GitHub approving review. This repo (
|
…-3219) Add optional link_type on task_links (NULL/depends-on = hard dep; gates = soft). Promotion, claim, unblock, and promote_task all use shared _parent_satisfies_link so gates children can go ready while a parent is blocked or running. Thread link_type through create_task, link_tasks, CLI, and tool schemas. Extend promote tests for AC-1/AC-3 and migration.
1e38f9e to
a884d0e
Compare
Summary
HEL-3219 — add optional
task_links.link_typeand gate promotion by link type so review/merge tasks can be soft-linked without deadlock.task_links.link_type TEXT(NULL default) + migration via_migrate_add_optional_columnsdepends-on(or NULL) = hard dep (parent must bedone/archived);gates= soft (also accepts parentblocked/running)_parent_satisfies_linkused byrecompute_ready,create_taskinitial status,link_tasksdemotion,claim_task,unblock_task,promote_taskhermes kanban link --type) and tool schemas (kanban_create/kanban_link)test_kanban_promote.py(AC-1 gates promote, AC-3 NULL legacy hard, mixed parents, claim/promote/unblock, migration)Test plan
python -m pytest tests/hermes_cli/test_kanban_promote.py -q→ 15 passedpython -m pytest tests/hermes_cli/test_kanban_promote.py tests/hermes_cli/test_kanban_db.py -q→ 263 passedDeployment impact
Additive SQLite column only. No prod deploy / DB apply required beyond normal kanban DB open (migration runs on connect).
Rollback
Revert PR; existing rows keep NULL
link_type(hard-dep semantics). Dropping the column is optional and not required for rollback behavior.Closes HEL-3219
Prompt-cache / session-context impact
None. This change is confined to
hermes_cli/kanban_db.py(SQLite schema + Kanban task-graph promotion logic),hermes_cli/kanban.py(CLI), andtools/kanban_tools.py(tool schema). It does not touch agent prompt construction, context assembly, session state, or prompt-cache keys/boundaries in any way.(Added by TRC review — HEL-3219 deliverable item 5 required this explicit statement in the PR description.)