Conversation
The CSV export writes a 16-column header (status, payment_method, contract dates, vendor, discount, ...) that import rejected, breaking the export -> import roundtrip. Parse the header by column name and validate/preserve the optional fields.
getLlmUsageTotal returns USD cents, but compare --api and payment --currency --api passed the value straight to convertPrice / formatPrice, which expect major units — overstating API cost ~100x (e.g. $0.0075 displayed as $1). Also fix the compare divider row to span the full table width via colSpan.
bulk status and bulk delete support --force for non-interactive use, but bulk tag add/remove always prompted for confirmation, making them unusable in scripts. Add -f/--force and thread it through.
tsc --noEmit picked up stale .d.mts files in dist/ referencing hashed .mjs outputs, failing lint:types with TS6053.
- Remove dead barrel (subscription.ts) and empty source directories - Centralize date helpers (toDate, formatDate, daysUntil, month names, pad2) - Add fx helpers (convertSubsWithRates, tryConvert) for subscription conversion - Extract pre-command hooks (autoScan + notification banner) into pre-command.ts - Add getNonCancelledSubscriptions db helper - Extract restoreFromFile and safePath/safeOutputPath helpers - Unify table column width calculation in display.ts - Drop unused imports and dead exports
Add a named-color theme system driven by config: - theme presets (default, light, high-contrast, none) plus per-key overrides for border, header, zebra, and accent colors - tableZebra on/off, tableMinWidth, dateFormat, and default list columns (listShowNotes, listShowMethod) as config keys - unified section headings, status colors, total-row emphasis, USD cost formatting, and FX-failure messaging across modules - shared column-width calculation for all cli-table3 tables - menu header showing version, subscription count, and DB path - docs: document display config keys and themes
|
Warning Review limit reached
Next review available in: 51 minutes Limit details: You’ve used all 1 included review currently available under your plan. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (32)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
getDbDir() returned SUBSC_CLI_DB_DIR verbatim, so on Windows path.join() produced backslash paths from a forward-slash env value (e.g. \tmp\... from /tmp/...), breaking path containment checks in tests and causing inconsistent paths at runtime.
Summary
Make the CLI display user-configurable via
subtrack config set, driven by a named-color theme system.Display themes
themepreset key now works:default,light,high-contrast,none(plain monochrome)tableBorderColor,tableHeaderColor,tableZebraColor,accentColor(16 named colors)tableZebraon/off andtableMinWidth(20–200)Display options
dateFormat(iso/short) for human-facing dates incancel/notify(JSON output stays iso)listShowNotes/listShowMethoddefault columns forsubtrack list(flag > config > off)UI consistency (part of this change)
sectionTitle), status colors, and total-row emphasis (bold+yellow) across all commandscalcColumnWidthsfor every cli-table3 table (display, trial, forecast, audit, compare) with terminal-width awarenessformatUsdCostreplaces hardcoded$x.toFixed(4)API cost strings (10 sites)failwhich sets exit code 1)Notes
color.tsholds the named-color → ANSI mapping (shared by config validation and rendering, avoids import cycles)SUBSC_CLI_DB_DIRdocs/configuration.md(config keys table + Display themes section)Tests
pnpm lint:typesclean,pnpm buildsucceeds