Skip to content

fix: Windows build compatibility - rename colon files to hyphens#3

Merged
jlevy merged 6 commits into
mainfrom
claude/fix-windows-build-AhDDu
Jan 16, 2026
Merged

fix: Windows build compatibility - rename colon files to hyphens#3
jlevy merged 6 commits into
mainfrom
claude/fix-windows-build-AhDDu

Conversation

@jlevy
Copy link
Copy Markdown
Owner

@jlevy jlevy commented Jan 16, 2026

Summary

  • Renamed all shortcut:*.md files to shortcut-*.md format using speculate-cli update
  • Re-enabled Windows in CI matrix now that files are Windows-compatible
  • Colons (:) are not allowed in filenames on Windows, which was causing CI failures

Test plan

  • Verify CI passes on all three platforms (ubuntu, macos, windows)
  • Confirm no broken references to old filenames

Windows does not allow colons in filenames, which was causing the CI
build to fail. The speculate-cli update renamed all shortcut files
from `shortcut:name.md` to `shortcut-name.md` format.
Now that shortcut files have been renamed from `shortcut:*.md` to
`shortcut-*.md`, Windows builds should work correctly.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 16, 2026

Coverage Report for packages/tbd-cli

Status Category Percentage Covered / Total
🔵 Lines 74.04% 1258 / 1699
🔵 Statements 74.04% 1258 / 1699
🔵 Functions 83.75% 201 / 240
🔵 Branches 60.43% 539 / 892
File CoverageNo changed files found.
Generated in workflow #19 for commit d4d23ab by the Vitest Coverage Report Action

- Added *.md to .prettierignore
- Reformatted all markdown files with flowmark --auto
- Flowmark provides semantic line breaks for better diffs
The CI coverage report was showing only vitest unit test coverage (9%)
instead of the combined coverage. This happened because:
- vitest wrote to coverage/
- tryscript wrote to coverage-tryscript/
- CI action read from coverage/

Fixed by:
- Using --coverage-dir coverage to write merged report to same location
- Using --coverage-monocart for accurate line counts aligned with vitest
- Adding monocart-coverage-reports dependency
- Including all required reporters (json, json-summary, lcov, html)

This ensures CI now reports the full combined coverage from both
unit tests and CLI golden tests.
New test files:
- merge.test.ts: Comprehensive tests for three-way merge algorithm
  - LWW (last-write-wins) strategy for scalar fields
  - Union strategy for labels and dependencies
  - Max strategy for version numbers
  - Immutable strategy for IDs and timestamps
  - Conflict entry generation

- errors.test.ts: Tests for CLI error classes
  - CLIError, ValidationError, NotInitializedError
  - NotFoundError, SyncError
  - Exit code verification

Improved ids.test.ts:
- Edge cases for normalizeIssueId (corrupted IDs, short IDs)
- formatDisplayId tests

Coverage improvements (vitest-only):
- errors.ts: 25% → 100%
- ids.ts: 78% → 100%
- git.ts: 0% → 62% (merge algorithm)
@jlevy jlevy merged commit 5cc7e78 into main Jan 16, 2026
5 checks passed
jlevy pushed a commit that referenced this pull request Jan 17, 2026
Merged Beads vs tbd comparison into main review document.
Now includes:

Bugs (6 total):
- #1: Exit codes return 0 on errors (CRITICAL)
- #2: Dependency direction semantics confusing
- #3: Search outputs message with --quiet
- #4: Doctor warns on empty issues dir
- #5: Import changes ID prefix
- #6: Errors not JSON with --json flag

Enhancements (20 total):
- Critical (3): exit codes, npm publish, git version check
- High (5): dep semantics, error JSON, tests, docs, import prefix
- Medium (7): brief flag, templates, query DSL, batch ops, etc.
- Low (5): history, GitHub sync, plugins, index, auto-links

Key finding: tbd's single session protocol is better than
Beads' 5 conditional protocols. Keep it simple.
@jlevy jlevy deleted the claude/fix-windows-build-AhDDu branch January 26, 2026 04:31
jlevy pushed a commit that referenced this pull request May 7, 2026
The user pointed out the new Design Principles in the docs-config plan
should be cross-referenced and consolidated with the existing tbd-design
principles. Three changes:

1. tbd-design.md §1.5 (Design Principles) extended from 6 to 10:
   - #1 (Simplicity first) extended to spell out "simple things simple,
     complex things possible".
   - #3 (Git for sync) extended with the reproducible-from-config
     contract.
   - #7 added: Auth is always out-of-band — tbd never holds credentials.
   - #8 added: Hard cuts on format versions with reliable migration —
     already practiced for f02→f03; making it an explicit principle.
   - #9 added: Spec ↔ implementation synchrony via tests.
   - #10 added: Layered architecture, separable artifacts.

   These four new principles emerged from the docs-config redesign work
   but apply tbd-wide.

2. tbd-design.md §1.4 Design Goals: added goal #8 (extensible knowledge
   subsystem), which links forward to the plan-spec and the docref/
   docmap design docs as the authoritative location for that subsystem's
   design.

3. plan-spec Design Principles intro: now explicitly notes that P1, P5,
   P6, P7, P8, P9 are restatements/elaborations of tbd-design §1.5
   principles, while P2, P3, P4 are docs/config-specific and have no
   direct system-wide analog. Each restated principle gets an inline
   "(extends tbd-design §1.5 #N)" cross-reference. tbd-design.md is
   declared authoritative for system-wide values.

This consolidates principles in one foundational location (tbd-design.md)
while keeping the docs-config plan readable on its own.

https://claude.ai/code/session_01PhbYdWX7DUBpUBVuUesVuP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants