feat(task-sources): enrich ingested cards with brief fields + source_metadata#2960
feat(task-sources): enrich ingested cards with brief fields + source_metadata#2960sanil-23 wants to merge 1 commit into
Conversation
…metadata Task sources previously created "dumb" cards that set only `notes`, leaving tinyhumansai#2891's enriched brief fields empty even though `enrich.rs` already computes a summary, urgency, and an actionable prompt. - Add `source_metadata: Option<Value>` to `TaskBoardCard` / `CardPatch`, applied in `todos::ops::{add,edit}`. - Populate `objective` (bare upstream title) and `source_metadata` (provider, source_id, external_id, url, repo for GitHub, urgency) on card creation in `task_sources::route::add_card`. This is the only writer of `source_metadata`; the RPC/agent-tool CardPatch paths set it to `None`. - Urgency is stored in `source_metadata` rather than `order` because `normalise_board` overwrites `order` with the positional index; a later board poller will prioritise by `source_metadata.urgency`. - TS `TaskBoardCard` gains an optional `sourceMetadata` field for parity. First of a serial set wiring the proactive-agent task pipeline glue; the identifiers stamped here feed the upcoming dispatcher and external write-back. Co-Authored-By: Claude <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughTask board cards now carry optional ChangesSource Metadata Field Addition
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint skipped: no ESLint configuration detected in root package.json. To enable, add Comment |
|
Superseded by #2974, which consolidates all six proactive-pipeline gap PRs into a single branch (7 ordered commits). Closing in favour of that. |
Summary
notes.source_metadataonTaskBoardCardcarries the provider/repo/issue identifiers + urgency a downstream dispatcher and external write-back will need to address the upstream item.objectiveis set from the bare upstream title;urgencyis stamped intosource_metadata(notorder, whichnormalise_boardoverwrites positionally).Problem
PR #2894's
task_sources/route.rscreated cards with onlynotes, even thoughenrich.rsalready computes a summary, urgency score, and an actionable prompt. The enriched data was discarded, so cards arrived without the brief fields (objective,source_metadata, …) that make them executable by an agent and addressable for write-back.Solution
source_metadata: Option<serde_json::Value>toTaskBoardCardandCardPatch; apply it intodos::ops::{add,edit}.task_sources::route::add_card, map enriched data →objective+source_metadata(provider,source_id,external_id,url,repofor GitHub,urgency). This is the only writer ofsource_metadata; the RPC and agent-toolCardPatchpaths set it toNone.source_metadatabecausenormalise_boardreassignsorderto the positional index — a later board poller prioritises bysource_metadata.urgency.TaskBoardCardgains an optionalsourceMetadatafield for wire parity.Submission Checklist
route::tests(repo present / absent / non-GitHub provider) andtodos::opssource_metadata round-trip (add → edit replace → edit preserve).build_source_metadata, add/edit assignment) is covered by the added unit tests;cargo testgreen locally.Impact
source_metadatais#[serde(default, skip_serializing_if = "Option::is_none")], so existing persisted boards deserialise unchanged.None).Related
source_metadata.urgency), external write-back (consumesprovider/repo/external_id).AI Authored PR Metadata
Linear Issue
Commit & Branch
Summary by CodeRabbit
Release Notes