Task Source Abstraction
Status: Open — no code has shipped; this is a design proposal for the trait/config seam the autonomous queue needs before it can accept work from more than one source (Phase 4, Agent Orchestration Program).
Shipped baseline
No task-source abstraction has shipped yet. Source search found no TaskSource, TaskOutcome, TaskPolicy, [task_sources], github_issues, file_glob, stdin_pipe, or WorkItemSource in the Rust crates. crates/jackin/src/cli/config.rs and crates/jackin/src/workspace.rs expose workspace/config schema but no task-source parsing or assignment. The closest shipped adjacent state is Capsule/usage persistence: the Capsule-local Turso account_usage_snapshots table (crates/jackin-usage/src/telemetry_store.rs) and the host jackin usage <instance> accounts --sync-host-cache flow, documented in the persistent storage layer research. The broader storage layer, task table, workflow run ledger, GitHub reporter, and autonomous dispatch queue this abstraction would feed all remain planned.
Remaining work
- Design and land a
TaskSourcetrait (poll/report/id/label) plus a sharedTask/TaskPolicydata model, scoped to the future queue/workflow module rather than ad hoc GitHub issue structs. - Ship two low-risk source implementations first —
github_issuesandfile_glob— deferringstdin_pipeunless it lands in the same slice as a queue command. - Add
[task_sources.<name>]config parsing and per-workspace source assignment, but only once the queue exists to consume it; do not ship inert config no runtime reads. - Store queued tasks in the future persistent storage layer (Turso/SQLite) alongside planned workflow/run tables rather than a separate queue-only database.
- Wire task links into the future Agent tag protocol and GitHub link tracking once those seams land.
- Keep the
report()callback as a no-op seam in V1 — no auto-closing issues or posting comments until operator gates and reporter semantics are proven. - Resolve open design questions before implementation: source authentication (route through the credential source pattern), queue-source vs. workflow-source lifecycle sharing, task-identity stability across renames, and which subsystem owns the first durable table.
Full design rationale, the candidate TaskSource trait sketch, and the alternatives/open-questions discussion live in Task source abstraction (design).
Related work
- Autonomous task queue — primary consumer of this abstraction
- Credential source pattern — per-source credential resolution
- Agent tag protocol — emitted task/link metadata
- Persistent storage layer — task/run storage home
- Agent Orchestration Program