Skip to content

v0.30.0

Choose a tag to compare

@github-actions github-actions released this 06 Feb 17:17
· 465 commits to main since this release

Changelog

  • 60c0cb4 Docs
  • 1314d83 Docs
  • 4397217 Docs reshuffle
  • ac9a0c9 Merge branch 'sidecar-notes' into main
  • b64d6ea Merge pull request #10 from marcus/mutation
  • 9ee3fbc Merge pull request #11 from marcus/docs/package-doc-comments
  • 8dc5fed Merge pull request #12 from marcus/codex/sync-flag-framework
  • 5ae8dcb More plans
  • 6840fea Mutex lock for session
  • a4849eb Pre-db-mutation layer plan
  • f2100ae Revert "feat(sync): add encryption tables and key_id column"
  • 3c9f12e Split up chaos lib. Docs. Looser lexer/parser for TDQ.
  • 51da266 Sync setup guide
  • 7d73474 Test harness to simulate two clients and 1 server
  • 97485fb Testing guide
  • b462e6b Update makefule
  • a377faa add e2e sync test script (automated + manual modes)
  • ffc00f6 add e2e test suite with shared harness
  • 587447d add e2e test writing guide + fix stale comment
  • 0ca9e1b e2e: add alternating actions test + update guide
  • 4c888c4 e2e: cleaner prompt (bold name + dim context, no path)
  • 8f57f98 e2e: fix zsh prompt escapes + kill tmux on cleanup
  • e114460 e2e: launch tmux session in manual mode
  • 49984a6 e2e: migrate copied DBs and run real-data suite
  • d41623f feat(crypto): add crypto primitives package for end-to-end encryption
  • 0ba851a feat(sync): add encryption tables and key_id column
  • 9c7335e feat(sync): add gated notes entity rollout support
  • 4d82f79 feat(sync): add snapshot bootstrap endpoint and client support (td-f06f29)
  • 27f3bca feat(sync): capture log/comment/work_session changes for sync
  • 524e4c2 feat(sync): deterministic IDs and full sync for board positions, dependencies, file links
  • 6cc27f0 feat(sync): implement auto-sync triggers for post-mutation push and periodic monitor sync (td-88b016)
  • d581d1b feat(sync): snapshot bootstrap v2 with full schema, caching, and client wiring (td-816643)
  • 9bd86c9 feat: Add Docker deployment with Litestream backup (Phase 1e)
  • a70e969 feat: Add Phase 3.5 sync tests — concurrent push, crash recovery, rate limit, pagination, exclude_client
  • 92a5ea7 feat: Add observability - metrics, structured logging, health check (Phase 1f)
  • 86b6aea feat: Add rate limiting, exclude_client optimization, td doctor (Phase 2)
  • d44dde7 feat: Implement HTTP API layer and server binary (Phase 1a)
  • 718bbad feat: Implement Phase 3 collaboration — conflict recording, member management, tests
  • 644fc1b feat: Implement client CLI integration (Phase 1d)
  • 308603b feat: Implement device auth flow and verification UI (Phase 1c)
  • 6a46bef feat: Implement server database layer (Phase 1b)
  • d845c07 feat: Implement sync engine Phase 0 (core library)
  • f0c3b8e feat: TUI move operations use sparse positioning (td-d13261)
  • 6690679 feat: add Go e2e test harness for chaos sync oracle (td-b10c8d)
  • ebc66bc feat: add board position logged variants and migrate (td-c37329)
  • f79a336 feat: add boards_logged.go and migrate board call sites (td-d27afe)
  • 814f023 feat: add chaos action engine with weighted random executors (td-548612)
  • 238d856 feat: add chaos test runner with CLI flags and JSON report (td-9d6275)
  • 8de7fd3 feat: add clock skew simulation test (td-a115cf)
  • e575584 feat: add concurrent sync test (td-ab97d7)
  • b0c87fe feat: add convergence and correctness verifications for sync oracle (td-af67d1)
  • 68c224c feat: add create-delete-recreate sync test (td-fe4fc3)
  • 52c4546 feat: add event log ordering verification test (td-19a5fe)
  • a87366c feat: add file link logged variants and migrate (td-ef176c)
  • abf028b feat: add idempotency verification after convergence (td-d8b74b)
  • 5b44fb8 feat: add issues_logged.go with CreateIssueLogged, UpdateIssueLogged, DeleteIssueLogged (td-00df27)
  • 850ec0e feat: add large payload sync stress test (td-aee0b4)
  • 865166e feat: add late-joining client scenario test (td-b1713d)
  • ccb3be3 feat: add mid-test convergence checks to chaos sync (td-b3cc5a)
  • 2f2457f feat: add multi-environment deployment system
  • 7ef5cec feat: add network partition simulation test (td-4173f4)
  • 96a6070 feat: add nightshift to sister projects section
  • 9b5db9e feat: add notes e2e sync test (td-50923b)
  • 6ba5ea6 feat: add notes to allowedEntityTypes (td-50382a)
  • 9decc96 feat: add notes to chaos sync test (td-9e5fee)
  • 586a660 feat: add notes to normalizeEntityType (td-4f49f5)
  • a5501b5 feat: add notes to syncableTables (td-5249a7)
  • a7d0f30 feat: add operation history and structured logging for chaos oracle (td-d8c22d)
  • c3e9541 feat: add optional sync state clear to sync-project unlink (td-2c73c0)
  • 429265e feat: add parent deletion cascade sync test (td-1a3775)
  • 67ea350 feat: add regression seed suite infrastructure (td-f6827b)
  • f0915c3 feat: add relations_logged.go for dependencies and migrate (td-6af2ad)
  • 69e0eae feat: add server restart resilience test (td-382809)
  • 0e38542 feat: add soak/endurance test mode (td-3eb200)
  • cabf368 feat: add sync feature-flag framework and merge plan
  • 09bc6c6 feat: add sync prompt modal component (td-0d58ce)
  • 53a0332 feat: add sync server restart mid-test scenario (td-32bef1)
  • b9a91e8 feat: add sync state reset helpers for server migration (td-6a9435, td-92176a)
  • a65afa9 feat: add sync state reset prompt to sync-project link (td-5cf676)
  • 348deb4 feat: add sync-project join command (td-da2810)
  • 3360870 feat: add sync_history DB layer with CRUD and pruning (td-c5947c)
  • e463fc8 feat: add sync_history table migration (td-62a15e)
  • 787ede8 feat: add syncharness test for board delete cascade position sync (td-1714f6)
  • bd81bd5 feat: add td config set/get/list commands (td-ca1a23)
  • d9d0b73 feat: add td sync init guided setup wizard (td-9392fd)
  • e456f85 feat: add td sync tail command for live sync activity (td-430ba9)
  • ec2d0e5 feat: add undo-after-sync test scenarios (td-27ff31)
  • 10c1285 feat: auto-link on sync-project create (td-be0782)
  • 50599f4 feat: board move uses ComputeInsertPosition for sparse sort keys (td-30de12)
  • 22f237d feat: implement field-level merge for update events (td-32102f)
  • 8bd18e4 feat: instrument sync push/pull to record history (td-838c76)
  • bcf053a feat: make rate limits configurable, increase for tests (td-1c72d7)
  • 2267abf feat: migrate CLI issue call sites to *Logged variants (td-09ae29)
  • 5af97ea feat: migrate DB-layer cascades to logged helpers (td-b1a5c1)
  • 2558b00 feat: migrate TUI issue call sites to *Logged variants (td-b2ad9e)
  • 7c312bc feat: migrate docs to td.haplab.com and add Haplab branding
  • 746df6d feat: sparse positioning — rewrite SetIssuePosition, add ComputeInsertPosition/RespaceBoardPositions (td-525483)
  • 5e3ae7a feat: sync work_session_issues tag/untag across clients (td-702faa)
  • dd65944 feat: wire sync prompt into post-init flow (td-178469)
  • 37c4b25 fix(sync): auto-sync v2 review fixes (td-dfc758)
  • 1e9668f fix(sync): backfill legacy issue status mismatches
  • 29f304d fix(sync): backfill orphan entities before first push (td-dbf627)
  • 9eae002 fix(sync): backfill stale issue updates for legacy data
  • 8ae858a fix(sync): guard bootstrap when pending local changes
  • bd8202f fix(sync): log handoff creations to action_log for sync/undo (td-aae070)
  • 182c686 fix(sync): map removal action types to delete for sync propagation
  • b297629 fix(sync): normalize array/object payload fields before SQLite insert (td-c995ba)
  • d0a04fa fix(sync): normalize entity types and allowlist
  • 0f59488 fix(sync): only record conflicts when local row changed since last sync (td-681716)
  • 741a8f0 fix(sync): prevent updates from resurrecting deletes
  • cfe1080 fix(sync): snapshot bootstrap v2 review fixes (td-ba3252)
  • 3f80365 fix(sync): treat duplicate push rejections as idempotent acks (td-9e2e3a)
  • d46f1e8 fix(test): serialize concurrent server writes in sync harness
  • c824354 fix(undo): capture prior position on board unposition for undo
  • ba22b5e fix: add boards entity type to undo command (td-693fa5)
  • ac37b22 fix: add file locking and atomic writes to config (td-63f37b)
  • c63a36f fix: add migration to enforce NOT NULL on action_log.id (td-d68448)
  • 41a7273 fix: add missing VerifyResult type and truncate to conflicts.go (td-382809)
  • ba29310 fix: add per-field LWW guard and remove excludeDevice filter for sync convergence (td-0a1265, td-251bd9)
  • 01ac8c7 fix: add restore event handling in sync (td-74a017)
  • eaf040b fix: add sprint to UpdateIssue SQL and update cmd; add sprint chaos (td-efc687)
  • 0babf8a fix: address review issues for board position soft deletes (td-7f58e6)
  • d582fe1 fix: backfill stale issues as 'create' to resurrect deleted rows on receiver (td-e04625)
  • cdf649d fix: batch autoSyncPush to respect server limits + add TD_LOG_FILE
  • e09143e fix: cascade board position soft-delete in sync receiver and fix verify queries (td-4c55f0)
  • 3338a25 fix: consolidate VerifyResult type and resolve duplicate definitions across e2e files
  • 6494618 fix: create temp files in link chaos action instead of masking errors globally (td-bb6e53)
  • e98045b fix: cross-entity query OR logic + blocks() wrong DB call
  • 162d703 fix: detect dependency cycles during sync event application (td-465e57)
  • 1b77d9e fix: drop UNIQUE(name) on boards to prevent sync data loss (td-df524b)
  • a7967f7 fix: e2e test uses convergence checks for sparse positions (td-04aa9e)
  • ec6f116 fix: filter soft-deleted positions in verify convergence queries (td-aeb794)
  • 8d84f9d fix: generate sync events for undo operations (td-37653b)
  • eac367a fix: handle Go time.Time.String() timestamps + rewrite real-data e2e test
  • 512f730 fix: handle NULL action_log ids in GetPendingEvents (td-d27369)
  • b7c7e91 fix: handle NULL session columns in issue scans after sync (td-0f0aa4)
  • ead5579 fix: handle both timestamp formats in clock skew test (td-e187f4)
  • c64b980 fix: handle undone creates, mid-chain deletes, and status-preserving partial updates in backfill (td-e04625)
  • e9811a2 fix: log individual soft_delete events for board positions on board delete (td-98a1b9)
  • 58d34fd fix: map board_update to create action for sync convergence (td-306144)
  • bea3ba8 fix: map issue delete to soft_delete in sync protocol (td-bc25c3)
  • 41f45db fix: migrate last manual LogAction in cmd/link.go to AddDependencyLogged (td-ef176c)
  • 5f004a3 fix: migrate remaining unlogged mutation call sites to *Logged variants (td-2f76c4)
  • 591aef8 fix: monitor periodic sync uses independent goroutine instead of BubbleTea Cmd
  • 426b60a fix: prevent NULL points from sync partial update (td-6d1cdc)
  • 4d79940 fix: remove omitempty from session fields to fix sync divergence (td-450222)
  • 34fdeea fix: remove per-row LWW guard that caused cross-field divergence (td-0a1265)
  • ac17dc4 fix: soft delete board_issue_positions to prevent sync resurrection (td-7f58e6)
  • 81d509c fix: sync convergence - use soft_delete in interleaved test (td-2c1609)
  • ba21667 fix: treat missing file in link chaos action as expected failure
  • 221bf6a fix: use 'issue' (singular) for entity_type in issues_logged.go (td-00df27)
  • a5dd9ac fix: use correct action_type/entity_type in autosync push test setup
  • b9d60c9 fix: use longer titles in TestRapidCreateDelete (td-2455cd)
  • f6b2475 fix: use range-over-int and modernize for-loops in e2e package
  • 9c2fd68 fix: use td_c helper for late-joiner init to fix session mismatch (td-0934ea)
  • ebc1429 fix: use temp files in verify_convergence_quick to avoid FIFO hang (td-1979a8)
  • 24e10c2 fix: verify cascade actually affects children in chaos test (td-721a05)
  • 2ecde33 merge: integrate sunc branch with notes support
  • ed10b55 merge: integrate sunc with sync feature gating
  • 64a9a8a refactor(test): replace hand-written harness schema with real td schema
  • 72cbb3c sync: normalize legacy action_log + ignore unknown payload fields
  • d175e65 td-070a10 Auto-sync v2 config
  • 8f5f788 test(sync): cover Go time.Time.String() timestamps