47c4733
Bump version to v0.1.3
Amolith created
47c4733
Bump version to v0.1.3
Amolith created
f8c671b
Fix redundant [closed] markers in td show when all blockers are closed
When all blockers are resolved, 'td show' was printing both '[all closed]' as a prefix AND '[closed]' after each blocker ID. The prefix makes the individual markers redundant. Now: - All closed: '[all closed] id1, id2' (no per-ID markers) - All open: 'id1, id2' (no brackets) - Mixed: 'open1, open2, closed1 [closed], closed2 [closed]'
Amolith created
36e3c46
Bump version to v0.1.2
Amolith created
9f57887
Open editor on bare td create or td update
Amolith created
4cf342e
Describe init process
Amolith created
ea95ee1
fix typo
Amolith created
e1cce7f
Update installation instructions
Amolith created
d98acb9
Bump ver in lockfile
Amolith created
e762ab5
Correct upload dir
Amolith created
ff696b7
Bump version to v0.1.1, add dist/ to .gitignore
Amolith created
e955543
Drop iana-time-zone dep by switching chrono from clock to now feature
Amolith created
1e5cba0
Add release, cross-build, pack, and upload targets to Makefile
Amolith created
31dfe69
Update AGENTS.md to reflect Loro storage and current module layout
Amolith created
1465630
Emit short td-XXXXXXX IDs consistently in all output
Change TaskId serialization from the raw 26-char ULID to the short td-XXXXXXX display form. This affects all JSON output from every command that emits task identifiers: create, show, list, update, done, reopen, dep, label, rm, log, next, ready, search, and doctor. The root cause was TaskId's serde Serialize impl using #[serde(transparent)] which forwarded the inner ULID string. Replace it with a custom impl that emits short(). Additionally, several commands built JSON manually via .as_str() or stored the full ULID in plain Strings for human output — fix all of those. Export retains full ULIDs via a dedicated Task::to_export_value() method so that import round-tripping continues to work (import needs exact ULIDs for CRDT key fidelity). Update one test in cli_io.rs that was feeding show --json output into import — the correct data source for import is export, which is the designed round-trip path.
Amolith created
664e779
Add SyncAll: sync all shared projects when neither peer has one selected
When both peers run 'td sync' without a project selected (no binding, no --project, no TD_PROJECT), instead of bailing with 'both peers are in bootstrap mode', enumerate all local projects on both sides, compute the intersection by project_id, and sync each shared project. Protocol change: replace the Bootstrap handshake (for the 'no project selected' case) with a new SyncAll variant carrying a manifest of every local project (name, id, version_vector). Both sides compute the intersection by project_id, agree on an ordering (sort by project_id), then loop over the shared set exchanging deltas per-project exactly like the existing single-project Sync path. Fallback cases handled: - SyncAll peer + Sync peer: bootstrap from the peer that has a project selected, identical to the old Bootstrap path. - SyncAll + Bootstrap (old td): bail with an upgrade hint. - No intersection: friendly no-op message. - Both have zero projects: no intersection, friendly no-op. - Name mismatch for same project_id: sync anyway, print a warning. Also adds: - db::list_projects_in(root) - root-explicit helper used by build_local_manifest - db::Store::project_id() - exposes read_project_id_from_doc via Store - db::bootstrap_sync_at(data_root, cwd, project, delta) - HOME-free bootstrap used from async sync code where HOME may vary by peer Tests: sync_all_exchanges_shared_projects, sync_all_no_intersection_is_noop
Amolith created
62f24b7
Implement td doctor: integrity checks and repairs
Amolith created
4570f5a
Repurpose migrations to Loro schema upgrader
Amolith created
36f06d4
Replace deprecated Command::cargo_bin with cargo_bin_cmd! in tests
Amolith created
fa87351
Update AGENTS.md to reflect central storage architecture
Amolith created
112ea9a
Update SKILL.md and AGENTS.md for project subcommand interface
Amolith created
6451bfe
Add tests/cli_project.rs, remove tests/cli_init.rs
Amolith created
1a87c55
Update test files to use project subcommand
Amolith created
b20c9f8
Implement cmd::project handlers and retire flat project commands
Add src/cmd/project.rs with handlers for all five ProjectAction variants (init, bind, unbind, delete, list). Wire dispatch in cmd/mod.rs. Remove the now-superseded src/cmd/init.rs, use.rs, and projects.rs modules. Update the two error strings in cmd/sync.rs that still referenced td init.
Amolith created
b07cd64
Introduce td project subcommand group and extend db layer
Replace the flat Init, Use, and Projects top-level commands with a single
Project { action: ProjectAction } variant and a ProjectAction enum covering
Init, Bind, Unbind, Delete, and List.
Add unbind_project() and delete_project() to the db layer. Update the three
error strings that still referenced the old command names.
Amolith created
4aa0d43
Rename td compact to td tidy; implement two-phase compaction
Amolith created
789db30
Restore verbose output for next command
The Loro migration stripped the verbose breakdown down to just an ID and
final score. Restore the three pieces that were lost:
- Active scoring mode printed once before the per-task list
- Expanded formula with actual values substituted, branching on mode:
impact: (downstream + 1.00) × priority / effort^0.25 = score
effort: (downstream × 0.25 + 1.00) × priority / effort² = score
- Unblocks count: N tasks (M directly), with correct singular/plural
All data was already present in ScoredTask; only the rendering in
src/cmd/next.rs needed updating.
Update the two cli_next verbose tests whose assertions reflected the old
'score:' label rather than the restored output. Add two new tests
covering the singular 'task' grammar and transitive unblocks counts,
both of which were untested before.
Amolith created
d76a593
Fix next --json emitting priority/effort as integers instead of labels
Amolith created
e005a12
Fix typo and link
Amolith created
f5386e3
Add sync docs, reflow some paragraphs
Amolith created
b99bc71
add click hint to summary element
Amolith created
09282eb
Update desc, add usage
Amolith created
227178e
Restore td- prefix on displayed task IDs
short() and display_id() now emit td-XXXXXXX instead of bare suffixes. resolve_task_id() strips the prefix on input so both forms are accepted.
Amolith created
fc23e4e
Use short IDs in next and rm human output
next extracted task IDs as raw ULID strings for the scoring engine then displayed those same strings. rm did the same with unblocked_ids in its warning message. Both now go through TaskId::Display or display_id() at render time. Add display_id() to TaskId for contexts where a raw &str needs shortening without constructing a TaskId.
Amolith created
4b583a0
Surface serde error detail in sync handshake failure
Amolith created
98a12e9
Update README/SKILL
Amolith created
23f0ffe
Implement sync bootstrap mode
Amolith created
a26c272
Note jj diff --git preference in AGENTS.md
Amolith created
be887a3
Use ULID suffix for short display IDs and resolution
Amolith created
fb2aae2
update SKILL.md for Loro storage, ULID IDs, and new project commands
Amolith created
35512eb
add magic-wormhole sync command
Amolith created
6972807
update AGENTS.md jj workflow instructions
Amolith created
140addc
fix compact cleanup and import merge behavior
Amolith created
78ea171
migrate command tests for central loro store
Amolith created
68dcedd
build loro storage layer primitives
Amolith created
94815dd
Introduce jj fix, improve make target
Amolith created
028fd0d
Add jj instructions
Amolith created
b324c98
Fix typo in contributions section
Amolith created
10671bf
add contributing info
Amolith created
9eaf859
mention pr.pico.sh and the skill in agent guidance
Amolith created
0c64b95
Swap from DESC to EOF
Amolith created