julianknutsen
da2d71c3fe
feat(formula): add checksum-based auto-update for embedded formulas
...
Adds infrastructure to automatically update embedded formulas when
the binary is upgraded, while preserving user customizations.
Changes:
- Add CheckFormulaHealth() to detect outdated/modified/missing formulas
- Add UpdateFormulas() to safely update formulas via gt doctor --fix
- Track installed formula checksums in .beads/formulas/.installed.json
- Add FormulaCheck to gt doctor with auto-fix capability
- Compute checksums at runtime from embedded files (no build-time manifest)
Update scenarios:
- Outdated (embedded changed, user unchanged): Update automatically
- Modified (user customized): Skip with warning
- Missing (user deleted): Reinstall with message
- New (never installed): Install
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-08 22:43:44 -08:00
..
2026-01-07 21:41:51 -08:00
2026-01-07 21:41:51 -08:00
2026-01-01 18:58:56 -08:00
2026-01-01 18:58:56 -08:00
2026-01-05 00:42:24 -08:00
2026-01-03 16:11:55 -08:00
2026-01-06 13:00:46 -08:00
2026-01-06 22:52:32 -08:00
2026-01-08 20:25:01 -08:00
2026-01-03 16:11:55 -08:00
2026-01-03 16:11:55 -08:00
2026-01-01 18:53:39 -08:00
2026-01-05 06:58:46 +01:00
2026-01-07 20:35:06 -08:00
2026-01-05 00:21:42 -08:00
2026-01-07 19:17:28 -08:00
2026-01-07 19:17:28 -08:00
2026-01-08 20:25:01 -08:00
2026-01-07 18:24:38 -08:00
2026-01-07 18:24:38 -08:00
2026-01-08 22:40:23 -08:00
2026-01-09 02:22:36 +13:00
2026-01-09 02:22:20 +13:00
2026-01-09 02:22:20 +13:00
2026-01-03 21:37:05 +01:00
2026-01-04 15:30:57 -05:00
2026-01-03 11:49:42 -08:00
2026-01-03 16:23:44 -08:00
2026-01-07 21:56:46 -08:00
2026-01-08 20:25:01 -08:00
2026-01-05 00:42:24 -08:00
2026-01-01 18:54:36 -08:00
2026-01-08 22:43:44 -08:00
2026-01-03 21:37:05 +01:00
2026-01-06 12:59:37 -08:00
2026-01-06 20:32:02 -08:00
2026-01-04 00:17:37 -08:00
2026-01-08 20:25:01 -08:00
2026-01-03 16:11:55 -08:00
2026-01-03 16:11:55 -08:00
2026-01-03 16:12:27 -08:00
2026-01-06 20:32:02 -08:00
2026-01-04 19:46:27 -08:00
2026-01-03 16:11:55 -08:00
2026-01-08 22:10:40 +13:00
2026-01-04 23:13:03 -08:00
2026-01-07 20:45:58 -08:00
2026-01-08 21:00:25 -08:00
2026-01-03 16:11:55 -08:00
2026-01-02 00:22:17 -08:00
2026-01-03 16:11:55 -08:00
2026-01-06 22:32:35 -08:00
2026-01-03 21:00:00 -08:00
2026-01-03 21:00:00 -08:00
2026-01-05 19:39:57 -08:00
2026-01-01 18:58:56 -08:00
2026-01-03 16:11:55 -08:00
2026-01-05 19:39:57 -08:00
2026-01-03 16:11:55 -08:00
2026-01-02 17:18:27 -08:00
2026-01-02 17:18:27 -08:00
2026-01-06 13:09:32 -08:00
2026-01-01 18:56:35 -08:00
2026-01-01 18:54:36 -08:00
2026-01-05 00:42:24 -08:00
2026-01-03 16:11:55 -08:00
2026-01-01 19:16:06 -08:00
2026-01-04 15:16:56 -08:00
2026-01-03 21:37:05 +01:00
2026-01-03 16:11:55 -08:00
2026-01-08 22:10:40 +13:00
2026-01-06 22:32:35 -08:00
2026-01-07 00:10:05 -08:00
2026-01-03 21:53:30 -08:00
2026-01-08 20:25:01 -08:00
2026-01-02 18:25:15 -08:00
2026-01-01 19:11:04 -08:00
2026-01-06 20:40:40 -08:00
2026-01-08 20:25:01 -08:00
2026-01-06 20:43:27 -08:00
2026-01-06 22:50:21 -08:00
2026-01-06 20:41:01 -08:00
2026-01-08 20:25:01 -08:00
2026-01-06 22:32:35 -08:00
2026-01-06 21:44:05 -08:00
2026-01-06 22:52:32 -08:00
2025-12-31 00:27:59 -08:00
2026-01-08 22:10:40 +13:00
2026-01-08 20:25:01 -08:00
2026-01-08 21:00:25 -08:00
2026-01-08 21:00:25 -08:00
2026-01-07 21:08:51 -08:00
2026-01-06 19:10:43 -08:00
2026-01-06 22:54:25 -08:00
2026-01-05 00:42:24 -08:00
2026-01-06 23:37:39 -08:00
2026-01-06 22:32:35 -08:00
2026-01-06 22:32:35 -08:00
2026-01-01 16:01:28 -08:00
2026-01-03 16:11:55 -08:00
2026-01-03 14:33:24 -08:00
2026-01-07 00:06:55 -08:00
2026-01-08 20:25:01 -08:00
2026-01-06 20:32:02 -08:00
2026-01-08 22:10:40 +13:00
2026-01-08 20:06:57 -08:00
2026-01-06 13:33:20 -08:00
2026-01-06 12:59:49 -08:00