Files
kandev/docs/plans/plugin-task-dependency-projection/plan.md
T
2026-09-18 14:55:51 +00:00

2.0 KiB

created, status, requirements, system_design, legacy_specs
created status requirements system_design legacy_specs
2026-09-17 implemented
REQ-PLUGINS-TASK-DEPS-001
REQ-PLUGINS-TASK-DEPS-002
REQ-PLUGINS-TASK-DEPS-003
REQ-PLUGINS-TASK-DEPS-004
REQ-PLUGINS-TASK-DEPS-005
REQ-PLUGINS-TASK-DEPS-006
../../specs/plugins/system-design/task-dependency-projection.md
../../specs/plugins/system-design/task-dependency-refresh.md
../../specs/plugins/system-design/task-dependency-edge-ends.md
../../specs/plugins/system-design/task-dependency-response-bounds.md

Implementation Plan: Expose task dependencies in the plugin and canvas data API

Overview

A workspace canvas or gRPC plugin reading the Host Data API's Task read model could not see a single dependency edge, even though the kanban board already derives and ships a complete view (blocked, blocked_reason, depends_on, blocks, start_when_unblocked) via BuildDependencyViews. This plan adds the same seven-field, read-only projection to every plugin task read model across the gRPC surface (proto, SDK, grpcHostServer), the canvas JSON surface (webapp_protocol_json.go), and the shared derivation the two reuse (internal/task/service/service_dependencies.go), landing it as a field on the existing api_read:tasks capability with no new grant. It builds on the plugin Host Data API's existing task read implementation (ADR 0043, docs/plans/plugins/host-data-api/).

Scope

See task-01-dependency-projection.md for the full field set, attachment rule, withheld-verdict semantics, fan-out bound, edge-end redaction, and the shared-derivation fixes this plan lands.

Verification

  • go test ./internal/plugins/... ./internal/task/service/... ./internal/task/repository/sqlite/... ./internal/office/repository/sqlite/... ./pkg/pluginsdk/...
  • golangci-lint run ./... (backend)
  • gofmt -l on touched files

Work orders