A file-based task manager
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Rename backfill-status to fix-up as the general migration entry point

backfill-status was a one-off; replace it with tsk fix-up that runs
every known one-shot migration in sequence. Today that's just the
status backfill; future migrations land in the same handler. Each
migration must stay idempotent so re-running fix-up is safe. AGENTS.md
documents the new command.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

+18 -6
+10
AGENTS.md
··· 65 65 This keeps the user's `tsk` queue free of agent-internal bookkeeping while 66 66 still surfacing the work for later. 67 67 68 + ## Migrations 69 + 70 + Storage and conventions evolve. A single command runs every known one-shot 71 + fix-up against the active workspace; safe to re-run (each migration is 72 + idempotent): 73 + 74 + ``` 75 + tsk fix-up 76 + ``` 77 + 68 78 ## Sync with the user 69 79 70 80 Local refs aren't visible to the user until pushed:
+8 -6
src/lib.rs
··· 106 106 }, 107 107 /// Drop index entries whose stable ids no longer resolve. 108 108 Clean, 109 - /// One-shot: set status=open on every task in the active namespace that 110 - /// has no status property yet. Skips tasks already marked done. 111 - BackfillStatus, 109 + /// Run every known one-shot migration against the active workspace. 110 + /// Currently: backfill `status=open` on tasks without a status property. 111 + /// New migrations land here as they're added. 112 + FixUp, 112 113 /// Print refspec/setup hints for `git push`/`git fetch` to include `refs/tsk/*`. 113 114 GitSetup { 114 115 /// Configure push/fetch refspecs on the named remote (default: origin). ··· 315 316 Workspace::from_path(dir)?.deprioritize(task_id.into()) 316 317 } 317 318 Commands::Clean => Workspace::from_path(dir)?.clean(), 318 - Commands::BackfillStatus => { 319 - let n = Workspace::from_path(dir)?.backfill_status()?; 320 - println!("Set status=open on {n} task(s)"); 319 + Commands::FixUp => { 320 + let ws = Workspace::from_path(dir)?; 321 + let n = ws.backfill_status()?; 322 + println!("backfill-status: set status=open on {n} task(s)"); 321 323 Ok(()) 322 324 } 323 325 Commands::GitSetup { remote } => {