diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 55c86c8..a46f218 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.7" + ".": "0.1.8" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 281cdf3..c4fd9d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,234 @@ # Changelog +## [0.1.8](https://github.com/kys0213/belt/compare/v0.1.7...v0.1.8) (2026-03-30) + + +### Features + +* [Gap] Add worktree_preserved column to queue_items table ([#268](https://github.com/kys0213/belt/issues/268)) ([048f4e7](https://github.com/kys0213/belt/commit/048f4e77cedc5753f30119cbb504ac948acb0a9a)) +* [Gap] Implement belt context --field dot notation extraction ([#210](https://github.com/kys0213/belt/issues/210)) ([#246](https://github.com/kys0213/belt/issues/246)) ([8f529fb](https://github.com/kys0213/belt/commit/8f529fb951b341c10d83582da78294f4e88fbdb1)) +* [gap] R-043: Implement belt hitl timeout command ([#155](https://github.com/kys0213/belt/issues/155)) ([ede0144](https://github.com/kys0213/belt/commit/ede01446c260d235f1d4345dc26b5aaf5e8640c3)) +* add cache_read/cache_write token columns to DB ([49cc577](https://github.com/kys0213/belt/commit/49cc577724198623a3681c0cb59ec6c0ef99194e)), closes [#43](https://github.com/kys0213/belt/issues/43) +* **agent:** inject Claw rules system prompt into agent LLM session ([#382](https://github.com/kys0213/belt/issues/382)) ([b1206f9](https://github.com/kys0213/belt/commit/b1206f9c764f7147d4ebc4818677dc251b9b35ec)), closes [#375](https://github.com/kys0213/belt/issues/375) +* Claw 대화형 에이전트 모듈 구현 ([cec6581](https://github.com/kys0213/belt/commit/cec658141c5418e5a289e4ba84727aa6bfca8642)) +* **claw:** collect and display system status on session entry ([#119](https://github.com/kys0213/belt/issues/119)) ([e3c754b](https://github.com/kys0213/belt/commit/e3c754b9bb189b52501de079a566850c2bee59a4)), closes [#116](https://github.com/kys0213/belt/issues/116) +* **claw:** implement /spec slash command plugin for spec decomposition ([#386](https://github.com/kys0213/belt/issues/386)) ([2d7af04](https://github.com/kys0213/belt/commit/2d7af04c8c50dbd75aa4af536e6b17b2c35954ba)) +* **claw:** implement interactive session, workspace overrides, and slash commands ([#89](https://github.com/kys0213/belt/issues/89)) ([6524821](https://github.com/kys0213/belt/commit/6524821281a7c799d59e112cba36d3f07ab0e53e)) +* **cli:** add --field option with dot notation to belt context ([#118](https://github.com/kys0213/belt/issues/118)) ([5ecde15](https://github.com/kys0213/belt/commit/5ecde15a931a4f4d03575efa7fe6d6853eea52dc)), closes [#115](https://github.com/kys0213/belt/issues/115) +* **cli:** add claw workspace init validation to workspace add ([#558](https://github.com/kys0213/belt/issues/558)) ([932f8c2](https://github.com/kys0213/belt/commit/932f8c2298934753841ba2226f96e10edd817880)), closes [#546](https://github.com/kys0213/belt/issues/546) +* **cli:** add countdown display in belt status --format rich ([#648](https://github.com/kys0213/belt/issues/648)) ([af0c40d](https://github.com/kys0213/belt/commit/af0c40db11dae98f86a991c58d145fa2f2f47a87)), closes [#625](https://github.com/kys0213/belt/issues/625) +* **cli:** add R key for manual TUI dashboard refresh ([#634](https://github.com/kys0213/belt/issues/634)) ([731c287](https://github.com/kys0213/belt/commit/731c287306f70abcebf1f5c6e2fd3f38c697f94b)), closes [#624](https://github.com/kys0213/belt/issues/624) +* **cli:** auto-create GitHub issue on belt spec add ([#117](https://github.com/kys0213/belt/issues/117)) ([c2b1e14](https://github.com/kys0213/belt/commit/c2b1e14e427e78856e2bbcff1824cfe17f0c9482)), closes [#114](https://github.com/kys0213/belt/issues/114) +* **cli:** auto-invoke per-workspace cron seed on workspace add ([#195](https://github.com/kys0213/belt/issues/195)) ([#232](https://github.com/kys0213/belt/issues/232)) ([516922d](https://github.com/kys0213/belt/commit/516922d80290dfc36869ff828c1e191f380b83bd)) +* **cli:** auto-seed per-workspace crons on workspace registration ([#432](https://github.com/kys0213/belt/issues/432)) ([1ebbd30](https://github.com/kys0213/belt/commit/1ebbd306a5831d2a54f868b29ded979dbdb65650)), closes [#413](https://github.com/kys0213/belt/issues/413) +* **cli:** complete belt dashboard TUI with item detail overlay and per-workspace kanban view ([#383](https://github.com/kys0213/belt/issues/383)) ([c1139c0](https://github.com/kys0213/belt/commit/c1139c03ee085cad4239374464339ec35a2d611d)), closes [#376](https://github.com/kys0213/belt/issues/376) +* **cli:** complete belt status --format rich output ([#255](https://github.com/kys0213/belt/issues/255)) ([#292](https://github.com/kys0213/belt/issues/292)) ([0a418bb](https://github.com/kys0213/belt/commit/0a418bb83b6b3e55f67893cbdc665f9110507e7c)) +* **cli:** complete bootstrap --create-pr implementation ([#603](https://github.com/kys0213/belt/issues/603)) ([5119369](https://github.com/kys0213/belt/commit/5119369086cdb663049303b11736ae3cae42b717)), closes [#580](https://github.com/kys0213/belt/issues/580) +* **cli:** complete Claw workspace initialization with auto-bootstrap ([#194](https://github.com/kys0213/belt/issues/194)) ([#230](https://github.com/kys0213/belt/issues/230)) ([087e46a](https://github.com/kys0213/belt/commit/087e46a8803189c485e039e99e4f8fddc2fb120e)) +* **cli:** complete spec lifecycle pipeline from decompose to collect ([#660](https://github.com/kys0213/belt/issues/660)) ([cad61d1](https://github.com/kys0213/belt/commit/cad61d182bbab2d342cf6bf41561af060389f546)), closes [#574](https://github.com/kys0213/belt/issues/574) +* **cli:** connect belt agent rules to workspace context injection ([#205](https://github.com/kys0213/belt/issues/205)) ([#242](https://github.com/kys0213/belt/issues/242)) ([31d0745](https://github.com/kys0213/belt/commit/31d074540ecfd9255c18057b87f10ee6a56769a2)) +* **cli:** connect belt hitl list/respond commands to database ([#113](https://github.com/kys0213/belt/issues/113)) ([61383ea](https://github.com/kys0213/belt/commit/61383eaa2c943474472646cc3cce2a29d9e65c11)), closes [#104](https://github.com/kys0213/belt/issues/104) +* **cli:** connect Claw free-form input to belt agent LLM session ([#276](https://github.com/kys0213/belt/issues/276)) ([#307](https://github.com/kys0213/belt/issues/307)) ([2337507](https://github.com/kys0213/belt/commit/2337507499242deb5aa73408d0487c8b8926d1a1)) +* **cli:** connect CLI cron user-defined job runtime ([#212](https://github.com/kys0213/belt/issues/212)) ([#247](https://github.com/kys0213/belt/issues/247)) ([9b903b7](https://github.com/kys0213/belt/commit/9b903b74e01bdf4ee5b338733e1a2802e2725534)) +* **cli:** connect conflict detection HITL generation in spec add handler ([#196](https://github.com/kys0213/belt/issues/196)) ([#239](https://github.com/kys0213/belt/issues/239)) ([e4c5439](https://github.com/kys0213/belt/commit/e4c543984c3d7bd6fb98d1ac8d7c4c75e6207cab)) +* **cli:** force trigger gap_detection on spec update ([#554](https://github.com/kys0213/belt/issues/554)) ([3c6c018](https://github.com/kys0213/belt/commit/3c6c018d53390a1db10fe8b98abf55fd48c657e4)), closes [#544](https://github.com/kys0213/belt/issues/544) +* **cli:** implement /auto slash command plugin for Claude Code integration ([#384](https://github.com/kys0213/belt/issues/384)) ([635956f](https://github.com/kys0213/belt/commit/635956fc0bbc3ad3637ca9f4a8b385c8d3e622c1)), closes [#371](https://github.com/kys0213/belt/issues/371) +* **cli:** implement /claw slash command plugin for natural language agent ([#379](https://github.com/kys0213/belt/issues/379)) ([662948e](https://github.com/kys0213/belt/commit/662948eefe0dd11b385f3dc5e28a31d5304d7669)) +* **cli:** implement auto-generation of GitHub issues from spec decomposition ([#187](https://github.com/kys0213/belt/issues/187)) ([#222](https://github.com/kys0213/belt/issues/222)) ([c750bc2](https://github.com/kys0213/belt/commit/c750bc26fc3a061fb7eb76e8e85fb3f058206616)) +* **cli:** implement belt agent --workspace execution with direct runtime ([#97](https://github.com/kys0213/belt/issues/97)) ([8564206](https://github.com/kys0213/belt/commit/8564206d1b919f4cab6d66c7dde6b3c33d7c6305)) +* **cli:** implement belt agent subcommands (init, rules, edit, plugin, context) ([#661](https://github.com/kys0213/belt/issues/661)) ([6cf64eb](https://github.com/kys0213/belt/commit/6cf64ebec1195bc4b4d6fda895016cecd0a86b41)) +* **cli:** implement belt bootstrap command for .claude/rules generation ([#90](https://github.com/kys0213/belt/issues/90)) ([90e35e9](https://github.com/kys0213/belt/commit/90e35e9952b402f4d0fe4d3109e56d8c03997a54)), closes [#77](https://github.com/kys0213/belt/issues/77) +* **cli:** implement belt hitl show command ([#174](https://github.com/kys0213/belt/issues/174)) ([645eb28](https://github.com/kys0213/belt/commit/645eb2859fc24d7be1ef109fa74a5cb2d2977529)), closes [#141](https://github.com/kys0213/belt/issues/141) +* **cli:** implement belt queue dependency add/remove commands ([#166](https://github.com/kys0213/belt/issues/166)) ([7c40e71](https://github.com/kys0213/belt/commit/7c40e71b5b70e4b413d5371bed83ecb7debfa84d)), closes [#140](https://github.com/kys0213/belt/issues/140) +* **cli:** implement belt queue retry-script command ([#154](https://github.com/kys0213/belt/issues/154)) ([3e3be2b](https://github.com/kys0213/belt/commit/3e3be2bce2b3a1b0bccdbc96c1d5512404959f83)), closes [#134](https://github.com/kys0213/belt/issues/134) +* **cli:** implement belt restart command ([#186](https://github.com/kys0213/belt/issues/186)) ([#221](https://github.com/kys0213/belt/issues/221)) ([f69fd02](https://github.com/kys0213/belt/commit/f69fd023612d2bb73893ccdf040d596bdc067d1f)) +* **cli:** implement belt spec status --format rich ([#201](https://github.com/kys0213/belt/issues/201)) ([#240](https://github.com/kys0213/belt/issues/240)) ([658f788](https://github.com/kys0213/belt/commit/658f788262f200554548d9f81c1751f3d77606a2)) +* **cli:** implement belt spec status --format rich with token aggregation ([#256](https://github.com/kys0213/belt/issues/256)) ([#293](https://github.com/kys0213/belt/issues/293)) ([c0078bb](https://github.com/kys0213/belt/commit/c0078bbafb6ac5663f8749257c3e89ea249d9eee)) +* **cli:** implement belt stop for Windows platform ([#448](https://github.com/kys0213/belt/issues/448)) ([091d315](https://github.com/kys0213/belt/commit/091d315e778ee4b1897f0eb551f4d2ffd6962614)), closes [#443](https://github.com/kys0213/belt/issues/443) +* **cli:** implement bootstrap LLM interactive review and PR creation ([#422](https://github.com/kys0213/belt/issues/422)) ([57890f0](https://github.com/kys0213/belt/commit/57890f02ab32558c68daf963d82394a65f418d81)), closes [#419](https://github.com/kys0213/belt/issues/419) +* **cli:** implement LLM-based convention generation in bootstrap ([#369](https://github.com/kys0213/belt/issues/369)) ([bab78cd](https://github.com/kys0213/belt/commit/bab78cd0e46d6908b199851114ab0c372ba5668b)), closes [#347](https://github.com/kys0213/belt/issues/347) +* **cli:** implement LLM-based spec decomposition with structured GitHub issue creation ([#426](https://github.com/kys0213/belt/issues/426)) ([b1a51ae](https://github.com/kys0213/belt/commit/b1a51ae24dbdf606b3aab578bcef7b44cd245e84)), closes [#410](https://github.com/kys0213/belt/issues/410) +* **cli:** implement remaining CLI command handlers with DB integration ([#95](https://github.com/kys0213/belt/issues/95)) ([0d489f0](https://github.com/kys0213/belt/commit/0d489f02a78f2bd36c8ece7bdcf8c43b39cde3eb)), closes [#60](https://github.com/kys0213/belt/issues/60) +* **cli:** implement rich terminal formatting for belt status output ([#365](https://github.com/kys0213/belt/issues/365)) ([fd1ea39](https://github.com/kys0213/belt/commit/fd1ea3918d01f1d1d97f4784d5b9a17488c23951)) +* **cli:** implement spec acceptance criteria decomposition to issues ([#363](https://github.com/kys0213/belt/issues/363)) ([f8e7e0c](https://github.com/kys0213/belt/commit/f8e7e0cbc54f3ce5c9620730e848cb6fd51c586f)), closes [#337](https://github.com/kys0213/belt/issues/337) +* **cli:** implement spec status linked issues and acceptance criteria display ([#604](https://github.com/kys0213/belt/issues/604)) ([f361056](https://github.com/kys0213/belt/commit/f361056714c699b6a8ac15b820cf54fec99d01ab)), closes [#490](https://github.com/kys0213/belt/issues/490) +* **cli:** implement spec verify, link, and unlink commands ([#557](https://github.com/kys0213/belt/issues/557)) ([3c75f05](https://github.com/kys0213/belt/commit/3c75f0596f774bcc59ae357d94c0507f0a6295d7)), closes [#545](https://github.com/kys0213/belt/issues/545) +* **cli:** implement status --format rich output ([#193](https://github.com/kys0213/belt/issues/193)) ([#229](https://github.com/kys0213/belt/issues/229)) ([be3f931](https://github.com/kys0213/belt/commit/be3f931a0ea437659b98353d285225f192551b02)) +* **cli:** implement TUI HITL overlays and detail panels ([#434](https://github.com/kys0213/belt/issues/434)) ([d4ff4b3](https://github.com/kys0213/belt/commit/d4ff4b33fe415a9fb16337cfcff01b6fb6772384)), closes [#415](https://github.com/kys0213/belt/issues/415) +* **cli:** implement TUI per-workspace view with spec progress ([#206](https://github.com/kys0213/belt/issues/206)) ([#243](https://github.com/kys0213/belt/issues/243)) ([5ed7ea5](https://github.com/kys0213/belt/commit/5ed7ea58f0efa2fa51557b7cccbd43190b0c0593)) +* **cli:** implement TUI workspace tab switching and Board view ([#197](https://github.com/kys0213/belt/issues/197)) ([#231](https://github.com/kys0213/belt/issues/231)) ([5bf85d8](https://github.com/kys0213/belt/commit/5bf85d89d2528386cbe87ff85edb4067af4fa0c9)) +* **cli:** implement workspace update/remove/config commands ([#152](https://github.com/kys0213/belt/issues/152)) ([d503e81](https://github.com/kys0213/belt/commit/d503e8184133c9418c7ea0d162231c94c00f91f0)), closes [#133](https://github.com/kys0213/belt/issues/133) +* **cli:** integrate HITL notification in status output and Claw entry point ([#198](https://github.com/kys0213/belt/issues/198)) ([#234](https://github.com/kys0213/belt/issues/234)) ([00838f6](https://github.com/kys0213/belt/commit/00838f6f8e31d6c39ae3565fac56c4fd7dea731a)) +* **cli:** make belt agent work without --workspace flag ([#657](https://github.com/kys0213/belt/issues/657)) ([df87220](https://github.com/kys0213/belt/commit/df87220b4567a5e9d615b8f1d2eff7b8c4ec3569)), closes [#618](https://github.com/kys0213/belt/issues/618) +* **cli:** register Gemini and Codex agent runtimes in registry ([#192](https://github.com/kys0213/belt/issues/192)) ([#227](https://github.com/kys0213/belt/issues/227)) ([855d59b](https://github.com/kys0213/belt/commit/855d59bead41a13e134a41da7ac8a715d7295ca6)) +* **cli:** validate required sections in belt spec add ([#308](https://github.com/kys0213/belt/issues/308)) ([24fa57f](https://github.com/kys0213/belt/commit/24fa57faed57292feab72c80aa65988bd17ad62c)) +* **cli:** verify and complete belt hitl show command ([#262](https://github.com/kys0213/belt/issues/262)) ([#297](https://github.com/kys0213/belt/issues/297)) ([bd9487c](https://github.com/kys0213/belt/commit/bd9487ce0f28c7a95f36d8f39222f8b8fa2e99db)) +* **core:** add bracket-notation array indexing to extract_field ([#439](https://github.com/kys0213/belt/issues/439)) ([eb9d59e](https://github.com/kys0213/belt/commit/eb9d59ef10ea6c8f62a594e2b57cd2d6d870ea42)), closes [#409](https://github.com/kys0213/belt/issues/409) +* **core:** implement DependencyGuard for spec execution ordering ([#112](https://github.com/kys0213/belt/issues/112)) ([30321c2](https://github.com/kys0213/belt/commit/30321c2957d18c4c7597cd1dc59ba093f800a7de)), closes [#106](https://github.com/kys0213/belt/issues/106) +* **core:** implement multi-spec conflict detection and auto-dependency management ([#184](https://github.com/kys0213/belt/issues/184)) ([#220](https://github.com/kys0213/belt/issues/220)) ([9dfb9fd](https://github.com/kys0213/belt/commit/9dfb9fd43bfcb738eca47122ad01a3d1ca630609)) +* **core:** implement ShellExecutor and DaemonNotifier platform abstraction traits ([#427](https://github.com/kys0213/belt/issues/427)) ([d270c47](https://github.com/kys0213/belt/commit/d270c4756c7c257b8ef0754be031b9e019509dc7)) +* Cron 엔진 구현 ([891cdfd](https://github.com/kys0213/belt/commit/891cdfd2e45f34069d28c7c730ef3e99f5d69b05)) +* **cron:** add BELT_DB env var and per-workspace cron seed generation ([#93](https://github.com/kys0213/belt/issues/93)) ([ab652c1](https://github.com/kys0213/belt/commit/ab652c1c9ed6f543db0b935ef46f06c45b17823b)), closes [#68](https://github.com/kys0213/belt/issues/68) +* **cron:** implement belt cron add/update/pause/resume/remove commands ([#156](https://github.com/kys0213/belt/issues/156)) ([f8162d6](https://github.com/kys0213/belt/commit/f8162d68eec9bbc5e03dce95acc172b6aa8c8db6)), closes [#136](https://github.com/kys0213/belt/issues/136) +* **cron:** implement custom cron job lifecycle (add/pause/resume/trigger) ([#361](https://github.com/kys0213/belt/issues/361)) ([bd59586](https://github.com/kys0213/belt/commit/bd59586d7b5b4a89918db58f5c449dc9e9411f8f)), closes [#335](https://github.com/kys0213/belt/issues/335) +* **cron:** implement knowledge-extract cron job ([#161](https://github.com/kys0213/belt/issues/161)) ([ea41c54](https://github.com/kys0213/belt/commit/ea41c545fbb546f7b8d9d0be9d6aa9e17ee37a65)), closes [#138](https://github.com/kys0213/belt/issues/138) +* **cron:** implement LLM-based knowledge extraction and PR scanning ([#364](https://github.com/kys0213/belt/issues/364)) ([df5e177](https://github.com/kys0213/belt/commit/df5e17721c191f39a41b36e40295f98ecdee64e6)), closes [#340](https://github.com/kys0213/belt/issues/340) +* **cron:** implement substantive daily report generation ([#263](https://github.com/kys0213/belt/issues/263)) ([#295](https://github.com/kys0213/belt/issues/295)) ([fc0c631](https://github.com/kys0213/belt/commit/fc0c631860498ac190b8b1268c308ff69fb154a2)) +* **cron:** implement substantive knowledge extraction from merged PRs ([#362](https://github.com/kys0213/belt/issues/362)) ([7e6b7ff](https://github.com/kys0213/belt/commit/7e6b7ffa7da945a417d8e05be955e70637130da2)), closes [#336](https://github.com/kys0213/belt/issues/336) +* **cron:** improve gap detection from keyword matching to LLM-based analysis ([#366](https://github.com/kys0213/belt/issues/366)) ([d127a1b](https://github.com/kys0213/belt/commit/d127a1be191d9f4befd5221444c717d7f8809e50)), closes [#339](https://github.com/kys0213/belt/issues/339) +* daemon parallel execution, evaluator integration, graceful shutdown ([bb586bb](https://github.com/kys0213/belt/commit/bb586bbfa926fec83c3b2116d765dab544125abf)), closes [#14](https://github.com/kys0213/belt/issues/14) [#16](https://github.com/kys0213/belt/issues/16) [#18](https://github.com/kys0213/belt/issues/18) +* Daemon 병렬실행 + Evaluator 통합 + Graceful Shutdown ([b15eaf4](https://github.com/kys0213/belt/commit/b15eaf49ccabc837c7aa29c735d2db40a5e1c5b0)) +* Daemon 코어 구현 (안전한 상태 전이) ([a1e366c](https://github.com/kys0213/belt/commit/a1e366c5811dcc5bffade4b4fb527068c3150e5b)) +* **daemon:** add gap-detection and knowledge-extraction to workspace cron seeds ([#202](https://github.com/kys0213/belt/issues/202)) ([#241](https://github.com/kys0213/belt/issues/241)) ([6d505a1](https://github.com/kys0213/belt/commit/6d505a11973f2c5b11f9baada9c3bc0038bb9a39)) +* **daemon:** add TransitionEvent logging for on_enter, handler, and evaluate ([#698](https://github.com/kys0213/belt/issues/698)) ([5502254](https://github.com/kys0213/belt/commit/550225451ab29b317293852e8f0da347f5e031c1)), closes [#678](https://github.com/kys0213/belt/issues/678) +* **daemon:** complete graceful shutdown timeout and rollback logic ([#190](https://github.com/kys0213/belt/issues/190)) ([#226](https://github.com/kys0213/belt/issues/226)) ([2341327](https://github.com/kys0213/belt/commit/23413270e663ab6d353aeb188724447d119d18ef)) +* **daemon:** connect gap-detection cron to issue creation pipeline ([#656](https://github.com/kys0213/belt/issues/656)) ([524b324](https://github.com/kys0213/belt/commit/524b3244aff4ebc09860b89edd40da8f3ed071b8)), closes [#573](https://github.com/kys0213/belt/issues/573) +* **daemon:** connect PR feedback collection to queue enqueue ([#111](https://github.com/kys0213/belt/issues/111)) ([c865eb7](https://github.com/kys0213/belt/commit/c865eb71ded8bdac61463f616b6012bc79ff6763)), closes [#107](https://github.com/kys0213/belt/issues/107) +* **daemon:** implement auto-judgment of spec completion ([#183](https://github.com/kys0213/belt/issues/183)) ([#219](https://github.com/kys0213/belt/issues/219)) ([f33309b](https://github.com/kys0213/belt/commit/f33309b566ef68ba94067c3eff985b7e645d5baa)) +* **daemon:** implement automatic worktree cleanup on mark_done ([#189](https://github.com/kys0213/belt/issues/189)) ([#225](https://github.com/kys0213/belt/issues/225)) ([3da1409](https://github.com/kys0213/belt/commit/3da140997270bb20b4438eb5ef0d139c8a504373)) +* **daemon:** implement cron job handlers (HITL timeout, daily report, log cleanup, evaluate) ([#83](https://github.com/kys0213/belt/issues/83)) ([ea26861](https://github.com/kys0213/belt/commit/ea26861df855d17bd1476ab0d541254af038f0dc)), closes [#54](https://github.com/kys0213/belt/issues/54) +* **daemon:** implement evaluate feedback loop with HITL escalation ([#87](https://github.com/kys0213/belt/issues/87)) ([f8ba6a0](https://github.com/kys0213/belt/commit/f8ba6a0a78500200aee3cf321540ad4813438dbe)), closes [#55](https://github.com/kys0213/belt/issues/55) +* **daemon:** implement EvaluateJob execution logic with CronEngine integration ([#385](https://github.com/kys0213/belt/issues/385)) ([f57c3ec](https://github.com/kys0213/belt/commit/f57c3ec0cec251da865b82a06c0e08c11737962c)), closes [#378](https://github.com/kys0213/belt/issues/378) +* **daemon:** implement gap detection and knowledge extraction cron jobs ([#91](https://github.com/kys0213/belt/issues/91)) ([5fe0c13](https://github.com/kys0213/belt/commit/5fe0c131f86df68f09f1707d44ce1fd12280f8ce)), closes [#67](https://github.com/kys0213/belt/issues/67) +* **daemon:** implement gap-detection cron job with spec-code comparison ([#110](https://github.com/kys0213/belt/issues/110)) ([362d4f9](https://github.com/kys0213/belt/commit/362d4f921ca38ecc5ca9e5b2b417b90a58c1a712)), closes [#105](https://github.com/kys0213/belt/issues/105) +* **daemon:** implement graceful shutdown with SIGINT handler ([#81](https://github.com/kys0213/belt/issues/81)) ([8dbc3fe](https://github.com/kys0213/belt/commit/8dbc3fee09f4b62481b56e054c3b5bebed7748c1)), closes [#53](https://github.com/kys0213/belt/issues/53) +* **daemon:** implement graceful shutdown worktree preservation and reuse ([#209](https://github.com/kys0213/belt/issues/209)) ([#245](https://github.com/kys0213/belt/issues/245)) ([d7def96](https://github.com/kys0213/belt/commit/d7def9630cf8a707dc701b6b175c4c3edbd111a8)) +* **daemon:** implement HITL replan action with Claw delegation ([#185](https://github.com/kys0213/belt/issues/185)) ([#233](https://github.com/kys0213/belt/issues/233)) ([8c3bb16](https://github.com/kys0213/belt/commit/8c3bb163e534087619f97fea3fad036dc63ad85e)) +* **daemon:** implement HITL timeout terminal action branching from workspace escalation policy ([#173](https://github.com/kys0213/belt/issues/173)) ([a66e91a](https://github.com/kys0213/belt/commit/a66e91a7271132c5d2b5649deb1caf27db5c4f58)), closes [#137](https://github.com/kys0213/belt/issues/137) +* **daemon:** implement multi-spec conflict detection HITL escalation ([#430](https://github.com/kys0213/belt/issues/430)) ([8a4fc4c](https://github.com/kys0213/belt/commit/8a4fc4c030c9bf5410980040a4721cc0a453c074)), closes [#411](https://github.com/kys0213/belt/issues/411) +* **daemon:** implement retry worktree handoff from preserved item ([#191](https://github.com/kys0213/belt/issues/191)) ([#228](https://github.com/kys0213/belt/issues/228)) ([242bc1d](https://github.com/kys0213/belt/commit/242bc1d77a3e7741304331e740c9313e88882774)) +* **daemon:** implement spec completion HITL approval flow ([#425](https://github.com/kys0213/belt/issues/425)) ([6ed97c7](https://github.com/kys0213/belt/commit/6ed97c72035e7345cc230fbd4908cacaa0ef8eb8)), closes [#417](https://github.com/kys0213/belt/issues/417) +* **daemon:** integrate CronEngine initialization and tick() call ([#94](https://github.com/kys0213/belt/issues/94)) ([c243071](https://github.com/kys0213/belt/commit/c2430719e8568a1e97349d0fd48784c8665a3460)), closes [#74](https://github.com/kys0213/belt/issues/74) +* **daemon:** integrate main loop, evaluate concurrency, and force_trigger ([#79](https://github.com/kys0213/belt/issues/79)) ([4d2b5a7](https://github.com/kys0213/belt/commit/4d2b5a724cb3896d24a0021ce59d71d992ca0ec8)), closes [#57](https://github.com/kys0213/belt/issues/57) +* **daemon:** record token_usage from on_enter and on_fail executions ([#368](https://github.com/kys0213/belt/issues/368)) ([1fc1c5f](https://github.com/kys0213/belt/commit/1fc1c5f7d9b5685100167b7226e4dfd68dc2617c)), closes [#344](https://github.com/kys0213/belt/issues/344) +* **daemon:** save token usage for evaluate and on-done handlers ([#208](https://github.com/kys0213/belt/issues/208)) ([#244](https://github.com/kys0213/belt/issues/244)) ([e366a4c](https://github.com/kys0213/belt/commit/e366a4c9ce16613e89ebbf843be0a6239b7869b0)) +* **daemon:** wire HITL generation paths for conflict detection and spec completion ([#188](https://github.com/kys0213/belt/issues/188)) ([#224](https://github.com/kys0213/belt/issues/224)) ([5193e79](https://github.com/kys0213/belt/commit/5193e792e2f63eca8a5767f368103a7d8e81748c)) +* **dashboard:** add ItemDetail overlay with transition timeline ([#164](https://github.com/kys0213/belt/issues/164)) ([fc059c7](https://github.com/kys0213/belt/commit/fc059c77a7e29377c8ddd9af979c4b410737725a)), closes [#147](https://github.com/kys0213/belt/issues/147) +* **dashboard:** add runtime stats panel with token/duration/model aggregation ([#99](https://github.com/kys0213/belt/issues/99)) ([ec2ba57](https://github.com/kys0213/belt/commit/ec2ba57d438d478f36b698e6cbb5195a28b6f87e)), closes [#78](https://github.com/kys0213/belt/issues/78) +* **dashboard:** implement TUI dashboard, transition events, and spec status ([#96](https://github.com/kys0213/belt/issues/96)) ([21d4c83](https://github.com/kys0213/belt/commit/21d4c8309c0d6a1297e6cdcb917b1651002c2231)), closes [#65](https://github.com/kys0213/belt/issues/65) +* **datasource:** wire DataSource.get_context() in CLI context command ([#250](https://github.com/kys0213/belt/issues/250)) ([#287](https://github.com/kys0213/belt/issues/287)) ([ca38b0b](https://github.com/kys0213/belt/commit/ca38b0b8b90d1fc28e93528ecec2181236590378)) +* **db:** align transition_events schema with spec and implement daemon INSERT ([#367](https://github.com/kys0213/belt/issues/367)) ([7d9c689](https://github.com/kys0213/belt/commit/7d9c68963eb353d8fc20fbcafe974865df5220c5)) +* Display workspace state summary on Claw session entry ([#269](https://github.com/kys0213/belt/issues/269)) ([f6d0263](https://github.com/kys0213/belt/commit/f6d0263b2efdf4d1dc515b439df9b722427f5efd)) +* **dist:** add --yes flag, network check, and improved error handling to install.sh ([#556](https://github.com/kys0213/belt/issues/556)) ([5c27649](https://github.com/kys0213/belt/commit/5c276490408a308db3230a00c8923fa9ed645f7c)), closes [#549](https://github.com/kys0213/belt/issues/549) +* **dist:** add install.sh and install.ps1 installer scripts ([#466](https://github.com/kys0213/belt/issues/466)) ([6d8fe4e](https://github.com/kys0213/belt/commit/6d8fe4e39adbf50ccc4f7affe3560e955ce21008)) +* **gap-detection:** add dedupe guard to prevent duplicate gap issues ([#176](https://github.com/kys0213/belt/issues/176)) ([489a6c0](https://github.com/kys0213/belt/commit/489a6c05b3ef7a931fcac56713ff615acf1cdd31)), closes [#171](https://github.com/kys0213/belt/issues/171) +* Git Worktree 기반 WorktreeManager 구현 ([4f08590](https://github.com/kys0213/belt/commit/4f08590f1de36aa3c1df574d19dd827585932a38)) +* **github:** implement PR feedback loop and review event processing ([#84](https://github.com/kys0213/belt/issues/84)) ([50b0e2b](https://github.com/kys0213/belt/commit/50b0e2b2df2fe28b8bd18621f1233556bb08cad9)), closes [#66](https://github.com/kys0213/belt/issues/66) +* **hitl:** connect spec Completing→Completed transition to HITL workflow ([#321](https://github.com/kys0213/belt/issues/321)) ([#327](https://github.com/kys0213/belt/issues/327)) ([7f8681c](https://github.com/kys0213/belt/commit/7f8681c8477e15699b0ce397a219b9c07d865f4a)) +* **hitl:** implement HITL escalation paths, respond command, and timeout integration ([#92](https://github.com/kys0213/belt/issues/92)) ([bba291a](https://github.com/kys0213/belt/commit/bba291a443868fc501ff2462005d1828763c751c)), closes [#64](https://github.com/kys0213/belt/issues/64) +* **hooks:** add pre-push hooks for cargo validation ([#380](https://github.com/kys0213/belt/issues/380)) ([8797627](https://github.com/kys0213/belt/commit/87976274c71ed3c104470ed506df6120b00b78b3)), closes [#370](https://github.com/kys0213/belt/issues/370) +* implement Claw interactive agent module ([8853769](https://github.com/kys0213/belt/commit/8853769f39a2c3b072a9894ace37e95d0a48d43b)), closes [#17](https://github.com/kys0213/belt/issues/17) +* implement Cron engine (belt-daemon/cron.rs) ([f5c586d](https://github.com/kys0213/belt/commit/f5c586d9d6c53d85a185aa8df6163a8e5459715c)), closes [#9](https://github.com/kys0213/belt/issues/9) +* implement Daemon core with safe state transitions ([1103dd8](https://github.com/kys0213/belt/commit/1103dd87c8e2fc97f5d9f35f99eca736542f4019)), closes [#12](https://github.com/kys0213/belt/issues/12) [#13](https://github.com/kys0213/belt/issues/13) +* implement per-workspace concurrency control ([#267](https://github.com/kys0213/belt/issues/267)) ([24f7690](https://github.com/kys0213/belt/commit/24f7690d5eddffbb91fdf58f823f28b93ab5fecd)) +* implement SQLite persistence layer (belt-infra/db.rs) ([097a69d](https://github.com/kys0213/belt/commit/097a69d8249a30bafd0809c139e685ce702b3510)), closes [#7](https://github.com/kys0213/belt/issues/7) +* implement token usage parsing in ClaudeRuntime ([5d74b70](https://github.com/kys0213/belt/commit/5d74b703c418f4c7c31de27445da8175c6e691b7)), closes [#19](https://github.com/kys0213/belt/issues/19) +* implement WorktreeManager trait and GitWorktreeManager ([348da56](https://github.com/kys0213/belt/commit/348da56d70cca75c930ea8a7777f5a381c690c94)), closes [#15](https://github.com/kys0213/belt/issues/15) +* **infra:** add Gemini and Codex runtime implementations ([#98](https://github.com/kys0213/belt/issues/98)) ([d879666](https://github.com/kys0213/belt/commit/d879666f407397207b04d8f959a0f7d19b5c7766)), closes [#75](https://github.com/kys0213/belt/issues/75) +* **infra:** complete GitHub DataSource context schema and on_fail integration ([#80](https://github.com/kys0213/belt/issues/80)) ([3a332c1](https://github.com/kys0213/belt/commit/3a332c12b7c4cb7b1e56b4efd89b2960a9b0f18e)), closes [#61](https://github.com/kys0213/belt/issues/61) +* **infra:** implement cross-platform IPC for daemon process communication ([#445](https://github.com/kys0213/belt/issues/445)) ([40d36d7](https://github.com/kys0213/belt/commit/40d36d7a494cdd5ce68d05b57a1cba507817822b)), closes [#408](https://github.com/kys0213/belt/issues/408) +* **infra:** implement model resolution priority and structured output ([#85](https://github.com/kys0213/belt/issues/85)) ([f9e68ef](https://github.com/kys0213/belt/commit/f9e68ef4507cca921af1f054f8901233f3d470c0)) +* **infra:** implement PR changes-requested detection in collect loop ([#151](https://github.com/kys0213/belt/issues/151)) ([cde1a21](https://github.com/kys0213/belt/commit/cde1a2115f9276b08e1bfb9b1d078db37d5517ac)), closes [#132](https://github.com/kys0213/belt/issues/132) +* initial project setup — Rust workspace, spec, claude rules ([3499337](https://github.com/kys0213/belt/commit/3499337e45866bffa1018fac390b6a27c5e6e537)) +* port v5 implementation from autodev plugin ([68c7d59](https://github.com/kys0213/belt/commit/68c7d59ae561f1028411fab42838e155754aa4df)) +* port v5 implementation from autodev plugin ([76950cb](https://github.com/kys0213/belt/commit/76950cbefbab89dadb35c89520cd19c859d54627)) +* propagate token usage through executor and record in DB ([0d9f500](https://github.com/kys0213/belt/commit/0d9f500e57d332262dee7f82e016c7e0ebff5234)) +* **queue:** add worktree preservation tracking and on_fail retry guard ([#88](https://github.com/kys0213/belt/issues/88)) ([bfa9d44](https://github.com/kys0213/belt/commit/bfa9d441d7a3cb7a9a8c1b34ca03f17447fcf636)), closes [#56](https://github.com/kys0213/belt/issues/56) +* **spec:** auto-generate GitHub issues from decomposed subtasks ([#251](https://github.com/kys0213/belt/issues/251)) ([#288](https://github.com/kys0213/belt/issues/288)) ([8402061](https://github.com/kys0213/belt/commit/840206165d959a37685e3adc43a52d93f5b3c9d5)) +* **spec:** implement Archived spec state and soft deletion ([#172](https://github.com/kys0213/belt/issues/172)) ([a846b60](https://github.com/kys0213/belt/commit/a846b60c9532777650d4b7e14c1f053164fd06d7)), closes [#131](https://github.com/kys0213/belt/issues/131) +* **spec:** implement belt spec link/unlink/verify commands ([#165](https://github.com/kys0213/belt/issues/165)) ([6c5583c](https://github.com/kys0213/belt/commit/6c5583cbeb04ec1bfd1504a7fc465c8d48ddb99f)), closes [#142](https://github.com/kys0213/belt/issues/142) +* **spec:** implement Completing state in spec lifecycle (R-049) ([#153](https://github.com/kys0213/belt/issues/153)) ([b373f56](https://github.com/kys0213/belt/commit/b373f56a60e459a5c078499020685a2a1177c4bd)), closes [#130](https://github.com/kys0213/belt/issues/130) +* **spec:** implement multi-spec conflict auto-detection ([#162](https://github.com/kys0213/belt/issues/162)) ([cdfc2d1](https://github.com/kys0213/belt/commit/cdfc2d164fbc338749e4e673562c4f8cd11ea919)), closes [#146](https://github.com/kys0213/belt/issues/146) +* **spec:** implement on_spec_completing TestRunner execution flow ([#249](https://github.com/kys0213/belt/issues/249)) ([#286](https://github.com/kys0213/belt/issues/286)) ([b054608](https://github.com/kys0213/belt/commit/b05460891bec19cb1f08ec2ad973fd2beb35219c)) +* **spec:** implement spec decomposition based on acceptance criteria ([#177](https://github.com/kys0213/belt/issues/177)) ([0829116](https://github.com/kys0213/belt/commit/08291163f7b77db1969c64b770346013f8ea7301)), closes [#144](https://github.com/kys0213/belt/issues/144) +* **spec:** implement spec lifecycle with state machine, DB, and CLI commands ([#86](https://github.com/kys0213/belt/issues/86)) ([b32b785](https://github.com/kys0213/belt/commit/b32b785de522b1059a397461e333abb77df6fbe6)), closes [#63](https://github.com/kys0213/belt/issues/63) +* SQLite 영속화 레이어 구현 ([55eeb3d](https://github.com/kys0213/belt/commit/55eeb3de855c8c21b84afcfb1cf87e89a94541f4)) +* **status:** display token usage aggregation in status output ([#596](https://github.com/kys0213/belt/issues/596)) ([c02cc13](https://github.com/kys0213/belt/commit/c02cc13d27297dbfd47d509f08b491b84e836617)), closes [#575](https://github.com/kys0213/belt/issues/575) +* Token usage 기록 구현 (ClaudeRuntime 파싱) ([d0590bf](https://github.com/kys0213/belt/commit/d0590bf57f41b5e460abcbb11400c3e1e07bffb6)) +* token_usage DB에 cache_read/cache_write 컬럼 추가 ([93cde11](https://github.com/kys0213/belt/commit/93cde1160855e18eee961c221b74292684b37397)) +* **tui:** enable RuntimePanel in dashboard layout ([#253](https://github.com/kys0213/belt/issues/253)) ([#290](https://github.com/kys0213/belt/issues/290)) ([0c2f9bb](https://github.com/kys0213/belt/commit/0c2f9bb271fe6fe79e1bf7d8f47c25ca0a08eb46)) +* **tui:** implement DataSource panel with real-time status ([#435](https://github.com/kys0213/belt/issues/435)) ([e483f16](https://github.com/kys0213/belt/commit/e483f16ebb3bb717bb9560d20c0af62ff0de3b66)) +* **tui:** implement DataSource status panel ([#319](https://github.com/kys0213/belt/issues/319)) ([#325](https://github.com/kys0213/belt/issues/325)) ([fe1a335](https://github.com/kys0213/belt/commit/fe1a335ffc0b4677b8c762d43244e1a7c0e1ce6b)) +* **tui:** implement per-workspace view with workspace selector and spec progress ([#289](https://github.com/kys0213/belt/issues/289)) ([283c38c](https://github.com/kys0213/belt/commit/283c38c1b78ef1c7384c8d4306dcfb89fc402ac8)) +* **tui:** implement Scripts execution statistics panel ([#320](https://github.com/kys0213/belt/issues/320)) ([#326](https://github.com/kys0213/belt/issues/326)) ([4a10406](https://github.com/kys0213/belt/commit/4a104062779e5e3bf4c748227eade14af41704a9)) +* **workspace:** create per-workspace Claw directory on workspace add ([#163](https://github.com/kys0213/belt/issues/163)) ([f19fa28](https://github.com/kys0213/belt/commit/f19fa2815318500d45df2241928fb6f95d906287)), closes [#143](https://github.com/kys0213/belt/issues/143) +* **workspace:** implement onboarding flow with DB persistence and cron seeding ([#82](https://github.com/kys0213/belt/issues/82)) ([0e7af09](https://github.com/kys0213/belt/commit/0e7af094e85767952f67e1b3b54382aacfaa9bb0)), closes [#62](https://github.com/kys0213/belt/issues/62) + + +### Bug Fixes + +* accumulate token usage across multi-prompt handler chains ([2df8814](https://github.com/kys0213/belt/commit/2df881403c3aaccf7a025eb325c846dcd5bfb8ab)), closes [#44](https://github.com/kys0213/belt/issues/44) +* add commands/skills dirs to Claw init + safe file preservation ([d304437](https://github.com/kys0213/belt/commit/d30443793508d679d9e5449adc7ae100169f38dc)), closes [#38](https://github.com/kys0213/belt/issues/38) +* add source_id and work_id fields to HistoryEntry ([c2b1742](https://github.com/kys0213/belt/commit/c2b17429d53517dbb6fe4a7fb544b46bbd050f35)), closes [#27](https://github.com/kys0213/belt/issues/27) +* add source_id/work_id to record_history() HistoryEntry init ([bb3ed81](https://github.com/kys0213/belt/commit/bb3ed810fe885124ac7e2a0630ae98b2d54d0cfd)), closes [#42](https://github.com/kys0213/belt/issues/42) +* **ci:** add push trigger with paths filter for release tag creation ([#473](https://github.com/kys0213/belt/issues/473)) ([e7a7409](https://github.com/kys0213/belt/commit/e7a7409d7d723c7f1696b36cbdbe3481b46b0d80)) +* **ci:** add release event trigger for Release Please compatibility ([#469](https://github.com/kys0213/belt/issues/469)) ([00357a2](https://github.com/kys0213/belt/commit/00357a292bd487ee4dd9c9f6ae141d177af8a0b4)) +* **ci:** add skip-labeling to release-please to avoid GraphQL race condition ([#503](https://github.com/kys0213/belt/issues/503)) ([6ff8c21](https://github.com/kys0213/belt/commit/6ff8c21d032238c2fe6433e2bccd67bb4f8a11f1)), closes [#500](https://github.com/kys0213/belt/issues/500) +* **ci:** chain release build from release-please via workflow_call ([#475](https://github.com/kys0213/belt/issues/475)) ([91a9181](https://github.com/kys0213/belt/commit/91a9181e964b240f6a2e1b1ba305e12f14ab599c)) +* **ci:** pass tag_name from release-please to release build workflow ([#477](https://github.com/kys0213/belt/issues/477)) ([cdffefc](https://github.com/kys0213/belt/commit/cdffefcf65a548115d06494f7a49ebf4c3f87110)) +* **ci:** pin release-please-action to commit with release-please 17.3.0 ([#631](https://github.com/kys0213/belt/issues/631)) ([c6161ba](https://github.com/kys0213/belt/commit/c6161ba26c878f3373c98892d15025f2372168b7)), closes [#585](https://github.com/kys0213/belt/issues/585) +* **ci:** update release-please-action SHA to v4.4.0 ([#701](https://github.com/kys0213/belt/issues/701)) ([ea78733](https://github.com/kys0213/belt/commit/ea78733ff0baf86469b010fc4260acedd3b95f8e)), closes [#668](https://github.com/kys0213/belt/issues/668) +* **ci:** use simple release type for workspace compatibility ([#467](https://github.com/kys0213/belt/issues/467)) ([8f9af41](https://github.com/kys0213/belt/commit/8f9af41ddf190927a3dd097a046b9527c401427b)) +* Claw workspace init 디렉토리 추가 + 안전한 파일 보존 ([286e401](https://github.com/kys0213/belt/commit/286e40181452bf7a9070eb967ae17519ab1419c0)) +* **cli:** add missing Ok(()) in Windows terminate_pid block ([#457](https://github.com/kys0213/belt/issues/457)) ([4cc3d06](https://github.com/kys0213/belt/commit/4cc3d064ce838641f6928e515beea2e8da5f958e)) +* **cli:** add worktree cleanup on Done/Skipped transition via CLI ([#659](https://github.com/kys0213/belt/issues/659)) ([1d673d2](https://github.com/kys0213/belt/commit/1d673d22ff0ed7aab86278af35f74f0727d84692)), closes [#495](https://github.com/kys0213/belt/issues/495) +* **cli:** belt queue done should trigger on_done script execution ([#658](https://github.com/kys0213/belt/issues/658)) ([e98d1d0](https://github.com/kys0213/belt/commit/e98d1d08c81ad490cb746e509ec7eaf419dfce27)), closes [#494](https://github.com/kys0213/belt/issues/494) +* **cli:** eliminate test race condition by passing belt_home explicitly ([#505](https://github.com/kys0213/belt/issues/505)) ([2f0486b](https://github.com/kys0213/belt/commit/2f0486bc406612db5f8380dc6c1fd42fd9c01879)), closes [#502](https://github.com/kys0213/belt/issues/502) +* **cli:** read trigger.label from workspace config instead of fixed autopilot:ready ([#647](https://github.com/kys0213/belt/issues/647)) ([2e9c5dc](https://github.com/kys0213/belt/commit/2e9c5dcdce47e952f45c1c2426d00a9e4cf5cd3d)), closes [#621](https://github.com/kys0213/belt/issues/621) +* **cli:** register Gemini and Codex runtimes in build_registry ([#601](https://github.com/kys0213/belt/issues/601)) ([6a1f0de](https://github.com/kys0213/belt/commit/6a1f0de66b2ebe378eff4972ad560ea604297926)), closes [#489](https://github.com/kys0213/belt/issues/489) +* **cli:** resolve BELT_HOME env var race condition in resolve_rules_dir tests ([#447](https://github.com/kys0213/belt/issues/447)) ([b70645e](https://github.com/kys0213/belt/commit/b70645e68f36a26d171ba07f691bae6a1000a6ba)), closes [#446](https://github.com/kys0213/belt/issues/446) +* **cli:** resolve type error in Windows terminate_pid block ([#504](https://github.com/kys0213/belt/issues/504)) ([2b1d667](https://github.com/kys0213/belt/commit/2b1d66718522ef0e2508ac340eae7ce9c96626ce)), closes [#501](https://github.com/kys0213/belt/issues/501) +* **cli:** resolve unreachable-code warning on Windows builds ([#444](https://github.com/kys0213/belt/issues/444)) ([e0f06ff](https://github.com/kys0213/belt/commit/e0f06ff2ed40e2afeb817856249da6b29b4428ea)), closes [#421](https://github.com/kys0213/belt/issues/421) +* **cli:** unify BELT_HOME resolution via belt_home() helper ([#453](https://github.com/kys0213/belt/issues/453)) ([f5b723f](https://github.com/kys0213/belt/commit/f5b723f817b20d647edc9a9dd3d6470d8ed5d736)), closes [#452](https://github.com/kys0213/belt/issues/452) +* **cli:** update resolve_rules_dir Priority 3 path from claw-workspace to agent-workspace ([#655](https://github.com/kys0213/belt/issues/655)) ([7822530](https://github.com/kys0213/belt/commit/7822530aeb1e415e883258ebf15abfe9f98cfdb7)), closes [#623](https://github.com/kys0213/belt/issues/623) +* **cli:** use unique workspace names in resolve_rules_dir tests ([#632](https://github.com/kys0213/belt/issues/632)) ([96da573](https://github.com/kys0213/belt/commit/96da573c739c23f756dd19a34a6667a949be9751)), closes [#587](https://github.com/kys0213/belt/issues/587) +* **cli:** verify belt agent rules loading priority chain is complete ([#428](https://github.com/kys0213/belt/issues/428)) ([3afc1fa](https://github.com/kys0213/belt/commit/3afc1fafef0a5243f1eb7bb0d4bf03bf363cbb1e)) +* **cli:** write daemon.pid on belt start for lifecycle management ([#109](https://github.com/kys0213/belt/issues/109)) ([1bfd45c](https://github.com/kys0213/belt/commit/1bfd45ce83c27449f35485840c24418a9349d5ba)), closes [#103](https://github.com/kys0213/belt/issues/103) +* concurrency 위치 수정 + on_enter 실패 시 escalation 적용 ([e9b7e04](https://github.com/kys0213/belt/commit/e9b7e0409df98f75d006c8a104954fcdccc9ad6b)) +* **core:** add missing state field to IssueContext ([#595](https://github.com/kys0213/belt/issues/595)) ([a39288b](https://github.com/kys0213/belt/commit/a39288b95f38acfb8b88d4c04093582cf6441a0d)), closes [#497](https://github.com/kys0213/belt/issues/497) +* **core:** convert ShellExecutor and TestRunner to async traits ([#689](https://github.com/kys0213/belt/issues/689)) ([51d786c](https://github.com/kys0213/belt/commit/51d786cf5179794343ffa6b1a68e9dffa298452a)), closes [#614](https://github.com/kys0213/belt/issues/614) +* **core:** spec add auto-transitions to Active, allow Completed->Archived ([#593](https://github.com/kys0213/belt/issues/593)) ([f9226bb](https://github.com/kys0213/belt/commit/f9226bb60c85cec565ac731de4b2c165313953ed)), closes [#491](https://github.com/kys0213/belt/issues/491) +* **core:** verify context response includes full history field ([#613](https://github.com/kys0213/belt/issues/613)) ([#688](https://github.com/kys0213/belt/issues/688)) ([3321b48](https://github.com/kys0213/belt/commit/3321b482dfcc0d019d0ce86390e6e0b39be9a3c4)) +* **cron:** add autopilot:ready trigger label to gap-detected issues ([#374](https://github.com/kys0213/belt/issues/374)) ([74686c6](https://github.com/kys0213/belt/commit/74686c6768ad2db644ff60ff8c3a9d11c349ffb3)), closes [#338](https://github.com/kys0213/belt/issues/338) +* **cron:** implement belt agent evaluate subprocess invocation ([#254](https://github.com/kys0213/belt/issues/254)) ([#291](https://github.com/kys0213/belt/issues/291)) ([a2c7a05](https://github.com/kys0213/belt/commit/a2c7a05ce147400743dfdfeab29121541a35b753)) +* **cron:** implement belt cron trigger to persist job state ([#264](https://github.com/kys0213/belt/issues/264)) ([#296](https://github.com/kys0213/belt/issues/296)) ([cd5ac0d](https://github.com/kys0213/belt/commit/cd5ac0deecb0c0174d920179440dd15e39e7c0d4)) +* **cron:** verify workspace cron seed includes gap-detection and knowledge-extraction ([#261](https://github.com/kys0213/belt/issues/261)) ([#294](https://github.com/kys0213/belt/issues/294)) ([00e8c55](https://github.com/kys0213/belt/commit/00e8c55c54e484164c310363d583211ed48c819c)) +* **daemon:** add db() accessor and integration tests for token_usage auto-save ([#423](https://github.com/kys0213/belt/issues/423)) ([3568aa9](https://github.com/kys0213/belt/commit/3568aa90264df48e6a4a06a7d890eb4fb8208e21)), closes [#420](https://github.com/kys0213/belt/issues/420) +* **daemon:** correct graceful shutdown rollback behavior on timeout ([#555](https://github.com/kys0213/belt/issues/555)) ([5940479](https://github.com/kys0213/belt/commit/5940479a256d453a303cc958edeb1a1f96e5959f)), closes [#543](https://github.com/kys0213/belt/issues/543) +* **daemon:** enforce queue_dependencies blocking in advance() ([#706](https://github.com/kys0213/belt/issues/706)) ([5311880](https://github.com/kys0213/belt/commit/531188062a9a8c33519160d2df1b69b40e320b3f)), closes [#616](https://github.com/kys0213/belt/issues/616) +* **daemon:** extend log-cleanup cron to handle HITL/Failed worktree TTL ([#709](https://github.com/kys0213/belt/issues/709)) ([065214a](https://github.com/kys0213/belt/commit/065214a4cd5942d79a5e5c748dbd0ee1c5bb5f24)), closes [#606](https://github.com/kys0213/belt/issues/606) +* **daemon:** HITL respond 'done' should execute on_done script before transition ([#591](https://github.com/kys0213/belt/issues/591)) ([2556f89](https://github.com/kys0213/belt/commit/2556f89a3c6989f44c6777e0ec3e777c9e2b87eb)) +* **daemon:** HITL timeout terminal 'replan' not properly handled ([#589](https://github.com/kys0213/belt/issues/589)) ([f556e4d](https://github.com/kys0213/belt/commit/f556e4d997eee7837ae39434daafbf7b4bc3ecd0)) +* **daemon:** implement per-item LLM evaluation in EvaluateJob cron ([#438](https://github.com/kys0213/belt/issues/438)) ([4545c6f](https://github.com/kys0213/belt/commit/4545c6f9ff5a23a4b550a52e10f0018e28abc985)), closes [#412](https://github.com/kys0213/belt/issues/412) +* **daemon:** inject WORKSPACE and BELT_DB env vars in CustomScriptJob ([#633](https://github.com/kys0213/belt/issues/633)) ([1d9f909](https://github.com/kys0213/belt/commit/1d9f9090b5107d35f4b077aef5cabe3389d8c09b)), closes [#493](https://github.com/kys0213/belt/issues/493) +* **daemon:** replace auth stub functions with real implementation logic in gap_detection test ([#528](https://github.com/kys0213/belt/issues/528)) ([b94f2b3](https://github.com/kys0213/belt/commit/b94f2b33e03da7cf46d7843dda520243ed21caed)), closes [#510](https://github.com/kys0213/belt/issues/510) +* **daemon:** replace hardcoded `/` path separators with PathBuf::join() in cron.rs ([#431](https://github.com/kys0213/belt/issues/431)) ([d026827](https://github.com/kys0213/belt/commit/d0268277eba9b7037fd4f63c3f0b01c59593f9d3)), closes [#418](https://github.com/kys0213/belt/issues/418) +* **daemon:** replace JSON verdict evaluate with CLI direct call ([#588](https://github.com/kys0213/belt/issues/588)) ([1b394e7](https://github.com/kys0213/belt/commit/1b394e76922461027d93ce38bb8fd1a9ca7b4d89)) +* **daemon:** replan max exceeded should transition to Skipped, not Failed ([#590](https://github.com/kys0213/belt/issues/590)) ([f275f07](https://github.com/kys0213/belt/commit/f275f076e4078dd63aac9929f2321cd8464ee698)), closes [#487](https://github.com/kys0213/belt/issues/487) +* **daemon:** resolve belt-daemon compile errors for WorktreeManager/DB interface ([#73](https://github.com/kys0213/belt/issues/73)) ([2b8b895](https://github.com/kys0213/belt/commit/2b8b895493e3b1ced2ceeeb0ac3b22f98d6a62df)), closes [#72](https://github.com/kys0213/belt/issues/72) +* **daemon:** update force_fail_running error message to reflect second SIGINT context ([#592](https://github.com/kys0213/belt/issues/592)) ([ead7f3d](https://github.com/kys0213/belt/commit/ead7f3d8fc297441488639cf5399c980accf2221)), closes [#484](https://github.com/kys0213/belt/issues/484) +* Database 일괄 개선 (Send/Sync, CRUD, token duration, Result) ([7432a49](https://github.com/kys0213/belt/commit/7432a4971cf274e79fed2074af7ec7a2d427f0a8)) +* db.rs batch improvements (Send/Sync, CRUD, token duration, Result) ([2f0e012](https://github.com/kys0213/belt/commit/2f0e0121283952c178c9e2bbd7e9d1313f0e0de0)), closes [#30](https://github.com/kys0213/belt/issues/30) [#31](https://github.com/kys0213/belt/issues/31) [#32](https://github.com/kys0213/belt/issues/32) [#33](https://github.com/kys0213/belt/issues/33) +* **dist:** install.sh --yes flag auto-adds PATH to shell profile ([#594](https://github.com/kys0213/belt/issues/594)) ([3f0fa1e](https://github.com/kys0213/belt/commit/3f0fa1e89244e035c86e054fa1ac84d0c87734a5)), closes [#492](https://github.com/kys0213/belt/issues/492) +* **dist:** move _tmpdir to global scope for trap cleanup ([#471](https://github.com/kys0213/belt/issues/471)) ([5676d91](https://github.com/kys0213/belt/commit/5676d91de5c7352a0efd230e2073513b393d308d)) +* **dist:** redirect installer say() output to stderr ([#479](https://github.com/kys0213/belt/issues/479)) ([6d40754](https://github.com/kys0213/belt/commit/6d407548fa85f19ef1320b529efdcd3c42236096)) +* escalation 정책 terminal 키 파싱 지원 ([48da0ec](https://github.com/kys0213/belt/commit/48da0ec4077561c7c2cb507564e5c9e2bb63c15f)) +* GitHub DataSource clippy 수정 + get_context() 실제 구현 ([40ff3f1](https://github.com/kys0213/belt/commit/40ff3f117305239d282e10d6327a50f3f33553e3)) +* handle non-zero exit code in on_enter failure path ([4f54df9](https://github.com/kys0213/belt/commit/4f54df90b453670673c581156e892df1e35709c6)), closes [#47](https://github.com/kys0213/belt/issues/47) +* HistoryEntry에 source_id, work_id 필드 추가 ([6d584f3](https://github.com/kys0213/belt/commit/6d584f36ede9c002298c9f953ff55acfa52ba8a5)) +* **infra:** enforce scan_interval_secs config in GitHubDataSource ([#635](https://github.com/kys0213/belt/issues/635)) ([db17c11](https://github.com/kys0213/belt/commit/db17c118120681e513a742658afce3707326c3b9)), closes [#620](https://github.com/kys0213/belt/issues/620) +* **infra:** implement worktree reuse on graceful shutdown rollback ([#424](https://github.com/kys0213/belt/issues/424)) ([57378f2](https://github.com/kys0213/belt/commit/57378f2da07ae216294247a66a62c73a8da3878c)), closes [#414](https://github.com/kys0213/belt/issues/414) +* **infra:** include reviews field in fetch_linked_pr gh CLI query ([#636](https://github.com/kys0213/belt/issues/636)) ([508d163](https://github.com/kys0213/belt/commit/508d163d28f58cae19f42ab0d894aa8d98e14cae)), closes [#622](https://github.com/kys0213/belt/issues/622) +* **infra:** persist previous_worktree_path to database for worktree reuse ([#696](https://github.com/kys0213/belt/issues/696)) ([a4f42a1](https://github.com/kys0213/belt/commit/a4f42a1aa1ef709daa45586d42ad95f65806ff99)), closes [#676](https://github.com/kys0213/belt/issues/676) +* move concurrency to workspace root + apply on_enter escalation ([099cc72](https://github.com/kys0213/belt/commit/099cc72e5f6f06c60be97594ecd34149e0de89c5)), closes [#22](https://github.com/kys0213/belt/issues/22) [#23](https://github.com/kys0213/belt/issues/23) +* on_enter 비정상 exit code 처리 추가 ([23fdad2](https://github.com/kys0213/belt/commit/23fdad2b6dd844e02a606e7e66210e3502cb8e50)) +* record_history() 빌드 실패 수정 (source_id/work_id) ([a82dc52](https://github.com/kys0213/belt/commit/a82dc52494dcbbc6b8a18df6464c149bd525295a)) +* resolve clippy collapsible_if and implement real get_context() ([be0cc0a](https://github.com/kys0213/belt/commit/be0cc0a9bc69f1b6ad71d1d92c534c2f008a101b)), closes [#21](https://github.com/kys0213/belt/issues/21) [#25](https://github.com/kys0213/belt/issues/25) +* resolve merge conflicts and integrate safe state transitions ([ad96913](https://github.com/kys0213/belt/commit/ad96913c98efa992b96eac30183804da0f083f66)) +* support 'terminal' key in escalation policy YAML ([a6ce97c](https://github.com/kys0213/belt/commit/a6ce97c262305b4b705d5d104ac9a38cc801641a)), closes [#24](https://github.com/kys0213/belt/issues/24) +* **test:** resolve belt-cli test compile errors for WorkspaceConfig and StatusOutput ([#129](https://github.com/kys0213/belt/issues/129)) ([e86ef42](https://github.com/kys0213/belt/commit/e86ef426d195051193ccf1c6536bcdbd69d19646)), closes [#122](https://github.com/kys0213/belt/issues/122) +* 다중 prompt handler chain에서 token usage 누적 합산 ([7cfdf8e](https://github.com/kys0213/belt/commit/7cfdf8e49f14b4d1a7bf88b474f758dc6f7f6137)) + ## [0.1.7](https://github.com/kys0213/belt/compare/v0.1.6...v0.1.7) (2026-03-30) diff --git a/Cargo.toml b/Cargo.toml index 1eae998..9f8c06e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ members = [ ] [workspace.package] -version = "0.1.7" +version = "0.1.8" edition = "2024" license = "Apache-2.0" repository = "https://github.com/kys0213/belt"