1704 Commits
Author SHA1 Message Date
Hare 159704dc6f fix: clear encrypted-only thinking snapshots 2026-06-25 20:28:51 +09:00
Hare 6492f10f42 test: update pod prompt expectations 2026-06-25 18:43:57 +09:00
Hare a525ba4d01 merge: plugin runtime implementation chain 2026-06-25 18:18:14 +09:00
Hare c261aea021 ticket: mark plugin pdk service events done 2026-06-25 16:57:31 +09:00
Hare 8d4fee231b merge: 00001KVXK0WEA plugin pdk service events 2026-06-25 16:55:35 +09:00
Hare 307d38453f ticket: approve plugin pdk service events 2026-06-25 16:55:35 +09:00
Hare d2a8a79ac6 ticket: record plugin pdk template fix 2026-06-25 16:53:19 +09:00
Hare 6c8998878d fix: declare plugin service websocket authority 2026-06-25 16:52:20 +09:00
Hare 41283c8dd9 ticket: request plugin pdk template fix 2026-06-25 16:44:57 +09:00
Hare fa29cc2c95 ticket: record plugin pdk implementation report 2026-06-25 16:38:53 +09:00
Hare 7a4fd97526 feat: update plugin service authoring templates 2026-06-25 16:37:37 +09:00
Hare 103077dfae ticket: record plugin pdk coder start 2026-06-25 16:09:47 +09:00
Hare cd2006305e ticket: accept plugin pdk service events task 2026-06-25 16:08:53 +09:00
Hare a453c6e2da ticket: route plugin pdk service events task 2026-06-25 16:08:34 +09:00
Hare 16247ce7c5 ticket: mark plugin websocket driver done 2026-06-25 16:06:42 +09:00
Hare b9e786e106 merge: 00001KVXK0WE4 plugin websocket driver 2026-06-25 16:03:57 +09:00
Hare ccd4d83d43 ticket: approve plugin websocket driver 2026-06-25 16:03:57 +09:00
Hare 3a9ac1b1b7 ticket: record plugin websocket implementation report 2026-06-25 15:56:44 +09:00
Hare f2c51ffe39 feat: add plugin websocket service driver 2026-06-25 15:54:36 +09:00
Hare ef17955369 ticket: record plugin websocket coder start 2026-06-25 15:24:27 +09:00
Hare 62e467c035 ticket: accept plugin websocket driver task 2026-06-25 15:23:25 +09:00
Hare 4950749c5d ticket: route plugin websocket driver task 2026-06-25 15:22:55 +09:00
Hare dc2f8b409d ticket: mark plugin output commands done 2026-06-25 15:20:33 +09:00
Hare d2aa92a729 merge: 00001KVXK0WDX plugin output commands 2026-06-25 15:18:43 +09:00
Hare 86017a5abc ticket: approve plugin output commands 2026-06-25 15:18:43 +09:00
Hare 799998639a ticket: record plugin output implementation report 2026-06-25 15:13:08 +09:00
Hare 755d460f0d feat: add plugin service output commands 2026-06-25 15:11:30 +09:00
Hare 07f9793bc6 ticket: record plugin output coder start 2026-06-25 14:47:52 +09:00
Hare 89a40db79e ticket: accept plugin output command task 2026-06-25 14:46:54 +09:00
Hare 84a8423611 ticket: route plugin output command task 2026-06-25 14:46:20 +09:00
Hare 8e79c1dc96 ticket: mark plugin service lifecycle done 2026-06-25 06:51:18 +09:00
Hare 000afbbe19 merge: 00001KVXK0WDQ plugin service lifecycle 2026-06-25 06:49:43 +09:00
Hare db1a2f567b ticket: approve plugin service lifecycle 2026-06-25 06:49:43 +09:00
Hare bdd05dce4d ticket: record plugin service implementation report 2026-06-25 06:44:06 +09:00
Hare 4e138b7e36 feat: add plugin service ingress queue 2026-06-25 06:42:56 +09:00
Hare 1839acb3d0 ticket: record plugin service coder start 2026-06-25 06:24:15 +09:00
Hare f26c7e0d09 ticket: accept plugin service lifecycle task 2026-06-25 06:23:22 +09:00
Hare 437ef5b56b ticket: route plugin service lifecycle task 2026-06-25 06:23:06 +09:00
Hare 7d64b443f2 ticket: mark plugin manifest rejection done 2026-06-25 06:20:51 +09:00
Hare 449745ee24 merge: 00001KVXK0WDH plugin manifest rejection 2026-06-25 06:19:01 +09:00
Hare e66efc746f ticket: approve plugin manifest rejection 2026-06-25 06:19:01 +09:00
Hare 436bcc812d ticket: record plugin manifest rejection report 2026-06-25 06:12:05 +09:00
Hare 6086099fe4 feat: reject legacy plugin runtime manifests 2026-06-25 06:11:03 +09:00
Hare 390f468471 ticket: record plugin manifest coder start 2026-06-25 05:54:51 +09:00
Hare ef1d8d9af2 ticket: accept plugin manifest rejection task 2026-06-25 05:53:53 +09:00
Hare ceb7b95096 ticket: route plugin manifest rejection 2026-06-25 05:53:14 +09:00
Hare 237c985f2c ticket: correct legacy wasm merge record 2026-06-25 05:51:08 +09:00
Hare 66c5be16f8 ticket: mark legacy wasm removal done 2026-06-25 05:50:51 +09:00
Hare bedbb670e4 merge: 00001KVXK0WD3 legacy wasm removal 2026-06-25 05:49:01 +09:00
Hare 0591fd528c ticket: approve legacy wasm removal 2026-06-25 05:49:01 +09:00
Hare 19ff3724ed ticket: record legacy wasm removal report 2026-06-25 05:43:58 +09:00
Hare 741d71327a refactor: remove legacy wasm plugin runtime 2026-06-25 05:42:52 +09:00
Hare 27117f3246 ticket: record legacy wasm coder start 2026-06-25 05:15:02 +09:00
Hare 1b5a39dbc9 ticket: accept legacy wasm removal task 2026-06-25 05:14:13 +09:00
Hare f65f0e3b8f ticket: route plugin runtime cleanup chain 2026-06-25 05:13:59 +09:00
Hare e2df9f9493 ticket: queue 00001KVXK0WEA 2026-06-25 05:12:05 +09:00
Hare 959b497135 ticket: queue 00001KVXK0WE4 2026-06-25 05:12:03 +09:00
Hare ef08b873ce ticket: queue 00001KVXK0WDX 2026-06-25 05:12:02 +09:00
Hare 2f975808bb ticket: queue 00001KVXK0WDQ 2026-06-25 05:12:00 +09:00
Hare 273f10e954 ticket: queue 00001KVXK0WDH 2026-06-25 05:11:58 +09:00
Hare f349738257 ticket: queue 00001KVXK0WD3 2026-06-25 05:11:56 +09:00
Hare 577bf75051 ticket: split plugin runtime redesign 2026-06-25 04:56:03 +09:00
Hare 79df31ccf6 ticket: return plugin runtime redesign to planning 2026-06-25 04:40:59 +09:00
Hare 72812878c0 ticket: queue 00001KVXHVCR5 2026-06-25 04:39:36 +09:00
Hare cea115ecd9 merge: sync orchestration before queue 00001KVXHVCR5 2026-06-25 04:39:36 +09:00
Hare 4c3b15d8d6 ticket: plan plugin wasm runtime redesign 2026-06-25 04:39:33 +09:00
Hare 45d21ac032 ticket: mark backend orchestrator design done 2026-06-25 04:15:48 +09:00
Hare 4e713fce19 merge: 00001KVWSQM22 backend orchestrator design 2026-06-25 04:15:14 +09:00
Hare 428b7d0fef ticket: approve backend orchestrator design 2026-06-25 04:15:14 +09:00
Hare 5ddc8dceac ticket: record backend orchestrator design report 2026-06-25 04:12:38 +09:00
Hare f901b9bee3 docs: design backend internal orchestrator runtime 2026-06-25 04:11:47 +09:00
Hare 2f9604a12f ticket: record backend orchestrator coder start 2026-06-25 04:08:16 +09:00
Hare 893122781d ticket: accept backend orchestrator runtime plan 2026-06-25 04:07:16 +09:00
Hare f367d73231 ticket: queue 00001KVWSQM22 2026-06-25 04:04:55 +09:00
Hare 5fa480904d merge: sync orchestration before queue 00001KVWSQM22 2026-06-25 04:04:55 +09:00
Hare 0618de21eb ticket: plan backend internal orchestrator 2026-06-25 03:49:58 +09:00
Hare d5012d3e16 ticket: mark cleanup cli done 2026-06-24 21:36:19 +09:00
Hare 28d53aadf2 nix: update yoi cleanup cargo hash 2026-06-24 21:35:28 +09:00
Hare 4fb75ec324 merge: 00001KVWPVHFJ storage cleanup cli
# Conflicts:
#	.yoi/tickets/00001KVWPVHFJ/item.md
#	.yoi/tickets/00001KVWPVHFJ/thread.md
2026-06-24 21:30:57 +09:00
Hare 091ee764a4 ticket: approve cleanup cli implementation 2026-06-24 21:30:49 +09:00
Hare 439f967cb8 chore: record cleanup cli implementation report 2026-06-24 21:22:58 +09:00
Hare 80d6861aba feat: add pod and session cleanup CLI 2026-06-24 21:22:19 +09:00
Hare d2ec533585 ticket: mark thinking grouping done 2026-06-24 21:20:15 +09:00
Hare b52b7c963c merge: 00001KVWPW3KX thinking grouping
# Conflicts:
#	.yoi/tickets/00001KVWPW3KX/item.md
#	.yoi/tickets/00001KVWPW3KX/thread.md
2026-06-24 21:19:16 +09:00
Hare 89910a1a29 ticket: approve thinking grouping implementation 2026-06-24 21:18:56 +09:00
Hare 7ee2b78bbb ticket: report thinking grouping implementation 2026-06-24 21:14:43 +09:00
Hare 0b2ce6ca1f tui: group consecutive thinking blocks 2026-06-24 21:14:06 +09:00
Hare bca8ba6ed9 ticket: record ui and cleanup coder starts 2026-06-24 21:05:18 +09:00
Hare 5c9331e848 ticket: accept queued ui and cleanup tasks 2026-06-24 21:04:13 +09:00
Hare bb6bc9f6a1 ticket: queue 00001KVWPVHFJ 2026-06-24 21:01:42 +09:00
Hare 845817d3bf ticket: queue 00001KVWPW3KX 2026-06-24 21:01:41 +09:00
Hare 1d98921a45 merge: sync orchestration before queue 00001KVWPW3KX 2026-06-24 21:01:41 +09:00
Hare 7ede927d5a ticket: add pod cleanup and thinking aggregation plans 2026-06-24 20:57:23 +09:00
Hare 6081448a7e fix: trace codex requests and clear reasoning snapshots 2026-06-24 20:37:42 +09:00
Hare 70162d5001 ticket: mark worker registry done 2026-06-24 20:15:18 +09:00
Hare b975812c18 nix: update yoi cargo hash 2026-06-24 20:14:41 +09:00
Hare 1251c0ca70 merge: 00001KVWECEQG worker runtime registry 2026-06-24 20:11:00 +09:00
Hare dd40c41f45 ticket: approve worker registry implementation 2026-06-24 20:11:00 +09:00
Hare 428d255b27 ticket: record worker registry fixes 2026-06-24 20:09:08 +09:00
Hare 38d25582b2 fix: make worker runtime ids resolvable 2026-06-24 20:08:23 +09:00
Hare cdc0a5da33 ticket: request worker registry changes 2026-06-24 20:01:52 +09:00
Hare c96cc49d0a ticket: record worker registry implementation report 2026-06-24 19:57:10 +09:00
Hare 9bd1550715 feat: add worker runtime registry overview 2026-06-24 19:56:08 +09:00
Hare 81fa035a1c ticket: record worker registry orchestration start 2026-06-24 19:38:55 +09:00
Hare 371fd7c6e5 ticket: accept worker runtime registry task 2026-06-24 19:37:58 +09:00
Hare d231f41300 ticket: mark worker runtime spawn done 2026-06-24 19:35:06 +09:00
Hare 97555bb5a1 merge: 00001KVTNAY20 worker runtime spawn 2026-06-24 19:33:35 +09:00
Hare d62ab6e1de docs: record worker runtime implementation report 2026-06-24 19:26:14 +09:00
Hare 217a4828d7 feat: abstract worker runtime spawn boundary 2026-06-24 19:24:18 +09:00
Hare bc2b8513f7 ticket: defer worker runtime registry routing 2026-06-24 18:24:57 +09:00
Hare 73122c10fd ticket: queue 00001KVWECEQG 2026-06-24 18:22:55 +09:00
Hare b84db7fac7 merge: orchestration branch 2026-06-24 18:21:37 +09:00
Hare 911df3df77 ticket: mark worker runtime registry ready 2026-06-24 18:21:37 +09:00
Hare acf1f5fb53 ticket: plan worker runtime registry 2026-06-24 18:12:39 +09:00
Hare 1044b39c3f ticket: plan ticket management api ui 2026-06-24 04:42:37 +09:00
Hare a729d68600 ticket: record coder startup blocker 2026-06-24 04:33:52 +09:00
Hare b83886554f ticket: record worker runtime orchestration start 2026-06-24 04:32:02 +09:00
Hare 5a8bcebdf4 ticket: accept worker runtime spawn task 2026-06-24 04:27:45 +09:00
Hare a479d3e32d ticket: queue 00001KVTNAY20 2026-06-24 04:25:09 +09:00
Hare f399d7383c ticket: mark worker spawn abstraction ready 2026-06-24 04:25:09 +09:00
Hare e8e019eb76 fix: keep initialized ticket directory 2026-06-24 03:26:22 +09:00
Hare 3c2fd5d760 ticket: separate pod launch from orchestration 2026-06-24 03:15:07 +09:00
Hare 1ca5663298 fix: harden StopPod registry cleanup 2026-06-24 00:23:10 +09:00
Hare b28d64c3c6 ticket: close 00001KVSMJJNV 2026-06-23 22:56:21 +09:00
Hare 76c800542c merge: 00001KVSMJJNV paused ctrl-x cancel 2026-06-23 22:54:38 +09:00
Hare cca073f8aa ticket: approve 00001KVSMJJNV implementation 2026-06-23 22:53:20 +09:00
Hare c0f4c184ca ticket: report 00001KVSMJJNV review fix 2026-06-23 22:49:40 +09:00
Hare 8c8fb01426 fix: log paused cancel lifecycle explicitly 2026-06-23 22:48:21 +09:00
Hare 052408392d ticket: update 00001KVSMJJNV review metadata 2026-06-23 22:43:05 +09:00
Hare cfb215ab0c ticket: review 00001KVSMJJNV changes 2026-06-23 22:42:52 +09:00
Hare 3501e0dffe ticket: update 00001KVSMJJNV metadata 2026-06-23 22:38:06 +09:00
Hare af683af2d2 ticket: report 00001KVSMJJNV implementation 2026-06-23 22:38:01 +09:00
Hare 90b1a1fccb tui: cancel paused turns with ctrl-x 2026-06-23 22:37:40 +09:00
Hare 5954021cc5 ticket: accept 00001KVSMJJNV 2026-06-23 22:21:56 +09:00
Hare 108088d811 ticket: queue 00001KVSMJJNV 2026-06-23 17:41:00 +09:00
Hare ca2ad18ded merge: sync orchestration before queue 00001KVSMJJNV 2026-06-23 17:41:00 +09:00
Hare d2e6a2a1a7 ui: simplify workspace sidebar identity 2026-06-23 16:56:00 +09:00
Hare e275a80f4c ticket: close workspace identity 2026-06-23 16:39:16 +09:00
Hare 2745f3d516 merge: workspace identity persistence 2026-06-23 16:35:17 +09:00
Hare 8f7b87a29e ticket: record workspace identity approval 2026-06-23 16:35:13 +09:00
Hare 2a7b659be4 ticket: restart workspace identity review 2026-06-23 16:31:38 +09:00
Hare 3dd680683c ticket: record workspace identity fix 2026-06-23 16:30:50 +09:00
Hare 49c9e19074 fix: return persisted workspace identity 2026-06-23 16:29:48 +09:00
Hare ddd2f86e26 ticket: reroute workspace identity fixes 2026-06-23 16:25:39 +09:00
Hare fac79dc962 ticket: request workspace identity changes 2026-06-23 16:25:03 +09:00
Hare 71a39002fb ticket: close dashboard selection 2026-06-23 16:24:24 +09:00
Hare 58904c441a merge: dashboard no auto selection 2026-06-23 16:23:16 +09:00
Hare 1e812b793b ticket: record dashboard selection review 2026-06-23 16:23:11 +09:00
Hare ff8aa6bcbf ticket: start dashboard selection review 2026-06-23 16:16:42 +09:00
Hare 2b213a8add ticket: record dashboard selection implementation 2026-06-23 16:15:59 +09:00
Hare 021aca8d5e ticket: start workspace identity review 2026-06-23 16:14:48 +09:00
Hare 21b14ba440 ticket: record workspace identity implementation 2026-06-23 16:13:56 +09:00
Hare 5c242d9620 fix: keep dashboard row selection explicit 2026-06-23 16:13:37 +09:00
Hare 31565c9b9e feat: persist workspace identity 2026-06-23 16:12:39 +09:00
Hare 99f31e0055 ticket: start workspace identity and selection work 2026-06-23 15:51:53 +09:00
Hare 4cda83b748 ticket: accept workspace identity and selection work 2026-06-23 15:50:36 +09:00
Hare 13e76d3544 ticket: queue 00001KVSKGDYS 2026-06-23 15:47:18 +09:00
Hare 85b6d9f027 ticket: queue 00001KVSKJ0EA 2026-06-23 15:47:17 +09:00
Hare 8daf9eacb7 merge: sync orchestration before queue 00001KVSKJ0EA 2026-06-23 15:47:17 +09:00
Hare 48672e4317 fix: canonicalize workspace server root 2026-06-23 15:47:11 +09:00
Hare eb998f0ad4 ticket: add workspace identity initialization 2026-06-23 15:44:29 +09:00
Hare 9cbb5b9b71 ticket: record dashboard hint cleanup cleanup 2026-06-23 15:33:30 +09:00
Hare 108666664a ticket: complete dashboard hint cleanup 2026-06-23 15:32:57 +09:00
Hare 5abf16f9e6 merge: dashboard hint cleanup 2026-06-23 15:31:31 +09:00
Hare 78c98a34d1 ticket: approve dashboard hint cleanup 2026-06-23 15:31:31 +09:00
Hare 68f1ddbd5a ticket: start dashboard hint cleanup review 2026-06-23 15:29:26 +09:00
Hare 71284cdc92 ticket: record dashboard hint cleanup implementation 2026-06-23 15:28:24 +09:00
Hare 03ad525fcc tui: trim dashboard redundant hints 2026-06-23 15:27:04 +09:00
Hare af9e940873 ticket: record protocol ts cleanup 2026-06-23 15:22:07 +09:00
Hare b547203fde ticket: complete protocol ts generation 2026-06-23 15:21:30 +09:00
Hare 9728b533b4 merge: protocol typescript generation 2026-06-23 15:17:09 +09:00
Hare 9c4d1559fd ticket: approve protocol ts generation 2026-06-23 15:17:09 +09:00
Hare e0ec8ce78a ticket: record kanban lazy rows cleanup 2026-06-23 15:16:19 +09:00
Hare 9de04f7266 ticket: complete kanban lazy rows 2026-06-23 15:15:33 +09:00
Hare eea26f9174 merge: kanban lazy rows 2026-06-23 15:13:43 +09:00
Hare 0b1e9fdc5b ticket: approve kanban lazy rows 2026-06-23 15:13:43 +09:00
Hare 277af3dec3 ticket: start dashboard hint cleanup 2026-06-23 15:13:01 +09:00
Hare 3bfd1ca07d ticket: accept dashboard hint cleanup 2026-06-23 15:11:48 +09:00
Hare 0e635ba6b4 ticket: start protocol ts review 2026-06-23 15:10:38 +09:00
Hare 017ac70876 ticket: record protocol ts generation 2026-06-23 15:09:50 +09:00
Hare 5428837605 ticket: queue 00001KVSFXY88 2026-06-23 15:08:42 +09:00
Hare 87482df956 merge: sync orchestration before queue 00001KVSFXY88 2026-06-23 15:08:42 +09:00
Hare a13fb6933b protocol: generate workspace TypeScript types 2026-06-23 15:08:22 +09:00
Hare d775e09688 ticket: update workspace web tickets 2026-06-23 15:07:46 +09:00
Hare f1ab40bf01 ticket: start kanban lazy rows review 2026-06-23 15:06:57 +09:00
Hare c92bc447cc ticket: record kanban lazy rows implementation 2026-06-23 15:06:11 +09:00
Hare 6f68bb8d95 web: group repository ticket kanban rows 2026-06-23 15:04:03 +09:00
Hare f39127b752 ticket: start kanban lazy rows 2026-06-23 14:55:34 +09:00
Hare a6f9019edd ticket: accept kanban lazy rows 2026-06-23 14:54:43 +09:00
Hare 2865abb65a ticket: queue 00001KVSGFM65 2026-06-23 14:53:22 +09:00
Hare f6eb11e567 merge: sync orchestration before queue 00001KVSGFM65 2026-06-23 14:53:22 +09:00
Hare ee750363d2 ticket: add workspace kanban improvement 2026-06-23 14:51:34 +09:00
Hare d8f467e30f ticket: start protocol ts generation 2026-06-23 14:42:24 +09:00
Hare 746c51c701 ticket: accept protocol ts generation 2026-06-23 14:41:34 +09:00
Hare f9ca777afe ticket: queue 00001KVSEBF56 2026-06-23 14:40:01 +09:00
Hare 4189b80004 ticket: add protocol type generation work 2026-06-23 14:14:17 +09:00
Hare 6013048f68 merge: orchestration 2026-06-22 20:15:48 +09:00
Hare 1d626cdea6 ui: refine workspace web layout 2026-06-22 20:03:54 +09:00
Hare 615c02501a ticket: record workspace schema cleanup 2026-06-22 18:27:16 +09:00
Hare 7a7891d467 ticket: complete workspace db schema v0 2026-06-22 18:26:32 +09:00
Hare 38bd122dd0 merge: workspace db schema v0 2026-06-22 18:24:14 +09:00
Hare 9c0c7badcf ticket: approve workspace db schema v0 2026-06-22 18:24:14 +09:00
Hare c3798559d2 ticket: record workspace schema migration fix 2026-06-22 18:18:37 +09:00
Hare d89ace5b9c workspace: canonicalize legacy workspaces 2026-06-22 18:17:21 +09:00
Hare 1994d2d668 ticket: request changes on workspace schema migration 2026-06-22 18:13:17 +09:00
Hare 1c3ec71361 ticket: start workspace db schema review 2026-06-22 18:03:59 +09:00
Hare e7333f2e4d ticket: record workspace db schema implementation 2026-06-22 18:03:09 +09:00
Hare 5149ab703f workspace: implement db schema v0 bootstrap 2026-06-22 18:01:38 +09:00
Hare 1e0f2158ba ticket: start workspace db schema v0 2026-06-22 17:51:17 +09:00
Hare f17a458a04 ticket: accept workspace db schema v0 2026-06-22 17:50:22 +09:00
Hare 5f06af81cb ticket: queue 00001KVNKD56W 2026-06-22 17:48:39 +09:00
Hare 8407ce22b4 merge: sync orchestration before queue 00001KVNKD56W 2026-06-22 17:48:39 +09:00
Hare c6ddff159f docs: design workspace db schema v0 2026-06-22 17:48:37 +09:00
Hare b7c890d3f6 ticket: record repository objective cleanup 2026-06-22 02:31:56 +09:00
Hare 4b1f1e593d ticket: complete repository objective pages 2026-06-22 02:31:21 +09:00
Hare 7ee702b162 merge: repository objective pages 2026-06-22 02:30:17 +09:00
Hare 680b2a4160 ticket: approve repository objective pages 2026-06-22 02:30:17 +09:00
Hare 076c504640 ticket: start repository objective review 2026-06-22 02:24:06 +09:00
Hare 2c76675110 ticket: record repository objective implementation 2026-06-22 02:23:23 +09:00
Hare ceb1ee3b56 feat: add repository objective pages 2026-06-22 02:21:51 +09:00
Hare de43209643 ticket: start repository objective pages 2026-06-22 02:03:46 +09:00
Hare 0f7e78c164 ticket: accept repository objective pages 2026-06-22 02:03:04 +09:00
Hare eb2e5907ea ticket: record workspace sidebar cleanup 2026-06-22 02:01:56 +09:00
Hare c29eba0c70 ticket: complete workspace sidebar 2026-06-22 02:01:22 +09:00
Hare 613f412659 merge: workspace sidebar navigation 2026-06-22 02:00:22 +09:00
Hare 5d55e47e9b ticket: approve workspace sidebar 2026-06-22 02:00:22 +09:00
Hare 8066f71b51 ticket: start sidebar review 2026-06-22 01:54:57 +09:00
Hare 5ad588f059 ticket: record sidebar conflict resolution 2026-06-22 01:54:16 +09:00
Hare 4ab696b434 Merge branch 'orchestration' into impl/00001KVNG9B9Z-workspace-sidebar
# Conflicts:
#	web/workspace/src/routes/+page.svelte
2026-06-22 01:52:53 +09:00
Hare d3b8bdfddc feat: add workspace sidebar skeleton 2026-06-22 01:45:46 +09:00
Hare a607a1f20d ticket: defer repository pages behind sidebar 2026-06-22 01:41:16 +09:00
Hare 520209f38c ticket: queue 00001KVNGJPRG 2026-06-22 01:40:36 +09:00
Hare ae2d80ba5a merge: sync orchestration before queue 00001KVNGJPRG 2026-06-22 01:40:35 +09:00
Hare 8652041855 ticket: add repository objective pages 2026-06-22 01:40:33 +09:00
Hare 04f15623f2 ticket: record workspace host worker cleanup 2026-06-22 01:39:51 +09:00
Hare a4ed5fb082 ticket: complete workspace host workers 2026-06-22 01:39:21 +09:00
Hare c884d51702 merge: workspace host workers 2026-06-22 01:38:12 +09:00
Hare ea47e54399 ticket: approve workspace host workers 2026-06-22 01:38:12 +09:00
Hare d953049d7d ticket: start workspace sidebar work 2026-06-22 01:37:40 +09:00
Hare 2c7ef24a29 ticket: accept workspace sidebar ui 2026-06-22 01:36:58 +09:00
Hare 48c09fd709 ticket: queue 00001KVNG9B9Z 2026-06-22 01:35:06 +09:00
Hare 6ebe4f7752 merge: sync orchestration before queue 00001KVNG9B9Z 2026-06-22 01:35:06 +09:00
Hare d4de8e26ce ticket: start workspace host worker review 2026-06-22 01:32:27 +09:00
Hare 42c9e9144c ticket: record workspace host worker implementation 2026-06-22 01:31:54 +09:00
Hare 06a9f2f5fd ticket: add workspace sidebar UI 2026-06-22 01:30:58 +09:00
Hare 58143ead83 feat: expose workspace hosts and workers 2026-06-22 01:30:48 +09:00
Hare b193e3e088 ticket: start workspace host workers 2026-06-22 01:11:53 +09:00
Hare e1f02ffca3 ticket: accept workspace host workers 2026-06-22 01:10:56 +09:00
Hare bd5f2b75c3 ticket: queue 00001KVNEKH9Q 2026-06-22 01:09:10 +09:00
Hare 2bad74046e merge: integrate orchestration branch 2026-06-22 01:06:48 +09:00
Hare dfbfd6ed82 dev: add workspace web hot reload setup 2026-06-22 01:06:37 +09:00
Hare de1a20c007 ticket: add local host worker API 2026-06-22 01:01:43 +09:00
Hare 7abc3c7751 ticket: record plugin websocket cleanup 2026-06-21 22:27:34 +09:00
Hare e8103477a4 ticket: complete plugin websocket host api 2026-06-21 22:26:32 +09:00
Hare 354f1e1081 merge: plugin websocket host api 2026-06-21 22:21:07 +09:00
Hare 8a5b341e5e ticket: approve plugin websocket api 2026-06-21 22:20:58 +09:00
Hare 2232149be0 ticket: record plugin websocket bounds fix 2026-06-21 22:16:11 +09:00
Hare a766048f29 fix: bound plugin websocket open 2026-06-21 22:14:58 +09:00
Hare 168951b668 fix: declare deno workspace frontend deps 2026-06-21 22:08:37 +09:00
Hare 519730e7d3 ticket: request changes on websocket bounds 2026-06-21 21:43:11 +09:00
Hare 27f6b3366c ticket: start plugin websocket review 2026-06-21 21:33:07 +09:00
Hare 07782704d4 ticket: record plugin websocket branch hygiene 2026-06-21 21:32:27 +09:00
Hare e58355e7e3 ticket: record plugin websocket implementation 2026-06-21 21:21:02 +09:00
Hare ce62d23502 chore: keep plugin websocket branch code-only 2026-06-21 21:20:55 +09:00
Hare 4c1b8c3d0a feat: add plugin websocket host api 2026-06-21 21:19:28 +09:00
Hare 8578bc1c29 ticket: record inflight snapshot cleanup 2026-06-21 21:00:38 +09:00
Hare 77b5276fd3 ticket: complete inflight snapshot fix 2026-06-21 21:00:10 +09:00
Hare b21638f56c merge: inflight reconnect snapshot 2026-06-21 20:56:55 +09:00
Hare 08edc767b5 ticket: approve inflight snapshot fix 2026-06-21 20:56:49 +09:00
Hare 4cd4ae9cb5 ticket: record inflight snapshot race fix 2026-06-21 20:53:05 +09:00
Hare 061136d798 fix: close in-flight snapshot commit race 2026-06-21 20:51:48 +09:00
Hare ecdc52fce9 ticket: request changes on inflight snapshot 2026-06-21 20:37:40 +09:00
Hare 406c057025 ticket: start plugin websocket implementation 2026-06-21 20:37:08 +09:00
Hare 3eac7f8eae ticket: accept plugin websocket host api 2026-06-21 20:36:06 +09:00
Hare 79a0e45dbc ticket: queue 00001KVMGAEJN 2026-06-21 20:34:07 +09:00
Hare 2e2fdae8ef merge: sync orchestration before queue 00001KVMGAEJN 2026-06-21 20:34:07 +09:00
Hare d802778104 ticket: start inflight snapshot review 2026-06-21 20:32:03 +09:00
Hare de5f3ba49e ticket: record inflight snapshot implementation 2026-06-21 20:31:18 +09:00
Hare 74aca6f6c5 fix: snapshot in-flight stream state 2026-06-21 20:30:01 +09:00
Hare 2a23b8d770 ticket: record deno tooling cleanup 2026-06-21 20:14:32 +09:00
Hare 54d325aeb4 ticket: complete deno tooling migration 2026-06-21 20:14:07 +09:00
Hare 6dc78e3f2a merge: workspace spa deno tooling 2026-06-21 20:13:04 +09:00
Hare 108b6dc787 ticket: approve deno tooling migration 2026-06-21 20:12:57 +09:00
Hare 395de19639 ticket: start deno tooling review 2026-06-21 20:06:08 +09:00
Hare cc25201c4f ticket: record deno tooling implementation 2026-06-21 20:05:32 +09:00
Hare 66f04e0424 feat: migrate workspace spa tooling to deno 2026-06-21 20:04:08 +09:00
Hare 5f9797fdd6 ticket: ready websocket host api 2026-06-21 20:01:28 +09:00
Hare b4d2b3a442 ticket: start deno and inflight snapshot work 2026-06-21 20:00:13 +09:00
Hare 155e039e66 ticket: route deno and inflight snapshot work 2026-06-21 19:58:49 +09:00
Hare b4786b407a ticket: queue 00001KVMT2J25 2026-06-21 19:56:32 +09:00
Hare a59d935bd3 ticket: queue 00001KVMV03QY 2026-06-21 19:56:31 +09:00
Hare 6e95e497f7 ticket: add workspace follow-up items 2026-06-21 19:56:10 +09:00
Hare ef12c6b185 ticket: close workspace server launcher 2026-06-21 19:56:04 +09:00
Hare e6f68496b4 feat: add workspace server launcher 2026-06-21 19:55:55 +09:00
Hare be517417ff ticket: start workspace server launcher 2026-06-21 19:55:46 +09:00
Hare 3fc0dd0bde merge: integrate orchestration branch 2026-06-21 18:01:45 +09:00
Hare 89eb59505b ticket: record plugin request cleanup 2026-06-21 17:12:42 +09:00
Hare 2601bfa9f0 ticket: complete plugin request host api 2026-06-21 17:12:13 +09:00
Hare 8a15cca567 merge: plugin request host api 2026-06-21 17:08:13 +09:00
Hare ece35c391c ticket: approve plugin request api 2026-06-21 17:08:09 +09:00
Hare 6c3ac08c54 ticket: record plugin request grant fix 2026-06-21 17:04:55 +09:00
Hare 0e14e7c14e plugin: align request grant inspection coverage 2026-06-21 17:04:03 +09:00
Hare 2704b8c4bd ticket: request changes on plugin request grants 2026-06-21 16:58:12 +09:00
Hare d5338f9244 ticket: start plugin request review 2026-06-21 16:48:59 +09:00
Hare e447f177e0 ticket: record plugin request implementation 2026-06-21 16:48:13 +09:00
Hare 962b769989 plugin: replace https host api with request grants 2026-06-21 16:47:06 +09:00
Hare 52a786c780 ticket: record workspace web cleanup 2026-06-21 16:46:59 +09:00
Hare f33415c7e2 ticket: complete workspace web bootstrap 2026-06-21 16:46:25 +09:00
Hare 3e03e53627 merge: workspace web control plane 2026-06-21 16:44:59 +09:00
Hare 794e43a534 ticket: approve workspace web bootstrap 2026-06-21 16:44:54 +09:00
Hare 9f721ba437 ticket: start workspace web review 2026-06-21 16:38:19 +09:00
Hare 4a5e28067e ticket: record workspace web implementation 2026-06-21 16:37:39 +09:00
Hare ab7658c1f2 feat: bootstrap workspace web control plane 2026-06-21 16:34:36 +09:00
Hare 6cc0065d15 ticket: start plugin request implementation 2026-06-21 16:19:01 +09:00
Hare 4cd4a06e98 ticket: route plugin request capabilities 2026-06-21 16:17:57 +09:00
Hare f164483e62 ticket: queue 00001KVMGAEJN 2026-06-21 16:15:42 +09:00
Hare faf9bb0a82 ticket: queue 00001KVMG8FTW 2026-06-21 16:15:41 +09:00
Hare df150647c4 merge: sync orchestration before queue 00001KVMG8FTW 2026-06-21 16:15:41 +09:00
Hare 6434df13aa ticket: plugin request/ws support 2026-06-21 16:15:36 +09:00
Hare 9f664c751a ticket: start workspace web implementation 2026-06-21 16:15:08 +09:00
Hare 1d27f6c90a ticket: accept workspace web control plane 2026-06-21 16:13:54 +09:00
Hare 98c85a1d9e ticket: queue 00001KVMFFYVX 2026-06-21 16:11:58 +09:00
Hare 1f198ccb43 merge: sync orchestration before queue 00001KVMFFYVX 2026-06-21 16:11:58 +09:00
Hare 5fb8c393c5 ticket: bootstrap workspace web control plane 2026-06-21 15:58:18 +09:00
Hare 7c424e7d38 objective: defer memory redesign 2026-06-21 15:31:45 +09:00
Hare 5fa0846dcf ticket: record resume cli cleanup 2026-06-21 02:00:53 +09:00
Hare 19c3ec45eb ticket: complete resume cli command 2026-06-21 02:00:29 +09:00
Hare bdc11c771d merge: explicit resume command 2026-06-21 01:58:41 +09:00
Hare 35fba2b6fb ticket: approve resume cli changes 2026-06-21 01:58:34 +09:00
Hare bf4bf4da09 ticket: record resume guidance fix 2026-06-21 01:54:29 +09:00
Hare d25ca6ff3c fix: update resume guidance 2026-06-21 01:53:32 +09:00
Hare 79ee5c4388 ticket: request changes on resume cli guidance 2026-06-21 01:50:52 +09:00
Hare 2081fd5bda ticket: start resume cli review 2026-06-21 01:46:56 +09:00
Hare 8fcfa6e016 ticket: record resume cli implementation 2026-06-21 01:46:27 +09:00
Hare c14083a45a ticket: close completed audit items 2026-06-21 01:46:02 +09:00
Hare 861c351a96 feat: add explicit resume command 2026-06-21 01:45:28 +09:00
Hare 50b261e7e2 ticket: start resume cli implementation 2026-06-21 01:31:58 +09:00
Hare 54245e3292 ticket: close obsolete planning items 2026-06-21 01:31:34 +09:00
Hare a63b40f460 ticket: accept resume cli routing 2026-06-21 01:31:04 +09:00
Hare 8684344e92 ticket: queue 00001KVJX7VZT 2026-06-21 01:29:26 +09:00
Hare 5f52c72b45 records: add pending objective and ticket 2026-06-21 01:28:36 +09:00
Hare 839783b2e6 merge: integrate orchestration branch 2026-06-21 01:24:03 +09:00
Hare 717ff8db01 ticket: close stale notification guidance item 2026-06-21 01:23:54 +09:00
Hare 249b55ec3f objective: define team workspace roadmap 2026-06-21 01:16:36 +09:00
Hare 5885850726 ticket: record plugin lifecycle cleanup 2026-06-21 00:23:39 +09:00
Hare bc484338df ticket: complete plugin instance lifecycle 2026-06-21 00:23:17 +09:00
Hare 43c9216ef8 merge: plugin instance lifecycle surface 2026-06-21 00:18:43 +09:00
Hare ec3a1c621d ticket: approve plugin instance lifecycle 2026-06-21 00:18:40 +09:00
Hare 2edffafc2b ticket: record plugin static surface fix 2026-06-21 00:14:03 +09:00
Hare 627c8f36ff plugin: filter static enabled surfaces 2026-06-21 00:12:55 +09:00
Hare 01ba4c157a ticket: request changes on plugin surface inspection 2026-06-21 00:04:15 +09:00
Hare 6f790faed9 ticket: record plugin surface selection fix 2026-06-20 23:59:33 +09:00
Hare 79ca0f7f81 plugin: enforce enabled lifecycle surfaces 2026-06-20 23:58:16 +09:00
Hare 8fd75228e4 ticket: request changes on plugin surface selection 2026-06-20 23:50:29 +09:00
Hare dcbd04aacd ticket: record plugin instance lifecycle fixes 2026-06-20 23:43:52 +09:00
Hare 870bcc76a5 plugin: fix instance lifecycle blockers 2026-06-20 23:42:44 +09:00
Hare c383178f7f ticket: request changes on plugin instance lifecycle 2026-06-20 23:24:48 +09:00
Hare 97df2c8a28 ticket: dispatch plugin instance lifecycle review 2026-06-20 23:17:39 +09:00
Hare 6eda265bf2 ticket: record plugin instance lifecycle report 2026-06-20 23:16:51 +09:00
Hare 147a600577 plugin: add instance lifecycle surface 2026-06-20 23:15:47 +09:00
Hare 0dd5be8e7a ticket: close mcp cli inspection 2026-06-20 22:56:47 +09:00
Hare 8c42729e5b ticket: complete mcp cli inspection 2026-06-20 22:56:23 +09:00
Hare 5e0b023a7b merge: mcp cli inspection 2026-06-20 22:54:13 +09:00
Hare 09f0ec5ebf ticket: approve mcp cli inspection 2026-06-20 22:54:13 +09:00
Hare c326c45d70 ticket: dispatch mcp cli inspection review 2026-06-20 22:49:37 +09:00
Hare ebf6beaaf1 ticket: record mcp cli inspection implementation report 2026-06-20 22:48:46 +09:00
Hare c91f5fc9b8 mcp: add cli inspection 2026-06-20 22:47:41 +09:00
Hare 673c739909 chore: remove daemon crate 2026-06-20 22:41:24 +09:00
Hare 3bc0de1762 ticket: remove obsolete daemon crate 2026-06-20 22:36:51 +09:00
Hare 9af2ad7cd9 ticket: start mcp cli inspection worktree 2026-06-20 22:33:12 +09:00
Hare 12d7e69f07 ticket: accept mcp cli inspection 2026-06-20 22:32:24 +09:00
Hare 142fdffb00 ticket: queue 00001KVJKHAFE 2026-06-20 22:31:00 +09:00
Hare c4687b6816 merge: sync orchestration before queue 00001KVJKHAFE 2026-06-20 22:31:00 +09:00
Hare 9b161d251e ticket: start plugin instance lifecycle worktree 2026-06-20 22:30:49 +09:00
Hare a8f058c792 ticket: add mcp cli inspection 2026-06-20 22:30:19 +09:00
Hare 5ec8bae983 ticket: accept plugin instance lifecycle 2026-06-20 22:29:34 +09:00
Hare 7f06e6567a ticket: queue 00001KVJHYP4Q 2026-06-20 22:28:19 +09:00
Hare 3257cf799a ticket: redesign plugin instance runtime 2026-06-20 22:26:49 +09:00
Hare 70b8ed628d ticket: make plugin lifecycle instance-oriented 2026-06-20 22:18:53 +09:00
Hare aadc0329d2 ticket: clarify service-backed tool state 2026-06-20 22:15:09 +09:00
Hare 120044af80 ticket: plan plugin service ingress surface 2026-06-20 22:02:44 +09:00
Hare dfc5263eec merge: integrate orchestration branch 2026-06-20 21:42:13 +09:00
Hare 2646dfae7e ticket: close queue conflict ticket 2026-06-20 21:42:08 +09:00
Hare 7d087afbf6 ticket: close webfetch pdf text 2026-06-20 21:31:42 +09:00
Hare 59c59a6a70 ticket: complete webfetch pdf text 2026-06-20 21:31:15 +09:00
Hare 97edfe8ae7 merge: webfetch pdf text 2026-06-20 21:28:27 +09:00
Hare daf3ae68c3 ticket: approve webfetch pdf text 2026-06-20 21:28:27 +09:00
Hare df5d65dc2d ticket: dispatch webfetch pdf review 2026-06-20 21:24:51 +09:00
Hare 4887aa33d9 ticket: record webfetch pdf implementation report 2026-06-20 21:24:09 +09:00
Hare b1af95ad20 web: fetch pdf text by pages 2026-06-20 21:22:55 +09:00
Hare 865a11c628 ticket: close intake investigation gate 2026-06-20 21:20:21 +09:00
Hare 7c2c5319f4 ticket: complete intake investigation gate 2026-06-20 21:20:03 +09:00
Hare f62ed4db8a merge: intake investigation gate 2026-06-20 21:19:24 +09:00
Hare 556fc353a8 ticket: approve intake investigation gate 2026-06-20 21:19:24 +09:00
Hare 8fd3cb855f ticket: dispatch intake investigation gate review 2026-06-20 21:17:16 +09:00
Hare 448a24a975 merge: integrate orchestration branch 2026-06-20 21:16:54 +09:00
Hare d547198361 ticket: record intake investigation gate implementation report 2026-06-20 21:16:34 +09:00
Hare 1143ae1c5a workflow: add intake investigation gate 2026-06-20 21:15:18 +09:00
Hare 69c55a21a4 ticket: close profile override scope 2026-06-20 21:13:40 +09:00
Hare 22c631cf88 ticket: complete profile override scope 2026-06-20 21:13:19 +09:00
Hare a13868818c merge: profile override scope 2026-06-20 21:12:19 +09:00
Hare 203160db4f ticket: approve profile override scope 2026-06-20 21:12:19 +09:00
Hare 61ae37a752 ticket: start webfetch pdf and intake gate worktrees 2026-06-20 21:09:57 +09:00
Hare e752a7206a ticket: accept webfetch pdf and intake gate 2026-06-20 21:08:41 +09:00
Hare 36b9ed450f ticket: dispatch profile override scope review 2026-06-20 21:07:06 +09:00
Hare 75215bb143 ticket: queue 00001KVJDJD02 2026-06-20 21:06:37 +09:00
Hare 8e625344e6 ticket: queue 00001KVJA7V2R 2026-06-20 21:06:29 +09:00
Hare 3ecd86dbc2 merge: sync orchestration before queue 00001KVJA7V2R 2026-06-20 21:06:29 +09:00
Hare d95e044913 ticket: record profile override scope implementation report 2026-06-20 21:06:28 +09:00
Hare 0717aae341 pod: preserve profile override scope 2026-06-20 21:04:10 +09:00
Hare 054d44f737 ticket: start profile override scope worktree 2026-06-20 20:55:06 +09:00
Hare c04c8796f5 ticket: add pending work items 2026-06-20 20:53:58 +09:00
Hare 72e9f2f14e ticket: accept profile override scope launch 2026-06-20 20:53:58 +09:00
Hare 9e7c84a430 ticket: queue 00001KVJABS1A 2026-06-20 20:52:33 +09:00
Hare a04fe0a9dd merge: sync orchestration before queue 00001KVJABS1A 2026-06-20 20:52:33 +09:00
Hare 9fbe9e7aea ticket: track profile scope override bug 2026-06-20 19:49:37 +09:00
Hare 93bdad4c42 ticket: close mcp list changed handling 2026-06-20 19:33:08 +09:00
Hare 21008249ea ticket: complete mcp list changed handling 2026-06-20 19:32:43 +09:00
Hare ae5f3e425b merge: mcp list changed handling 2026-06-20 19:31:33 +09:00
Hare fccef54cd6 ticket: approve mcp list changed handling 2026-06-20 19:31:33 +09:00
Hare d67f4023e1 ticket: dispatch mcp list changed review 2026-06-20 19:27:00 +09:00
Hare 4caafe99d3 ticket: record mcp list changed implementation report 2026-06-20 19:26:21 +09:00
Hare e33dee192c mcp: handle list changed notifications 2026-06-20 19:24:59 +09:00
Hare 02cd596139 ticket: start mcp list changed worktree 2026-06-20 19:08:13 +09:00
Hare d31b89072d ticket: accept mcp list changed handling 2026-06-20 19:07:15 +09:00
Hare b11f83c8b3 ticket: close mcp resources prompts tools 2026-06-20 19:05:26 +09:00
Hare dbdae3c63f ticket: complete mcp resources prompts tools 2026-06-20 19:05:02 +09:00
Hare 4a4590f86b merge: mcp resources prompts tools 2026-06-20 19:03:32 +09:00
Hare 25e0ae7f0d ticket: approve mcp resources prompts tools 2026-06-20 19:03:32 +09:00
Hare baefa90df9 ticket: dispatch mcp resources prompts review 2026-06-20 18:58:05 +09:00
Hare c4f3c42957 ticket: record mcp resources prompts implementation report 2026-06-20 18:57:22 +09:00
Hare 3a22360a78 mcp: expose resources prompts tools 2026-06-20 18:56:14 +09:00
Hare e4be4944d8 ticket: start mcp resources prompts worktree 2026-06-20 18:38:20 +09:00
Hare b2b4764f36 ticket: accept mcp resources prompts tools 2026-06-20 18:37:30 +09:00
Hare 6ac916c785 ticket: close dashboard console tui refactor 2026-06-20 18:35:58 +09:00
Hare 831c8dc64e ticket: complete dashboard console tui refactor 2026-06-20 18:35:35 +09:00
Hare 23ec2bbd7e merge: dashboard console tui refactor 2026-06-20 18:33:22 +09:00
Hare 945a61c0ed ticket: approve dashboard console tui refactor 2026-06-20 18:33:22 +09:00
Hare 883badc1d8 ticket: record dashboard console tui state fix 2026-06-20 18:30:21 +09:00
Hare 135343a2e7 tui: preserve dashboard after console return 2026-06-20 18:29:10 +09:00
Hare ff3b779fa9 ticket: request changes on dashboard console tui 2026-06-20 18:22:32 +09:00
Hare 24c8297df1 ticket: close mcp tools call 2026-06-20 18:19:01 +09:00
Hare 656b0220c4 ticket: complete mcp tools call 2026-06-20 18:18:19 +09:00
Hare 399a9d43d3 merge: mcp tools call 2026-06-20 18:17:01 +09:00
Hare ee16a4debc ticket: approve mcp tools call 2026-06-20 18:17:01 +09:00
Hare 454d67d0a2 ticket: dispatch dashboard console tui review 2026-06-20 18:14:15 +09:00
Hare bf44d8124d ticket: record dashboard console tui implementation report 2026-06-20 18:13:29 +09:00
Hare 5415a9478d tui: introduce dashboard console boundaries 2026-06-20 18:12:18 +09:00
Hare 62dd661395 ticket: dispatch mcp tools call review 2026-06-20 18:09:57 +09:00
Hare e6b2144f74 ticket: record mcp tools call implementation report 2026-06-20 18:08:52 +09:00
Hare 9a2454037f mcp: execute stdio tool calls 2026-06-20 18:07:21 +09:00
Hare 2fc20adc23 docs: update plugin authoring guide 2026-06-20 18:00:44 +09:00
Hare ae5528b62f ticket: start mcp tools call worktree 2026-06-20 17:49:30 +09:00
Hare 92432ad750 ticket: accept mcp tools call 2026-06-20 17:48:39 +09:00
Hare 381db88e33 ticket: close mcp tool registration 2026-06-20 17:46:38 +09:00
Hare 7abe13f23d ticket: complete mcp tool registration 2026-06-20 17:46:17 +09:00
Hare a1f904b84d merge: mcp tool registration 2026-06-20 17:44:32 +09:00
Hare 3d147c9e01 ticket: approve mcp tool registration 2026-06-20 17:44:32 +09:00
Hare db23435337 ticket: start dashboard console tui worktree 2026-06-20 17:43:59 +09:00
Hare 7e35721a81 ticket: accept dashboard console tui refactor 2026-06-20 17:42:40 +09:00
Hare 8ce4fcdeba ticket: record mcp tool registration collision fix 2026-06-20 17:40:55 +09:00
Hare 0080c5b3d4 mcp: reject colliding tool names 2026-06-20 17:40:03 +09:00
Hare 865c3f01ba ticket: request changes on mcp tool registration 2026-06-20 17:35:19 +09:00
Hare 37d0105319 ticket: hold dashboard console refactor for capacity 2026-06-20 17:31:36 +09:00
Hare c5cd587780 ticket: queue 00001KVHX0WBE 2026-06-20 17:30:58 +09:00
Hare e881c47abf merge: sync orchestration before queue 00001KVHX0WBE 2026-06-20 17:30:58 +09:00
Hare 952020c8a5 ticket: dispatch mcp tool registration review 2026-06-20 17:30:28 +09:00
Hare db1f6fb6d1 ticket: record mcp tool registration implementation report 2026-06-20 17:29:31 +09:00
Hare 66fa9d55a1 mcp: register stdio server tools 2026-06-20 17:28:26 +09:00
Hare 50224326aa ticket: start mcp tool registration worktree 2026-06-20 17:01:54 +09:00
Hare a59e5c1ed3 ticket: accept mcp tool registration 2026-06-20 17:00:59 +09:00
Hare 5df7580a1e merge: integrate orchestration branch 2026-06-20 17:00:26 +09:00
Hare 96223148c0 ticket: clarify mcp runtime-discovered tools 2026-06-20 17:00:17 +09:00
Hare 68a8fc97d2 ticket: close mcp stdio lifecycle client 2026-06-20 16:59:37 +09:00
Hare ca28c927b2 ticket: complete mcp stdio lifecycle client 2026-06-20 16:59:17 +09:00
Hare 9cf5344fc5 merge: mcp stdio lifecycle client 2026-06-20 16:58:29 +09:00
Hare e5510620cc ticket: approve mcp stdio lifecycle client 2026-06-20 16:58:21 +09:00
Hare 8e6b440f9a ticket: record mcp stdio lifecycle redaction fix 2026-06-20 16:56:06 +09:00
Hare f396e1a253 mcp: redact stdio server spec debug 2026-06-20 16:54:48 +09:00
Hare 39b55fb6e8 ticket: request changes on mcp stdio lifecycle 2026-06-20 16:51:36 +09:00
Hare c91ed5600f ticket: dispatch mcp stdio lifecycle review 2026-06-20 16:46:44 +09:00
Hare 35e6533986 ticket: record mcp stdio lifecycle implementation report 2026-06-20 16:46:05 +09:00
Hare a114fa9d0a mcp: implement stdio lifecycle client 2026-06-20 16:45:05 +09:00
Hare 017c4471ed ticket: start mcp stdio lifecycle worktree 2026-06-20 16:31:10 +09:00
Hare c0e760d73e ticket: accept mcp stdio lifecycle client 2026-06-20 16:30:12 +09:00
Hare 8f5eef94e4 ticket: close mcp stdio config trust 2026-06-20 16:29:03 +09:00
Hare c4a7eb7a2e ticket: complete mcp stdio config trust 2026-06-20 16:28:39 +09:00
Hare 9b7c4e279d merge: mcp stdio config trust 2026-06-20 16:27:12 +09:00
Hare c6fa0b2d95 ticket: approve mcp stdio config trust 2026-06-20 16:27:07 +09:00
Hare a0cd3dd0e9 ticket: dispatch mcp stdio config review 2026-06-20 16:19:31 +09:00
Hare e578d888e3 ticket: record mcp stdio config implementation report 2026-06-20 16:18:46 +09:00
Hare e0680ccee0 mcp: add stdio server config 2026-06-20 16:17:38 +09:00
Hare 6cc8551a6c ticket: start mcp stdio config worktree 2026-06-20 15:57:19 +09:00
Hare b0225e48b8 ticket: accept mcp stdio config trust 2026-06-20 15:56:29 +09:00
Hare a5df9e3728 ticket: close plugin authoring cli 2026-06-20 15:55:14 +09:00
Hare ead96654be ticket: complete plugin authoring cli 2026-06-20 15:54:51 +09:00
Hare 0430ed982d merge: plugin authoring cli 2026-06-20 15:50:55 +09:00
Hare 52e40b2fdc ticket: approve plugin authoring cli 2026-06-20 15:50:48 +09:00
Hare 93265ae65c ticket: record plugin authoring cli hardening fix 2026-06-20 15:46:18 +09:00
Hare 699db538b6 plugin: harden authoring checks 2026-06-20 15:45:12 +09:00
Hare 9ac540f7cf ticket: request changes on plugin authoring cli 2026-06-20 15:36:56 +09:00
Hare 8206b5912d ticket: dispatch plugin authoring cli review 2026-06-20 15:26:33 +09:00
Hare 59d0a58e3a ticket: record plugin authoring cli implementation report 2026-06-20 15:25:47 +09:00
Hare 945ecdf64d plugin: add authoring cli 2026-06-20 15:24:35 +09:00
Hare e37a360d07 ticket: hold queued mcp chain for dependencies 2026-06-20 15:00:52 +09:00
Hare 9881a061fe ticket: queue 00001KVHR3WSW 2026-06-20 14:59:05 +09:00
Hare 76729c3377 ticket: queue 00001KVHR3WSD 2026-06-20 14:59:04 +09:00
Hare f880007639 ticket: queue 00001KVHR3WS6 2026-06-20 14:58:58 +09:00
Hare eee2ce00e2 ticket: queue 00001KVHR3WSN 2026-06-20 14:58:57 +09:00
Hare a729282cc1 ticket: queue 00001KVHR3WRY 2026-06-20 14:58:55 +09:00
Hare 061322d425 ticket: queue 00001KVHR3WRF 2026-06-20 14:58:46 +09:00
Hare 191e7999c0 merge: sync orchestration before queue 00001KVHR3WRF 2026-06-20 14:58:46 +09:00
Hare c0239684ed ticket: start plugin authoring cli worktree 2026-06-20 14:55:36 +09:00
Hare d1095f854a ticket: accept plugin authoring cli 2026-06-20 14:54:50 +09:00
Hare 902b383de7 ticket: close plugin rust pdk templates 2026-06-20 14:53:26 +09:00
Hare ab7ab69f20 ticket: complete plugin rust pdk templates 2026-06-20 14:51:47 +09:00
Hare edc53a6bc9 merge: plugin rust pdk templates 2026-06-20 14:47:33 +09:00
Hare 1f0766c1d7 ticket: approve plugin rust pdk templates 2026-06-20 14:47:25 +09:00
Hare 01f2e926b0 ticket: record plugin rust pdk template fix 2026-06-20 14:40:23 +09:00
Hare 0a9e585c1d plugin: fix rust pdk wit template probes 2026-06-20 14:39:10 +09:00
Hare 75e8103cdd ticket: split mcp stdio roadmap 2026-06-20 14:34:00 +09:00
Hare 356d06ef58 fix: allow queueing behind active blockers 2026-06-20 14:34:00 +09:00
Hare 730bc73975 ticket: hold plugin authoring cli for pdk dependency 2026-06-20 14:23:53 +09:00
Hare b4cb9fbc41 ticket: queue 00001KVHKWNQS 2026-06-20 14:23:14 +09:00
Hare 2c78428d9d merge: sync orchestration before queue 00001KVHKWNQS 2026-06-20 14:23:14 +09:00
Hare 88f4c7e104 ticket: request changes on plugin rust pdk 2026-06-20 14:21:54 +09:00
Hare 3fb3368272 ticket: dispatch plugin rust pdk review 2026-06-20 14:16:58 +09:00
Hare af435fa9bc ticket: record plugin rust pdk implementation report 2026-06-20 14:16:22 +09:00
Hare 06287aca40 plugin: add rust pdk template 2026-06-20 14:15:20 +09:00
Hare 6c04cb9a0b merge: sync orchestration before queue 00001KVHKWNQS 2026-06-20 14:12:46 +09:00
Hare b5e623e5a1 ticket: start plugin rust pdk worktree 2026-06-20 13:54:58 +09:00
Hare 5f7f81bdde ticket: accept plugin rust pdk templates 2026-06-20 13:54:09 +09:00
Hare 9ca2f85b08 ticket: queue 00001KVHKWNQA 2026-06-20 13:52:58 +09:00
Hare 8b42e319e2 ticket: add plugin authoring roadmap 2026-06-20 13:43:16 +09:00
Hare c8877b49a4 ticket: close plugin component model runtime 2026-06-20 02:23:35 +09:00
Hare 54a91f1b7e ticket: complete plugin component model runtime 2026-06-20 02:23:17 +09:00
Hare 63d7ad788d merge: plugin component model runtime 2026-06-20 02:20:03 +09:00
Hare e6619bc6c9 ticket: approve plugin component model runtime 2026-06-20 02:19:59 +09:00
Hare ac58bfdd63 ticket: record component runtime resource fix 2026-06-20 02:17:13 +09:00
Hare a705bb3bf2 plugin: bound component model runtime resources 2026-06-20 02:16:16 +09:00
Hare 30e49d806a ticket: request changes on component model runtime 2026-06-20 02:08:22 +09:00
Hare 5f00329d44 ticket: dispatch plugin component model review 2026-06-20 02:01:02 +09:00
Hare ed33a0b00f ticket: record plugin component model implementation report 2026-06-20 02:00:25 +09:00
Hare 57bbf14e1a plugin: implement component model runtime 2026-06-20 01:58:53 +09:00
Hare 02006fee2e ticket: update plugin component model work metadata 2026-06-20 01:25:34 +09:00
Hare 466e2bf927 ticket: start plugin component model runtime worktree 2026-06-20 01:25:27 +09:00
Hare 878517dcd2 ticket: accept plugin component model runtime 2026-06-20 01:22:02 +09:00
Hare b0ea9513e3 ticket: close plugin fs host api 2026-06-20 01:18:14 +09:00
Hare 817c335f30 ticket: approve plugin fs host api 2026-06-20 01:15:35 +09:00
Hare f8a1e9452e ticket: record plugin fs host api merge 2026-06-20 01:14:52 +09:00
Hare 1097f35ed8 ticket: approve plugin fs host api 2026-06-20 01:12:56 +09:00
Hare 3dac71d0a5 ticket: approve plugin fs host api 2026-06-20 01:12:06 +09:00
Hare 993e407df2 ticket: approve plugin fs host api 2026-06-20 01:11:11 +09:00
Hare c94e157b76 merge: plugin fs host api 2026-06-20 01:10:37 +09:00
Hare ca988ffc3a ticket: approve plugin fs host api 2026-06-20 01:10:37 +09:00
Hare 93bd6bdf01 ticket: dispatch plugin fs host api review 2026-06-20 01:02:48 +09:00
Hare ec600c8806 ticket: record plugin fs host api implementation 2026-06-20 01:01:52 +09:00
Hare 717c0999a5 plugin: implement fs host api 2026-06-20 00:58:44 +09:00
Hare c4d7ad8d0d ticket: record plugin fs host api coder start 2026-06-20 00:39:20 +09:00
Hare 6711bcf300 ticket: accept plugin fs host api work 2026-06-20 00:37:54 +09:00
Hare 838b273d9c ticket: close plugin https host api 2026-06-20 00:36:01 +09:00
Hare f64570ee84 ticket: record plugin https host api merge 2026-06-20 00:34:10 +09:00
Hare 94cb37075a ticket: approve plugin https host api 2026-06-20 00:32:31 +09:00
Hare 6beb8625bf merge: plugin https host api 2026-06-20 00:29:59 +09:00
Hare 998225eb4e ticket: approve plugin https host api 2026-06-20 00:29:59 +09:00
Hare 8de6b447ee ticket: record plugin https target hardening fix 2026-06-20 00:23:18 +09:00
Hare 85683f17c3 plugin: harden https target validation 2026-06-20 00:21:37 +09:00
Hare ffa8e2f25a ticket: dispatch plugin https host api fixes 2026-06-20 00:12:33 +09:00
Hare faadebc67a ticket: request plugin https host api changes 2026-06-20 00:10:49 +09:00
Hare 748074ba9f ticket: dispatch plugin https host api review 2026-06-20 00:05:11 +09:00
Hare 884accd976 ticket: record plugin https host api implementation 2026-06-20 00:04:16 +09:00
Hare 7377527f7c plugin: implement https host api 2026-06-20 00:02:24 +09:00
Hare e44827823a ticket: record plugin https host api coder start 2026-06-19 23:26:40 +09:00
Hare 1fdef32a4d ticket: accept plugin https host api work 2026-06-19 23:25:39 +09:00
Hare da2dbfb108 ticket: close plugin cli inspection 2026-06-19 23:23:00 +09:00
Hare f8230f9f59 ticket: record plugin cli inspection merge 2026-06-19 23:21:35 +09:00
Hare 71ca05c899 merge: plugin cli inspection 2026-06-19 23:18:51 +09:00
Hare 509ca60959 ticket: approve plugin cli inspection 2026-06-19 23:18:51 +09:00
Hare be91977725 ticket: dispatch plugin cli missing-diagnostic re-review 2026-06-19 23:11:31 +09:00
Hare 22be375f1b ticket: record plugin cli missing-diagnostic fix report 2026-06-19 23:10:41 +09:00
Hare 0142ef1d3f plugin: distinguish present invalid packages 2026-06-19 23:08:06 +09:00
Hare 6e4c49df61 ticket: dispatch plugin cli missing-diagnostic fixes 2026-06-19 23:03:41 +09:00
Hare 4bf6b1bf0f ticket: request plugin cli missing-diagnostic changes 2026-06-19 23:02:48 +09:00
Hare d2ee3bf379 ticket: dispatch plugin cli invalid package re-review 2026-06-19 22:55:02 +09:00
Hare f1c182072b ticket: record plugin cli invalid package fix report 2026-06-19 22:54:13 +09:00
Hare 877ec94fc9 ticket: dispatch plugin cli invalid package fixes 2026-06-19 22:53:10 +09:00
Hare a5709d8bfc ticket: request plugin cli invalid package changes 2026-06-19 22:52:00 +09:00
Hare a5f3b0b554 plugin: reject configured invalid packages 2026-06-19 22:51:02 +09:00
Hare 3a0fd1c219 ticket: dispatch plugin cli invalid package fixes 2026-06-19 22:45:54 +09:00
Hare 8e600311d0 ticket: request plugin cli invalid package changes 2026-06-19 22:45:09 +09:00
Hare ea6355a73d ticket: dispatch plugin cli schema re-review 2026-06-19 22:37:02 +09:00
Hare 3cfb3a647e ticket: record plugin cli schema fix report 2026-06-19 22:36:03 +09:00
Hare 22af7fd342 ticket: queue 00001KVG0HR96 2026-06-19 22:34:43 +09:00
Hare c0f70d1a88 merge: integrate orchestration branch 2026-06-19 22:33:30 +09:00
Hare 8b135cf47a ticket: close plugin design umbrella 2026-06-19 22:29:47 +09:00
Hare e5126321ad ticket: plan plugin component model migration 2026-06-19 22:21:31 +09:00
Hare 982a1b75ed plugin: validate inspected tool schemas 2026-06-19 20:47:11 +09:00
Hare 86c87ded89 ticket: dispatch plugin cli schema validation fixes 2026-06-19 20:42:31 +09:00
Hare 66821b30a7 ticket: request plugin cli schema validation changes 2026-06-19 20:41:32 +09:00
Hare ecd3f124be ticket: dispatch plugin cli metadata re-review 2026-06-19 20:34:35 +09:00
Hare 41db5a9bf9 ticket: record plugin cli metadata fix report 2026-06-19 20:33:55 +09:00
Hare dfa966dbfc plugin: report inspection package metadata 2026-06-19 20:31:26 +09:00
Hare 00a2459a86 ticket: dispatch plugin cli path api fixes 2026-06-19 20:24:14 +09:00
Hare d5b718b380 ticket: request plugin cli path api changes 2026-06-19 20:23:32 +09:00
Hare 9e08291579 ticket: dispatch plugin cli inspection re-review 2026-06-19 20:17:57 +09:00
Hare 075cdfc810 ticket: record plugin cli inspection fix report 2026-06-19 20:17:15 +09:00
Hare b5f10ab7dc plugin: align inspection statuses 2026-06-19 20:15:48 +09:00
Hare 71f4c11fea ticket: dispatch plugin cli inspection fixes 2026-06-19 20:08:47 +09:00
Hare 8a623394da ticket: request plugin cli inspection changes 2026-06-19 20:08:06 +09:00
Hare 349a55fa33 ticket: dispatch plugin cli inspection review 2026-06-19 20:03:57 +09:00
Hare 83699e2011 ticket: record plugin cli inspection implementation 2026-06-19 20:03:12 +09:00
Hare 462de32a5a plugin: add cli inspection 2026-06-19 19:58:10 +09:00
Hare 630548644d ticket: record plugin cli inspection coder start 2026-06-19 19:24:02 +09:00
Hare d51b610f97 ticket: record plugin host api waiting metadata 2026-06-19 19:23:07 +09:00
Hare aea2a8a45d ticket: accept plugin cli inspection work 2026-06-19 19:22:56 +09:00
Hare 3b026b2f5f ticket: queue 00001KVFDX9AF 2026-06-19 19:19:53 +09:00
Hare ecb23a1651 ticket: queue 00001KVFDX9AY 2026-06-19 19:19:52 +09:00
Hare d7f0a718c3 ticket: queue 00001KVFD3YSV 2026-06-19 19:19:28 +09:00
Hare f1876321c5 ticket: add plugin host api followups 2026-06-19 16:54:40 +09:00
Hare 8940262618 ticket: close panel startup e2e work 2026-06-19 14:44:18 +09:00
Hare 69ab9f7c22 fix: speed up panel startup pod probes 2026-06-19 13:19:49 +09:00
Hare caf18dbaab test: measure panel shell startup path 2026-06-19 13:04:45 +09:00
Hare 7593202492 test: align panel dashboard readiness fixture 2026-06-19 00:53:30 +09:00
Hare 63449a8c26 ticket: close panel workspace pod filter 2026-06-19 00:40:49 +09:00
Hare 0ef36b4e02 merge: panel workspace pod filter 2026-06-19 00:38:03 +09:00
Hare 8e8d95eba4 ticket: approve panel workspace pod filter 2026-06-19 00:38:03 +09:00
Hare 49cc0f2e80 ticket: dispatch panel workspace pod re-review 2026-06-19 00:29:55 +09:00
Hare f7179f7a99 ticket: record panel workspace pod fix report 2026-06-19 00:29:15 +09:00
Hare 160c96ad1e pod: persist metadata workspace root 2026-06-19 00:28:19 +09:00
Hare 86ce56b941 ticket: dispatch panel workspace pod fixes 2026-06-19 00:25:31 +09:00
Hare 6952b265b5 ticket: request panel workspace pod changes 2026-06-19 00:24:47 +09:00
Hare 38cc57e7fb ticket: dispatch panel workspace pod review 2026-06-19 00:16:52 +09:00
Hare 7b975aaf93 ticket: record panel workspace pod implementation 2026-06-19 00:16:04 +09:00
Hare 3b634d66ca tui: filter panel pods by workspace 2026-06-19 00:14:02 +09:00
Hare 6fe2dcdf8e ticket: record panel workspace pod coder start 2026-06-18 23:51:56 +09:00
Hare e2e76d3beb ticket: accept panel workspace pod filter 2026-06-18 23:51:03 +09:00
Hare 6cd2af7b72 ticket: close panel dashboard readiness 2026-06-18 23:48:59 +09:00
Hare 6d289a583a ticket: queue 00001KVDH2E06 2026-06-18 23:47:10 +09:00
Hare 667873bdbf merge: sync orchestration before queue 00001KVDH2E06 2026-06-18 23:47:10 +09:00
Hare 2d4d11e476 merge: panel dashboard readiness metric 2026-06-18 23:46:59 +09:00
Hare a92dff05f8 ticket: approve panel dashboard readiness 2026-06-18 23:46:59 +09:00
Hare cd07a9d846 ticket: dispatch panel dashboard re-review 2026-06-18 23:42:29 +09:00
Hare cd86cc533c fix: restore orchestrator companion notifications 2026-06-18 23:42:07 +09:00
Hare 656f3fb249 ticket: record panel dashboard fix report 2026-06-18 23:41:52 +09:00
Hare 5870251bdf tui: tighten panel dashboard readiness 2026-06-18 23:39:52 +09:00
Hare ef0c22eae9 ticket: close plugin permission grants 2026-06-18 23:24:50 +09:00
Hare 94aa3c1d3b merge: plugin permission grants 2026-06-18 23:22:49 +09:00
Hare a172d46c90 ticket: approve plugin grants implementation 2026-06-18 23:22:40 +09:00
Hare 486ee5f41e ticket: dispatch panel dashboard review fixes 2026-06-18 23:21:02 +09:00
Hare d98872af4c ticket: request panel dashboard review changes 2026-06-18 23:20:26 +09:00
Hare 20cc77573b ticket: dispatch reviewers for implementation branches 2026-06-18 23:16:32 +09:00
Hare 7ae725c95d ticket: record coder implementation reports 2026-06-18 23:15:32 +09:00
Hare b1ba15995f plugin: enforce permission grants 2026-06-18 23:13:40 +09:00
Hare fc1ee5bb55 tui: measure panel dashboard readiness 2026-06-18 23:13:06 +09:00
Hare 6c52e5dddf ticket: record panel dashboard coder start 2026-06-18 22:59:29 +09:00
Hare 3b4879446f ticket: accept panel dashboard latency work 2026-06-18 22:58:41 +09:00
Hare b5f0081566 ticket: record plugin grants coder resume 2026-06-18 22:57:43 +09:00
Hare dcbfb6314e ticket: queue 00001KVDETSN6 2026-06-18 22:55:08 +09:00
Hare d2833ffded merge: sync orchestration before queue 00001KVDETSN6 2026-06-18 22:55:08 +09:00
Hare 8cbade818f chore: record panel followups 2026-06-18 22:41:54 +09:00
Hare 9ca89250b4 ticket: record plugin grant spawn failure 2026-06-18 22:12:56 +09:00
Hare a984f5809f ticket: accept plugin permission grants 2026-06-18 22:12:03 +09:00
Hare b6685af3ae ticket: queue 00001KV5W3PJ3 2026-06-18 22:11:00 +09:00
Hare 63d864e1f0 merge: sync orchestration before queue 00001KV5W3PJ3 2026-06-18 22:11:00 +09:00
Hare 6641bf4860 ticket: complete plugin wasm runtime 2026-06-18 21:39:40 +09:00
Hare 05cd788c13 merge: plugin wasm tool runtime 2026-06-18 21:37:21 +09:00
Hare c05bfaa9c4 ticket: approve plugin wasm runtime 2026-06-18 21:37:21 +09:00
Hare f2d4194f37 ticket: record plugin wasm runtime implementation 2026-06-18 21:31:09 +09:00
Hare 10d12148dd feat: run plugin tools through wasm runtime 2026-06-18 21:29:41 +09:00
Hare ca29cd3b89 ticket: complete panel rows-ready e2e 2026-06-18 21:25:23 +09:00
Hare 226eca7a9d merge: panel rows-ready e2e 2026-06-18 21:24:10 +09:00
Hare 49db85c09a ticket: approve panel rows-ready e2e 2026-06-18 21:24:09 +09:00
Hare 4be925f56c ticket: close commit noise policy 2026-06-18 21:22:17 +09:00
Hare 7de73dbd33 ticket: record panel rows-ready implementation 2026-06-18 21:19:51 +09:00
Hare fffdfd2721 test: assert panel rows-ready fixture data 2026-06-18 21:17:51 +09:00
Hare 54cc87132e ticket: resume queued implementation pods 2026-06-18 21:06:11 +09:00
Hare 94f63b1324 merge: sync orchestration before queue 00001KV5W3PJ3 2026-06-18 20:20:44 +09:00
Hare e729e75aaa ticket: record spawn runtime failure 2026-06-17 18:51:03 +09:00
Hare d32fb3bc3c ticket: route wasm runtime and panel readiness e2e 2026-06-17 18:49:29 +09:00
Hare bcb8068ebd ticket: queue 00001KV5W3PHW 2026-06-17 18:46:10 +09:00
Hare a2583b8114 ticket: queue 00001KV62PF32 2026-06-17 18:46:03 +09:00
Hare 9d477f37e7 ticket: close plugin tool surface 2026-06-17 14:44:13 +09:00
Hare cce36419ac merge: integrate orchestration branch 2026-06-17 14:41:20 +09:00
Hare 05c6978d80 ticket: correct panel startup readiness metric 2026-06-17 14:41:15 +09:00
Hare 0da2b5db7b ticket: complete plugin tool surface 2026-06-16 01:40:07 +09:00
Hare 204d0d022f merge: plugin tool surface registration 2026-06-16 01:38:46 +09:00
Hare fb39bf38a1 ticket: approve plugin tool schema fix 2026-06-16 01:38:46 +09:00
Hare fb44159261 ticket: record plugin tool schema fix 2026-06-16 01:31:00 +09:00
Hare 3413bae7d7 fix: reject nested plugin tool schema errors 2026-06-16 01:30:00 +09:00
Hare d9b986853f ticket: request plugin tool schema changes 2026-06-16 01:26:44 +09:00
Hare f262815990 ticket: record plugin tool surface implementation 2026-06-16 01:20:13 +09:00
Hare 05a9c52217 feat: register plugin tool surfaces 2026-06-16 01:18:54 +09:00
Hare fcae886044 ticket: accept plugin tool surface work 2026-06-16 00:54:32 +09:00
Hare 1fdb4cd6f4 ticket: queue 00001KV5W3PHA 2026-06-16 00:53:32 +09:00
Hare 15e60dcbe6 merge: integrate orchestration branch 2026-06-16 00:50:08 +09:00
Hare a03b86e749 ticket: complete plugin resolver 2026-06-16 00:30:09 +09:00
Hare f678383aad merge: plugin package resolver 2026-06-16 00:27:15 +09:00
Hare 1337425504 ticket: approve plugin resolver restore fix 2026-06-16 00:27:15 +09:00
Hare 37e11e465f ticket: record plugin resolver restore fix 2026-06-16 00:16:22 +09:00
Hare 07978d2df5 fix: persist plugin snapshots for restore 2026-06-16 00:15:04 +09:00
Hare 65803c7868 ticket: close completed panel work 2026-06-16 00:09:02 +09:00
Hare a2b991adf8 ticket: request plugin resolver restore fixes 2026-06-16 00:06:02 +09:00
Hare f223bf44ce ticket: add plugin tool followups 2026-06-16 00:00:14 +09:00
Hare 60348708a1 ticket: record plugin resolver fixes 2026-06-15 23:53:30 +09:00
Hare ede7acfdf6 fix: pin plugin resolution metadata 2026-06-15 23:52:13 +09:00
Hare c29d378d4c ticket: request plugin resolver changes 2026-06-15 23:37:18 +09:00
Hare a89b7ac5de ticket: complete panel startup latency e2e 2026-06-15 23:31:36 +09:00
Hare 6f99ebedcc merge: panel startup latency e2e 2026-06-15 23:30:16 +09:00
Hare 77ace64f87 ticket: record plugin resolver implementation 2026-06-15 23:28:02 +09:00
Hare a03a9da64a feat: add plugin package resolver 2026-06-15 23:26:46 +09:00
Hare 9bad2745f7 fix: measure and defer panel startup reload 2026-06-15 23:24:16 +09:00
Hare 4772c4d6a5 ticket: route plugin and panel latency work 2026-06-15 23:01:29 +09:00
Hare 425a6c66a8 ticket: queue 00001KV5MRH6D 2026-06-15 22:59:47 +09:00
Hare d8300a0211 ticket: queue 00001KV5R5V2S 2026-06-15 22:59:47 +09:00
Hare 49abbd9519 ticket: add panel startup latency e2e 2026-06-15 22:50:38 +09:00
Hare 65fa4c06ce merge: integrate orchestration branch 2026-06-15 22:48:46 +09:00
Hare c3d1490443 ticket: add plugin package resolver 2026-06-15 22:48:26 +09:00
Hare 648422c966 ticket: complete panel orchestration overlay 2026-06-15 22:05:29 +09:00
Hare eeb6986f16 merge: panel orchestration overlay 2026-06-15 22:04:30 +09:00
Hare 3eef5fe1b5 ticket: approve panel orchestration overlay 2026-06-15 22:04:29 +09:00
Hare 01e8cd7fb0 ticket: record panel overlay implementation 2026-06-15 21:57:21 +09:00
Hare e0ddbed1eb feat: show orchestration ticket overlay in panel 2026-06-15 21:56:17 +09:00
Hare 95abdc8d94 ticket: accept panel orchestration overlay 2026-06-15 21:40:53 +09:00
Hare 318aa1912b ticket: queue 00001KV5D7MG5 2026-06-15 21:39:21 +09:00
Hare 6572791e50 merge: integrate orchestration branch 2026-06-15 19:48:59 +09:00
Hare 665c58deab ticket: add panel orchestration overlay 2026-06-15 19:48:49 +09:00
Hare c0d8badf55 ticket: complete single-pod text selection 2026-06-15 16:16:06 +09:00
Hare 3fa52f2c01 merge: single-pod text selection 2026-06-15 16:11:47 +09:00
Hare 73e26c41b5 ticket: approve single-pod selection 2026-06-15 16:11:47 +09:00
Hare 314e317a9a ticket: complete panel row hierarchy 2026-06-15 16:09:15 +09:00
Hare 8c00a6e98e merge: panel row hierarchy 2026-06-15 16:08:23 +09:00
Hare 09c7153a04 ticket: approve panel row hierarchy 2026-06-15 16:08:23 +09:00
Hare 10c29c5ae4 ticket: record panel row hierarchy implementation 2026-06-15 16:04:17 +09:00
Hare 2998f37b5a ticket: record single-pod selection implementation 2026-06-15 16:02:54 +09:00
Hare f3b435e724 fix: clarify panel ticket row hierarchy 2026-06-15 16:02:31 +09:00
Hare 09f5e9d51a feat: add single-pod text selection 2026-06-15 16:01:13 +09:00
Hare 79dda10da3 ticket: accept panel row hierarchy work 2026-06-15 15:52:29 +09:00
Hare 1d21aae32c ticket: complete panel alt-enter newline 2026-06-15 15:51:12 +09:00
Hare 0335cad9ff merge: panel alt-enter newline 2026-06-15 15:50:32 +09:00
Hare dba335f74a ticket: approve panel alt-enter fix 2026-06-15 15:50:32 +09:00
Hare 3001bc6873 ticket: record panel alt-enter implementation 2026-06-15 15:46:37 +09:00
Hare 5c33917753 fix: align panel alt-enter composer handling 2026-06-15 15:45:30 +09:00
Hare 368249d677 ticket: route queued tui panel work 2026-06-15 15:39:26 +09:00
Hare f0de841360 ticket: queue 00001KV4ZPAD3 2026-06-15 15:37:02 +09:00
Hare f205fb7540 ticket: queue 00001KV4ZDMV1 2026-06-15 15:37:01 +09:00
Hare ba5d0ee605 ticket: queue 00001KV4YAAVY 2026-06-15 15:37:00 +09:00
Hare 6d4b700181 ticket: record panel and plugin followups 2026-06-15 15:35:35 +09:00
Hare 169f29e960 merge: integrate orchestration branch 2026-06-15 02:24:46 +09:00
Hare 752cce3ffd ticket: refine plugin surface model 2026-06-15 02:24:23 +09:00
Hare 25a91d1cec ticket: complete panel e2e evidence 2026-06-15 01:54:10 +09:00
Hare b5e7ca98fb merge: panel e2e evidence 2026-06-15 01:52:37 +09:00
Hare 1f07e57a2c test: record panel tui e2e evidence 2026-06-15 01:46:43 +09:00
Hare 5e81bc38e6 ticket: accept panel e2e evidence work 2026-06-15 01:39:23 +09:00
Hare 765e6e8ebc ticket: complete invalid ticket panel tolerance 2026-06-15 01:38:06 +09:00
Hare 863b13b687 merge: tolerate invalid panel tickets 2026-06-15 01:37:21 +09:00
Hare 8af11be0f0 ticket: approve invalid ticket panel fixes 2026-06-15 01:37:21 +09:00
Hare 198d619358 ticket: record invalid ticket panel fixes 2026-06-15 01:30:59 +09:00
Hare 456722c339 fix: disable tickets with invalid detail records 2026-06-15 01:30:21 +09:00
Hare d81fced051 ticket: request invalid ticket panel changes 2026-06-15 01:27:24 +09:00
Hare 092fcd806d ticket: complete active workflow compaction 2026-06-15 01:26:06 +09:00
Hare 64d26f8490 merge: preserve active workflows across compaction 2026-06-15 01:25:09 +09:00
Hare 2f51cb6287 ticket: approve active workflow fixes 2026-06-15 01:25:05 +09:00
Hare b2c08d8043 ticket: record invalid ticket panel implementation 2026-06-15 01:21:54 +09:00
Hare b83b9e4e9e fix: tolerate invalid ticket rows in panel 2026-06-15 01:21:04 +09:00
Hare 30b22c1efc ticket: record active workflow fixes 2026-06-15 01:17:51 +09:00
Hare ff446052c7 fix: gate active workflow rehydration state 2026-06-15 01:16:54 +09:00
Hare 61473f6496 ticket: request active workflow changes 2026-06-15 00:58:53 +09:00
Hare a1c8264beb ticket: accept invalid ticket panel work 2026-06-15 00:57:54 +09:00
Hare 81667a9aca ticket: complete plugin package design 2026-06-15 00:56:49 +09:00
Hare 2b9dae4875 merge: plugin package design 2026-06-15 00:56:29 +09:00
Hare 8bcf833e2e ticket: record plugin package review 2026-06-15 00:56:29 +09:00
Hare b77ab0f424 ticket: complete panel intake pod rows 2026-06-15 00:55:41 +09:00
Hare 2fcbd6aefb merge: panel intake pod rows 2026-06-15 00:54:44 +09:00
Hare 48b0d34938 ticket: record panel intake pod review 2026-06-15 00:54:40 +09:00
Hare 01e643719d ticket: record plugin package implementation 2026-06-15 00:53:19 +09:00
Hare 3c674a7051 docs: propose plugin package distribution 2026-06-15 00:52:19 +09:00
Hare 24d0c2139f ticket: record active workflow implementation 2026-06-15 00:50:45 +09:00
Hare d73f748ee8 ticket: accept plugin package implementation 2026-06-15 00:49:44 +09:00
Hare 362fedfbe6 fix: preserve active workflows across compaction 2026-06-15 00:48:39 +09:00
Hare 80a9e40d3a ticket: record panel intake pod implementation 2026-06-15 00:48:17 +09:00
Hare 2664cdd992 feat: show ticket intake pods in panel 2026-06-15 00:47:08 +09:00
Hare e95af466ce ticket: defer plugin package routing for capacity 2026-06-15 00:40:56 +09:00
Hare 4be6c9662d ticket: queue 00001KT0Z4BK8 2026-06-15 00:40:15 +09:00
Hare a92fe5ca0a merge: sync orchestration before queue 00001KT0Z4BK8 2026-06-15 00:40:15 +09:00
Hare 61ed07f3b5 ticket: ready plugin package discovery 2026-06-15 00:37:35 +09:00
Hare d38828a2b3 ticket: defer conflicting queued panel work 2026-06-15 00:37:08 +09:00
Hare 28f3ed626b ticket: queue 00001KV3BQ7Q3 2026-06-15 00:35:57 +09:00
Hare c49d7f9d05 ticket: queue 00001KV3A5CNH 2026-06-15 00:35:56 +09:00
Hare cfbaad0abd merge: sync orchestration before queue 00001KV3A5CNH 2026-06-15 00:35:56 +09:00
Hare 71bf43224d ticket: add e2e evidence followup 2026-06-15 00:35:53 +09:00
Hare becb963bd0 ticket: add panel invalid ticket resilience 2026-06-15 00:35:16 +09:00
Hare 73d0a6a452 ticket: accept queued implementation work 2026-06-15 00:25:03 +09:00
Hare d311fe8f38 ticket: queue 00001KV09WYC6 2026-06-15 00:23:27 +09:00
Hare 392d4da3ad ticket: queue 00001KTFY8V80 2026-06-15 00:23:07 +09:00
Hare a64674e3ab ticket: ready plugin discovery package work 2026-06-15 00:00:04 +09:00
Hare d66dfbbbc2 chore: update orchestration and plugin tickets 2026-06-14 23:49:45 +09:00
Hare adebedc021 ticket: complete profile launch policy scope 2026-06-14 16:04:32 +09:00
Hare 2eaaac97f5 merge: profile launch policy scope 2026-06-14 16:01:26 +09:00
Hare dcbdf251d7 ticket: approve profile launch policy scope 2026-06-14 16:01:14 +09:00
Hare 77892b94f2 ticket: report 00001KV11DHGZ implementation 2026-06-14 15:53:42 +09:00
Hare 21bf009a3f feat: move profile scope to launch policy 2026-06-14 15:52:59 +09:00
Hare 4d626e9632 ticket: complete panel two-line rows 2026-06-14 15:42:18 +09:00
Hare 98357b8aa2 merge: panel ticket two-line rows 2026-06-14 15:40:45 +09:00
Hare e50e1a1a8c ticket: complete feature provider api 2026-06-14 15:40:10 +09:00
Hare f8daecccb3 merge: feature provider api 2026-06-14 15:38:40 +09:00
Hare 77e57cff5d ticket: approve panel two-line rows 2026-06-14 15:38:27 +09:00
Hare d0e8d79106 ticket: approve feature provider api 2026-06-14 15:38:27 +09:00
Hare cdb12af997 ticket: accept profile launch policy scope 2026-06-14 15:35:56 +09:00
Hare 69fc3675f0 ticket: complete profile extend removal 2026-06-14 15:34:47 +09:00
Hare 783c34e75b merge: profile extend removal 2026-06-14 15:32:49 +09:00
Hare c12fbd8eb7 ticket: approve profile extend removal 2026-06-14 15:32:06 +09:00
Hare 053a4f90dc feat: add protocol provider feature contributions 2026-06-14 15:31:19 +09:00
Hare 645d048df5 tui: render panel ticket rows on two lines 2026-06-14 15:28:53 +09:00
Hare 7c6070ef2f profile: remove extend profile composition 2026-06-14 15:24:41 +09:00
Hare f709fc1000 ticket: accept next queued batch 2026-06-14 15:12:46 +09:00
Hare 095331b06e ticket: queue 00001KV11DHGZ 2026-06-14 15:08:45 +09:00
Hare f6f938b5d3 ticket: queue 00001KV12W2RT 2026-06-14 15:08:41 +09:00
Hare 8ad04b2660 ticket: queue 00001KTZY8HK2 2026-06-14 15:08:28 +09:00
Hare 551ee1658c ticket: queue 00001KTR81P9X 2026-06-14 15:08:25 +09:00
Hare 0248db80e1 merge: integrate orchestration branch
# Conflicts:
#	.yoi/tickets/00001KV10SN02/item.md
#	.yoi/tickets/00001KV10SN02/thread.md
2026-06-14 15:08:02 +09:00
Hare 4d5c8b7f86 ticket: complete e2e critical path 2026-06-14 14:39:11 +09:00
Hare 2d9dd7d5e9 merge: e2e critical path
# Conflicts:
#	.yoi/tickets/00001KV10SN02/item.md
#	.yoi/tickets/00001KV10SN02/thread.md
2026-06-14 14:36:15 +09:00
Hare 86dc41ba7b ticket: record e2e critical recovery handoff 2026-06-14 14:35:16 +09:00
Hare bc1decb940 ticket: approve e2e critical path 2026-06-14 14:34:41 +09:00
Hare db95492a4f chore: record profile scope and restore diagnostics 2026-06-14 14:30:18 +09:00
Hare b6c6fc040d merge: sync e2e critical branch
# Conflicts:
#	.yoi/tickets/00001KV10SN02/item.md
#	.yoi/tickets/00001KV10SN02/thread.md
2026-06-14 14:26:50 +09:00
Hare 3de938b7a1 ticket: report e2e critical implementation 2026-06-14 14:24:52 +09:00
Hare b9f49eee1f test: cover critical tui e2e paths 2026-06-14 14:24:12 +09:00
Hare 8f210af72c ticket: complete panel return planning 2026-06-14 14:09:17 +09:00
Hare 7a6321d955 merge: panel return planning
# Conflicts:
#	.yoi/tickets/00001KV09X0XC/item.md
#	.yoi/tickets/00001KV09X0XC/thread.md
#	crates/tui/src/multi_pod.rs
2026-06-14 14:08:16 +09:00
Hare a389e30142 ticket: complete orchestration branch config 2026-06-14 14:06:06 +09:00
Hare 290c4230ac merge: orchestration branch config
# Conflicts:
#	.yoi/tickets/00001KV0X254D/item.md
#	.yoi/tickets/00001KV0X254D/thread.md
2026-06-14 14:04:50 +09:00
Hare 9d4abe5027 ticket: approve panel planning return 2026-06-14 14:03:44 +09:00
Hare 9ad87dda25 ticket: approve orchestration branch config 2026-06-14 14:03:44 +09:00
Hare c53625946e ticket: stop e2e critical path blocker 2026-06-14 04:05:01 +09:00
Hare cb565477a6 ticket: report panel planning return implementation 2026-06-14 04:02:24 +09:00
Hare a0df3279f5 ticket: complete host authority cleanup 2026-06-14 04:02:08 +09:00
Hare f74146c6b4 tui: return ready tickets to planning from panel 2026-06-14 04:00:29 +09:00
Hare 297e95ef4b merge: remove feature host authority
# Conflicts:
#	.yoi/tickets/00001KV0SP0TY/item.md
#	.yoi/tickets/00001KV0SP0TY/thread.md
2026-06-14 04:00:24 +09:00
Hare fc075bc69e ticket: report orchestration branch config 2026-06-14 03:59:48 +09:00
Hare 92e64bda5f ticket: approve host authority cleanup 2026-06-14 03:59:20 +09:00
Hare 1c54689edb tui: configure orchestration branch 2026-06-14 03:58:58 +09:00
Hare 3faf7d7bd1 ticket: report host authority cleanup 2026-06-14 03:53:11 +09:00
Hare 5549c50d86 feat: remove feature host authority API 2026-06-14 03:52:26 +09:00
Hare 144762023a ticket: record e2e critical acceptance 2026-06-14 03:43:37 +09:00
Hare 931f1a074c ticket: record queued coder handoffs 2026-06-14 03:42:53 +09:00
Hare 1abce888ae chore: capture current pod and panel followups 2026-06-14 03:41:40 +09:00
Hare c4465a04d8 ticket: accept queued implementation batch 2026-06-14 03:41:32 +09:00
Hare d15b0a99ea ticket: start e2e critical path 2026-06-14 03:40:06 +09:00
Hare 6cae63fc53 ticket: queue 00001KV10SN02 2026-06-14 02:51:04 +09:00
Hare fcebd4839b merge: integrate orchestration branch
# Conflicts:
#	.yoi/tickets/00001KV0TJVN5/item.md
#	.yoi/tickets/00001KV0TJVN5/thread.md
2026-06-14 02:50:53 +09:00
Hare d370b67dd7 ticket: add e2e and orchestrator scope followups 2026-06-14 02:47:27 +09:00
Hare 9be3f132ed fix: preserve pod restore manifest snapshot 2026-06-14 02:47:27 +09:00
Hare 6aa7c650e8 ticket: complete e2e tmp isolation 2026-06-14 02:34:03 +09:00
Hare 20184eeb1f merge: e2e tmp isolation
# Conflicts:
#	.yoi/tickets/00001KV0YK5S0/item.md
#	.yoi/tickets/00001KV0YK5S0/thread.md
2026-06-14 02:33:09 +09:00
Hare 39f5fffb2b ticket: approve e2e tmp isolation 2026-06-14 02:32:17 +09:00
Hare 07e754ce4b test: isolate e2e tmp runtime fixtures 2026-06-14 02:07:07 +09:00
Hare eb29b63aa1 ticket: accept e2e tmp isolation 2026-06-14 01:57:03 +09:00
Hare f467a77f6e ticket: create e2e tmp isolation followup 2026-06-14 01:56:31 +09:00
Hare d3ea48c87b ticket: note e2e runtime isolation concern 2026-06-14 01:55:52 +09:00
Hare b24aaaccae ticket: close done items 2026-06-14 01:34:18 +09:00
Hare 1df68c0e4a ticket: queue 00001KV0X254D 2026-06-14 01:33:27 +09:00
Hare f6b37f99b3 ticket: queue 00001KV09X0XC 2026-06-14 01:33:26 +09:00
Hare 4100de4b4d ticket: queue 00001KV0SP0TY 2026-06-14 01:33:15 +09:00
Hare 3003a4c7a4 chore: finalize orchestration merge 2026-06-14 01:31:49 +09:00
Hare 2b339247ed merge: integrate orchestration branch 2026-06-14 01:28:55 +09:00
Hare 0f7cac62ef ticket: refine plugin feature layering 2026-06-14 01:28:42 +09:00
Hare 7fe463af63 ticket: complete e2e binary provider 2026-06-14 01:09:41 +09:00
Hare 8abc2b7fa7 merge: e2e binary provider
# Conflicts:
#	.yoi/tickets/00001KV0TJVN5/item.md
#	.yoi/tickets/00001KV0TJVN5/thread.md
2026-06-14 01:08:49 +09:00
Hare d5782788d1 ticket: record e2e credential boundary 2026-06-14 01:08:08 +09:00
Hare 7e24a8df05 ticket: approve e2e binary provider 2026-06-14 01:07:38 +09:00
Hare 47efeb0143 test: isolate e2e yoi subprocess env 2026-06-14 01:02:19 +09:00
Hare 13d0053036 test: build e2e yoi binary provider 2026-06-14 00:54:41 +09:00
Hare a4df975415 ticket: accept e2e binary build followup 2026-06-14 00:47:10 +09:00
Hare 8fa5239102 ticket: note e2e binary build direction 2026-06-14 00:46:35 +09:00
Hare ceb34ba7f6 ticket: create e2e binary build followup 2026-06-14 00:46:29 +09:00
Hare bdc735b86f ticket: complete e2e harness 2026-06-14 00:23:49 +09:00
Hare b3bd6b114f merge: e2e harness
# Conflicts:
#	.yoi/tickets/00001KSKBP9YG/item.md
#	.yoi/tickets/00001KSKBP9YG/thread.md
2026-06-14 00:22:43 +09:00
Hare 04da452a9b ticket: approve e2e harness 2026-06-14 00:21:59 +09:00
Hare b30b43b989 test: cfg-gate e2e observer payloads 2026-06-14 00:18:33 +09:00
Hare 559adb9a3f ticket: request e2e harness changes 2026-06-14 00:06:43 +09:00
Hare 10a1c383c2 test: harden panel e2e harness 2026-06-14 00:00:41 +09:00
Hare 234ffbff2e ticket: add orchestration follow-up tickets 2026-06-13 23:56:32 +09:00
Hare 143cfde74e ticket: request e2e harness corrections 2026-06-13 23:40:48 +09:00
Hare 96561897ae test: add opt-in panel e2e harness 2026-06-13 23:38:51 +09:00
Hare a2084e881e ticket: record e2e coder handoff 2026-06-13 23:19:09 +09:00
Hare 134e8b8b57 ticket: accept e2e harness implementation 2026-06-13 23:17:46 +09:00
Hare 587a06fdad ticket: record e2e design direction 2026-06-13 23:15:54 +09:00
Hare d3d24a03a4 ticket: refine e2e harness scope 2026-06-13 22:56:44 +09:00
Hare 3a6461b6c5 ticket: record panel validation failures 2026-06-13 21:57:59 +09:00
Hare e5150aa9c9 ticket: complete panel quit latency 2026-06-13 20:41:30 +09:00
Hare db7bad7a64 merge: panel quit latency 2026-06-13 20:40:35 +09:00
Hare 2bb36cc40d ticket: approve panel quit latency 2026-06-13 20:40:31 +09:00
Hare 8de8283634 ticket: report panel quit latency fix 2026-06-13 20:35:35 +09:00
Hare cfe411e50d fix: avoid panel quit notice wait 2026-06-13 20:34:40 +09:00
Hare 9dacc90e66 ticket: accept panel quit latency 2026-06-13 20:27:42 +09:00
Hare 6c73b8e076 ticket: complete panel mouse selection 2026-06-13 20:26:34 +09:00
Hare 02311883f7 merge: panel mouse selection
# Conflicts:
#	.yoi/tickets/00001KV072V89/item.md
#	.yoi/tickets/00001KV072V89/thread.md
2026-06-13 20:25:52 +09:00
Hare 6c7385e5cc ticket: approve panel mouse selection 2026-06-13 20:25:03 +09:00
Hare 880cb2f418 ticket: complete rewind live refresh 2026-06-13 20:24:38 +09:00
Hare 802fa1f00f merge: rewind live refresh
# Conflicts:
#	.yoi/tickets/00001KV04NJ8D/item.md
#	.yoi/tickets/00001KV04NJ8D/thread.md
2026-06-13 20:23:46 +09:00
Hare 06a6e4ec57 ticket: approve rewind live refresh 2026-06-13 20:22:36 +09:00
Hare c96a6c465b ticket: report panel mouse implementation 2026-06-13 20:15:11 +09:00
Hare 3a7edbde52 ticket: record rewind live refresh report 2026-06-13 20:14:36 +09:00
Hare 452c9df178 tui: select panel rows by mouse 2026-06-13 20:14:32 +09:00
Hare 949ceb5a21 fix: refresh tui after rewind 2026-06-13 20:13:45 +09:00
Hare 6329e598ae ticket: retain panel quit queue 2026-06-13 20:00:48 +09:00
Hare 200f952228 ticket: refresh coder handoff timestamps 2026-06-13 19:59:51 +09:00
Hare 6f8d2c619f ticket: record coder handoffs 2026-06-13 19:59:41 +09:00
Hare 20daae0c59 ticket: accept panel mouse and rewind routing 2026-06-13 19:57:19 +09:00
Hare 68f1631672 ticket: queue 00001KV04NJ8D 2026-06-13 19:53:20 +09:00
Hare 2ca7c22f99 ticket: queue 00001KV0723PC 2026-06-13 19:53:17 +09:00
Hare 82ea738e4a ticket: queue 00001KV072V89 2026-06-13 19:53:16 +09:00
Hare 8e9855cf56 chore: record current yoi fixes 2026-06-13 19:51:15 +09:00
Hare ad4d0866ae merge: integrate orchestrator companion event notify 2026-06-13 15:03:11 +09:00
Hare 074f4b6ff9 ticket: close event companion notify 2026-06-13 13:22:26 +09:00
Hare ed639ac85f ticket: mark event companion notify done 2026-06-13 13:21:40 +09:00
Hare 2e5a60f4fc merge: companion ticket event notify 2026-06-13 13:20:30 +09:00
Hare 08baab8cbc ticket: record event companion review 2026-06-13 13:20:19 +09:00
Hare e9208295f1 ticket: record event companion implementation 2026-06-13 13:09:50 +09:00
Hare 6f8571f77f fix: render ticket event notice from prompt resource 2026-06-13 13:08:12 +09:00
Hare 465ef1004b feat: notify Companion on Orchestrator ticket events 2026-06-13 12:56:46 +09:00
Hare f58207d2da ticket: delegate event companion notify coder 2026-06-13 12:33:09 +09:00
Hare a3233f04b1 ticket: accept event companion notify 2026-06-13 12:32:03 +09:00
Hare 7ff2f8e3e8 fix: remove panel companion progress feed 2026-06-13 11:51:22 +09:00
Hare 2a7c96909c ticket: reopen companion notify 2026-06-13 11:38:08 +09:00
Hare 20ce1dcda9 merge: integrate orchestration branch 2026-06-13 10:53:20 +09:00
Hare 76ab8c3584 ui: allow panel queue with unrelated root dirt 2026-06-13 10:53:20 +09:00
Hare f235fd18b2 ticket: close idle queued attention 2026-06-13 01:13:08 +09:00
Hare 60cf2d9f09 ticket: mark idle queued done 2026-06-13 01:11:57 +09:00
Hare 9538feb1ce merge: idle queued orchestrator attention 2026-06-13 01:10:38 +09:00
Hare 255a212af9 ticket: record idle queued review 2026-06-13 01:10:31 +09:00
Hare 3005884032 ticket: delegate idle queued review 2026-06-13 01:05:16 +09:00
Hare 81e666d1ee ticket: record idle queued implementation 2026-06-13 01:04:26 +09:00
Hare d2fae81a36 tui: add idle queued orchestrator attention 2026-06-13 01:02:51 +09:00
Hare a85826e82d ticket: delegate idle queued coder 2026-06-13 00:47:58 +09:00
Hare 3b3e786a0b ticket: record idle queued worktree 2026-06-13 00:47:08 +09:00
Hare e72a4536b4 ticket: accept idle queued rekick 2026-06-13 00:46:37 +09:00
Hare 6a1d60f9a5 ticket: close companion notify 2026-06-13 00:44:49 +09:00
Hare 2b64f42854 ticket: mark companion notify done 2026-06-13 00:44:04 +09:00
Hare 56b10a2d6b merge: companion weak progress notify 2026-06-13 00:42:33 +09:00
Hare 85f4bafca6 ticket: approve companion notify review 2026-06-13 00:42:28 +09:00
Hare 40bdb90243 ticket: record companion notify fix 2026-06-13 00:40:21 +09:00
Hare 61e6c0683c fix: resource-back companion progress notice 2026-06-13 00:38:52 +09:00
Hare 042da1bcfd ticket: delegate companion notify fix 2026-06-13 00:31:08 +09:00
Hare 4ad7ae9b8f ticket: request companion notify changes 2026-06-13 00:30:37 +09:00
Hare 46da9523ed ticket: delegate companion notify review 2026-06-13 00:24:00 +09:00
Hare 839b241c2c ticket: record companion notify implementation 2026-06-13 00:23:08 +09:00
Hare 724b79f1c0 Merge branch 'orchestration/yoi-orchestrator' into ticket/orchestrator-progress-companion-notify 2026-06-13 00:21:06 +09:00
Hare 3bcf677768 ticket: close language guidance 2026-06-13 00:20:20 +09:00
Hare 2ba97b674e ticket: mark language guidance done 2026-06-13 00:19:35 +09:00
Hare a87d315471 feat: weak companion progress notify 2026-06-13 00:18:41 +09:00
Hare ec66cad8f8 merge: ticket language guidance for tool users 2026-06-13 00:17:10 +09:00
Hare e1a10e4af4 ticket: record language guidance review 2026-06-13 00:17:05 +09:00
Hare c400fd5062 ticket: delegate language guidance review 2026-06-13 00:11:32 +09:00
Hare 00127ceffa ticket: record language guidance implementation 2026-06-13 00:10:46 +09:00
Hare 2e7ed31f87 ticket: close panel focus model 2026-06-13 00:09:23 +09:00
Hare e330685ec3 ticket: mark panel focus done 2026-06-13 00:08:20 +09:00
Hare 92c4dee71a ticket: guide Ticket tool language universally 2026-06-13 00:08:01 +09:00
Hare d6166c7215 merge: panel focus composer row selection 2026-06-13 00:07:22 +09:00
Hare e9b73d987c ticket: record panel focus review 2026-06-13 00:07:17 +09:00
Hare 8928937942 ticket: delegate panel focus review 2026-06-13 00:02:02 +09:00
Hare 8acf6812a6 ticket: record panel focus implementation 2026-06-13 00:01:13 +09:00
Hare c5ef6f794f tui: clarify panel composer target and row selection 2026-06-12 23:59:05 +09:00
Hare 1ead5f2597 ticket: refresh idle rekick queue note 2026-06-12 23:56:30 +09:00
Hare a9b1ab302d ticket: defer idle rekick for capacity 2026-06-12 23:56:24 +09:00
Hare dcd61410ad ticket: delegate language guidance coder 2026-06-12 23:55:50 +09:00
Hare 97719f6c47 ticket: refresh language guidance state 2026-06-12 23:55:05 +09:00
Hare e34496ff05 ticket: record language guidance worktree 2026-06-12 23:54:54 +09:00
Hare 76d358e824 ticket: accept ticket language guidance 2026-06-12 23:54:31 +09:00
Hare 365051a440 ticket: delegate companion notify coder 2026-06-12 23:52:39 +09:00
Hare 3d3c6d6d45 ticket: refresh companion notify state 2026-06-12 23:51:45 +09:00
Hare 1f2bd8a840 ticket: record companion notify worktree 2026-06-12 23:51:37 +09:00
Hare 05fe1f6fb3 ticket: accept companion progress notify 2026-06-12 23:51:11 +09:00
Hare c3bf6f9a34 ticket: queue 00001KTJXS31R 2026-06-12 23:49:40 +09:00
Hare 25476f993d ticket: queue 00001KTVJGC0Y 2026-06-12 23:49:39 +09:00
Hare cf1e401df6 merge: sync orchestration before queue 00001KTVJGC0Y 2026-06-12 23:49:38 +09:00
Hare f7d5195a4d ticket: refresh panel focus state 2026-06-12 23:46:53 +09:00
Hare d9a5099944 ticket: delegate panel focus coder 2026-06-12 23:46:46 +09:00
Hare 2fa5c0ac7b ticket: record panel focus worktree 2026-06-12 23:46:06 +09:00
Hare f13ab29456 ticket: accept panel focus model 2026-06-12 23:45:46 +09:00
Hare 10e8c84e51 ticket: queue 00001KTVJFT6F 2026-06-12 23:44:16 +09:00
Hare 75d7470923 merge: sync orchestration before queue 00001KTVJFT6F 2026-06-12 23:44:16 +09:00
Hare 550d770fa6 ui: show panel diagnostics and preserve mouse selection 2026-06-12 23:00:31 +09:00
Hare af00af0366 ticket: close role launch split 2026-06-12 22:09:34 +09:00
Hare 9ad5ed6d86 ticket: mark role launch done 2026-06-12 22:08:17 +09:00
Hare bdbd955bc6 merge: ticket role launch input split 2026-06-12 22:07:07 +09:00
Hare 0ebe870658 ticket: record role launch review 2026-06-12 22:07:00 +09:00
Hare 4e8bf411d3 docs: relax nix build validation policy 2026-06-12 21:59:11 +09:00
Hare 2e1eabb186 ticket: delegate role launch review 2026-06-12 21:57:33 +09:00
Hare 57e8663f7e ticket: record role launch implementation 2026-06-12 21:56:53 +09:00
Hare 949531a07e client: shorten ticket role launch input 2026-06-12 21:53:18 +09:00
Hare 6e3970b7d1 ticket: delegate role launch coder 2026-06-12 21:34:25 +09:00
Hare 77a3043a73 ticket: record role launch worktree 2026-06-12 21:32:42 +09:00
Hare ae66c44728 ticket: accept role launch prompt split 2026-06-12 21:32:20 +09:00
Hare 9cc91eea75 ticket: queue 00001KTVPS6K3 2026-06-12 21:29:10 +09:00
Hare 370940a959 ticket: close panel queue orchestrator sync 2026-06-12 21:26:41 +09:00
Hare edb736f4ce merge: integrate orchestrator panel queue sync 2026-06-12 20:50:33 +09:00
Hare ba009b47b2 merge: integrate panel queue orchestrator sync 2026-06-12 20:50:24 +09:00
Hare 47c82103cd prompt: confine orchestrator integration to orchestration branch 2026-06-12 20:49:51 +09:00
Hare 0bcf90680c profile: enable local orchestration tools 2026-06-12 18:50:14 +09:00
Hare a010c8f94b docs: add crate test validity reports 2026-06-12 18:50:14 +09:00
Hare 74b655df0e ui: narrow panel ticket id column 2026-06-12 18:50:14 +09:00
Hare 870b6446b1 ticket: record panel queue sync dossier 2026-06-12 18:12:31 +09:00
Hare 2e29f91bd4 ticket: defer role launch input routing 2026-06-12 18:11:35 +09:00
Hare 190f596413 ticket: delegate panel queue sync review 2026-06-12 18:06:06 +09:00
Hare 28180cc337 ticket: record panel queue sync implementation 2026-06-12 18:05:38 +09:00
Hare 04a3c6e03c tui: make panel queue handoff durable 2026-06-12 18:02:35 +09:00
Hare 25487c9325 ticket: delegate panel queue sync coder 2026-06-12 17:47:26 +09:00
Hare 571b0ce53c ticket: update panel queue sync timestamp 2026-06-12 17:46:11 +09:00
Hare ae55260174 ticket: start panel queue sync implementation 2026-06-12 17:46:06 +09:00
Hare de0f533bc3 ticket: route panel queue sync 2026-06-12 17:45:39 +09:00
Hare 466f90bdd5 prompt: clarify orchestrator branch base 2026-06-12 17:16:01 +09:00
Hare 2ec96d0e47 ticket: start orchestrator branch base guidance 2026-06-12 17:11:52 +09:00
Hare b7e53a185c ticket: add orchestrator branch base guidance 2026-06-12 17:10:59 +09:00
Hare c04b1ca289 fix: validate spawn delegation authority 2026-06-12 17:10:59 +09:00
Hare ee508f707f ticket: accept companion progress work 2026-06-12 12:48:57 +09:00
Hare 3c36d1feb8 fix: use cwd for ticket backend 2026-06-12 11:45:20 +09:00
Hare 9dc78d38bf ticket: queue orchestrator worktree sync 2026-06-12 11:39:25 +09:00
Hare a111a91c83 ticket: record cwd workspace followups 2026-06-12 01:05:29 +09:00
Hare 7eff9301b9 fix: separate workspace root from cwd 2026-06-12 01:03:33 +09:00
Hare 23a5b53807 progress: prepare companion orchestration notifications 2026-06-11 23:12:14 +09:00
Hare e159e9d338 ticket: close builtin workflow resources 2026-06-11 17:52:36 +09:00
Hare ef2099c10a merge: builtin workflow knowledge resources 2026-06-11 17:50:54 +09:00
Hare fb772e29bd ticket: record builtin workflow review and companion progress intake 2026-06-11 17:50:54 +09:00
Hare 58666e3377 ticket: report builtin workflow resources 2026-06-11 17:46:50 +09:00
Hare 2418ad330e feat: add builtin workflow resources 2026-06-11 17:44:42 +09:00
Hare bf5b5bef48 ticket: accept builtin workflow knowledge resources 2026-06-11 17:30:48 +09:00
Hare cd831ec432 ticket: add companion progress notification planning 2026-06-11 17:30:12 +09:00
Hare ef1f5710b3 ticket: close panel orchestration worktree 2026-06-11 17:14:47 +09:00
Hare 735b0c048a merge: panel orchestration worktree 2026-06-11 17:13:14 +09:00
Hare d4dc41bb3f ticket: record panel orchestration review 2026-06-11 17:13:14 +09:00
Hare ab7ea17819 ticket: consolidate lifecycle commit policy 2026-06-11 17:11:22 +09:00
Hare f2938f4e2e ticket: record panel orchestration second fix 2026-06-11 17:10:54 +09:00
Hare 00e11b3df7 feat: launch orchestrator from worktree 2026-06-11 17:10:22 +09:00
Hare dcc87973bd ticket: refine builtin resource implementation 2026-06-11 17:05:24 +09:00
Hare 3b4bb0e62c ticket: record panel orchestration fix loop 2026-06-11 17:04:50 +09:00
Hare 831c59bd12 ticket: report panel orchestration worktree 2026-06-11 16:55:33 +09:00
Hare 02979cb76f ticket: accept panel orchestration worktree 2026-06-11 16:42:35 +09:00
Hare b75e131478 ticket: add orchestrator worktree auto-create 2026-06-11 16:28:38 +09:00
Hare 1810debb58 fix: inherit default role profile config 2026-06-11 16:28:38 +09:00
Hare 730dab65b8 ticket: close orchestrator worktree layout 2026-06-11 14:00:12 +09:00
Hare 5f7b301542 merge: orchestrator worktree layout 2026-06-11 13:59:08 +09:00
Hare 7775ed4184 ticket: record orchestrator worktree review 2026-06-11 13:59:08 +09:00
Hare 93d4053cf3 ticket: record orchestrator worktree fix loop 2026-06-11 13:56:57 +09:00
Hare e7c78f96df feat: track orchestration workspace roots 2026-06-11 13:56:28 +09:00
Hare 3a291439b5 ticket: report orchestrator worktree roots 2026-06-11 13:46:50 +09:00
Hare 95fb8340eb ticket: accept orchestrator worktree layout 2026-06-11 13:35:34 +09:00
Hare 53254ee1f8 ticket: refine orchestration worktree merge policy 2026-06-11 12:49:05 +09:00
Hare d900bdc234 ticket: close workflow split design 2026-06-11 12:48:48 +09:00
Hare af30d64152 ticket: add orchestration worktree planning 2026-06-11 12:48:00 +09:00
Hare 1c2cde51a4 merge: workflow public dogfood split 2026-06-11 12:47:27 +09:00
Hare 8789191787 ticket: add workflow split dossier 2026-06-11 11:33:40 +09:00
Hare 7265f4e7c2 ticket: record workflow split fix loop 2026-06-11 11:32:09 +09:00
Hare 21a25e127f docs: split public and dogfood workflows 2026-06-11 11:31:41 +09:00
Hare 28d6246979 ticket: report workflow split design 2026-06-11 11:27:36 +09:00
Hare 50d826b11a ticket: accept workflow split design 2026-06-11 11:24:33 +09:00
Hare b7a3dae543 ticket: close builtin role profiles 2026-06-11 09:05:29 +09:00
Hare 7daecca8c5 merge: builtin role profiles 2026-06-11 09:04:05 +09:00
Hare f8096bd306 ticket: add builtin role profile dossier 2026-06-11 00:26:39 +09:00
Hare 274e5d3dbf ticket: record builtin role profile fix loop 2026-06-11 00:24:04 +09:00
Hare 85c06dc62e feat: add builtin role profiles 2026-06-11 00:23:15 +09:00
Hare fc32c459bd ticket: report builtin role profiles 2026-06-11 00:15:42 +09:00
Hare a901ebeb4f ticket: accept builtin role profiles 2026-06-11 00:00:41 +09:00
Hare a0b688e29a ticket: record intake and companion closure 2026-06-11 00:00:02 +09:00
Hare 978d97a90a ticket: record builtin role profile routing wait 2026-06-10 20:17:47 +09:00
Hare e3a1292d75 ticket: close lua profile yoi api 2026-06-10 18:55:28 +09:00
Hare 15dc176e81 merge: lua profile yoi api 2026-06-10 18:53:17 +09:00
Hare c8d30df05d ticket: record lua profile api review 2026-06-10 18:53:17 +09:00
Hare e4dd08f8b6 ticket: close file mutation serialization 2026-06-10 18:40:43 +09:00
Hare 29960c1589 merge: serialize file mutations 2026-06-10 18:38:04 +09:00
Hare 05bb33ed8e ticket: record file mutation review 2026-06-10 18:38:04 +09:00
Hare 60e12a94d1 ticket: report lua profile api implementation 2026-06-10 18:37:07 +09:00
Hare 4e1a08c23d feat: add yoi profile lua api 2026-06-10 18:36:40 +09:00
Hare c88b8cccc0 ticket: accept lua profile yoi api 2026-06-10 18:32:32 +09:00
Hare 50f417593c ticket: close setup model wizard 2026-06-10 18:31:50 +09:00
Hare 791ebbf576 ticket: close pod fresh-start path 2026-06-10 18:31:20 +09:00
Hare 021661b568 merge: setup model wizard 2026-06-10 18:29:47 +09:00
Hare 710d962ffe ticket: record setup wizard review 2026-06-10 18:29:47 +09:00
Hare 15daadd015 ticket: report file mutation serialization 2026-06-10 18:29:12 +09:00
Hare c06817b48b fix: list setup command in help 2026-06-10 18:27:18 +09:00
Hare 66d6bf2e2a fix: update setup packaging 2026-06-10 18:27:02 +09:00
Hare 401301438d fix: serialize same-file mutations 2026-06-10 18:24:53 +09:00
Hare 536ff4dd57 ticket: accept file mutation serialization 2026-06-10 18:19:18 +09:00
Hare 5e716fb351 ticket: report setup wizard implementation 2026-06-10 18:17:10 +09:00
Hare 32be6075c1 feat: add setup model command 2026-06-10 18:16:23 +09:00
Hare 6bb023e9fe merge develop into setup wizard worktree 2026-06-10 18:12:31 +09:00
Hare 9309cef4fb ticket: record setup wizard routing blocker 2026-06-10 18:09:03 +09:00
Hare 6e0cff0830 ticket: close prompt resource centralization 2026-06-10 18:08:37 +09:00
Hare 9aaa3232ef merge: prompt resource centralization 2026-06-10 18:07:29 +09:00
Hare ed1b456284 ticket: add prompt resource merge dossier 2026-06-10 18:07:25 +09:00
Hare 41f7449008 ticket: record routing progress 2026-06-10 18:07:00 +09:00
Hare 16ceb3e22e ticket: record prompt resource implementation 2026-06-10 17:11:58 +09:00
Hare 2cedd97d25 ticket: record additional queue notifications 2026-06-10 17:11:28 +09:00
Hare 342d5cf8dd refactor: move ticket role prompts to resources 2026-06-10 17:10:47 +09:00
Hare 76165b47d6 ticket: accept wizard and prompt cleanup 2026-06-10 16:59:39 +09:00
Hare 095441dbd1 ticket: record new objectives and tickets 2026-06-10 16:58:12 +09:00
Hare 63524215f0 ticket: close base32 id migration 2026-06-09 22:26:03 +09:00
Hare 5f6c695b80 merge: unify project record ids 2026-06-09 22:24:40 +09:00
Hare 52c5c3afec ticket: approve base32 id migration 2026-06-09 22:24:40 +09:00
Hare bd9651bddd ticket: record base32 implementation report 2026-06-09 22:12:35 +09:00
Hare 4203988d74 ticket: use base32 project record ids 2026-06-09 22:10:47 +09:00
Hare 2bc299c5b1 ticket: route base32 id implementation 2026-06-09 21:48:05 +09:00
Hare 0803bc3725 ticket: accept base32 id migration 2026-06-09 21:46:51 +09:00
Hare 264dfce3c5 ticket: close profile feature flags 2026-06-09 21:46:13 +09:00
Hare c71a27275d merge: gate tool surfaces by profile features 2026-06-09 21:42:57 +09:00
Hare b43e6e8d72 ticket: approve profile feature flags 2026-06-09 21:42:49 +09:00
Hare 977313dd90 ticket: record project profile test fix 2026-06-09 21:38:35 +09:00
Hare 656048a0ad test: cover project role feature profiles 2026-06-09 21:38:12 +09:00
Hare 2a0911ec30 ticket: close action attention cleanup 2026-06-09 21:33:31 +09:00
Hare 1e534b954b merge: remove ticket attention fields 2026-06-09 21:32:36 +09:00
Hare 61c93990d1 ticket: record feature role fix and attention approval 2026-06-09 21:32:06 +09:00
Hare 507863f86a fix: lock project role feature surfaces 2026-06-09 21:31:33 +09:00
Hare 4eb3e117e3 ticket: record feature cleanup review fixes 2026-06-09 21:22:21 +09:00
Hare 2fd37afb9e fix: align pod feature flag naming 2026-06-09 21:21:40 +09:00
Hare 94db2dc8c9 fix: hide obsolete ticket fields in cli show 2026-06-09 21:19:42 +09:00
Hare 7f2a6568c3 ticket: route feature cleanup reviews 2026-06-09 21:10:26 +09:00
Hare 7b80a9b69c ticket: record coder reports and intake refinement 2026-06-09 21:08:31 +09:00
Hare 3afdd894d8 ticket: remove action attention fields 2026-06-09 21:05:48 +09:00
Hare f0f6cc92d8 feat: gate built-in tools by profile features 2026-06-09 21:05:38 +09:00
Hare 2bd4e43eaa ticket: record feature and attention handoffs 2026-06-09 20:32:02 +09:00
Hare 41133e0cd5 ticket: route feature flags and attention cleanup 2026-06-09 20:30:37 +09:00
Hare bebb0bd5da ticket: close panel composer keys 2026-06-09 20:28:55 +09:00
Hare 57ed405890 merge: improve panel composer keys 2026-06-09 20:26:09 +09:00
Hare bf701b9fed ticket: record panel composer review 2026-06-09 20:26:09 +09:00
Hare 1611f61675 ticket: record panel composer fix loop 2026-06-09 20:21:17 +09:00
Hare 573b02fbfc tui: clarify panel composer enter hints 2026-06-09 20:18:47 +09:00
Hare 774bb10c35 ticket: close analytics batching and record panel review 2026-06-09 20:07:52 +09:00
Hare c837fbceb5 merge: add session analytics response batching 2026-06-09 20:04:28 +09:00
Hare b2e1b91265 ticket: record analytics batching review 2026-06-09 20:04:28 +09:00
Hare c306339e0a ticket: record panel and analytics implementations 2026-06-09 19:55:50 +09:00
Hare 703176df7c ticket: close ticket list output slimming 2026-06-09 19:53:50 +09:00
Hare f2cdb6fd19 fix: align ticket list tests with tool context 2026-06-09 19:53:16 +09:00
Hare 963db29d96 analytics: add response batching metrics 2026-06-09 19:51:06 +09:00
Hare 20f06b3541 tui: clarify panel focus and composer keys 2026-06-09 19:49:26 +09:00
Hare b6ac36e65e merge: lighten ticket list output 2026-06-09 19:48:09 +09:00
Hare 81feb77433 ticket: close parallel queued routing 2026-06-09 19:47:56 +09:00
Hare ad5d3bad64 merge: prefer parallel queued routing 2026-06-09 19:47:28 +09:00
Hare c5a022bbdf ticket: close tool execution context 2026-06-09 19:47:01 +09:00
Hare 89e768a658 ticket: record tool context and parallel reviews 2026-06-09 19:46:29 +09:00
Hare 4744548d27 merge: add tool execution context 2026-06-09 19:43:53 +09:00
Hare a775a10d95 ticket: record tool context review and parallel guidance implementation 2026-06-09 19:43:13 +09:00
Hare 492fe06832 workflow: prefer parallel queued starts 2026-06-09 19:41:20 +09:00
Hare 762a18425f ticket: record ticketlist implementation 2026-06-09 19:39:46 +09:00
Hare 7368416e54 ticket: lighten ticket list output 2026-06-09 19:38:09 +09:00
Hare 65c47d6c38 ticket: record analytics and parallel handoffs 2026-06-09 19:36:54 +09:00
Hare 5d9e227823 ticket: route analytics batching and parallel guidance 2026-06-09 19:35:18 +09:00
Hare 28e7fe3890 ticket: record tool context implementation 2026-06-09 19:33:54 +09:00
Hare 5f0be7eaad ticket: record additional queued updates 2026-06-09 19:32:59 +09:00
Hare d8aed7befe tool: add execution context 2026-06-09 19:31:11 +09:00
Hare f7ff7e20f5 ticket: record panel ticket updates 2026-06-09 19:21:47 +09:00
Hare 873076e973 ticket: record parallel handoffs 2026-06-09 19:21:14 +09:00
Hare d95b3ffff6 ticket: route parallel ticketlist and panel work 2026-06-09 19:19:43 +09:00
Hare 949d6ee705 ticket: add parallel routing guidance 2026-06-09 19:18:50 +09:00
Hare 101061031c ticket: defer attention field cleanup routing 2026-06-09 19:12:32 +09:00
Hare 3c67ae5aa9 ticket: record tool execution context handoff 2026-06-09 19:05:13 +09:00
Hare b21fab82fc ticket: route tool execution context 2026-06-09 19:03:56 +09:00
Hare 5e7f1b921e ticket: record queued tool and panel updates 2026-06-09 19:02:50 +09:00
Hare 3b6a3da19f ticket: record tool analytics followups 2026-06-09 18:51:03 +09:00
Hare 7f4c78f1b6 ticket: close session analytics tooling 2026-06-09 16:41:14 +09:00
Hare 0d2a6a7bf3 merge: add session analytics tooling 2026-06-09 16:39:41 +09:00
Hare b9dda788f6 ticket: record session analytics review 2026-06-09 16:39:41 +09:00
Hare c7ce8d6dbb ticket: add base32 id unification 2026-06-09 16:39:41 +09:00
Hare 277cb547f5 objective: record e2e test strategy 2026-06-09 16:27:27 +09:00
Hare 32f4656b87 ticket: record session analytics implementation 2026-06-09 16:26:58 +09:00
Hare c1809b37b1 feat: add session analytics tooling 2026-06-09 16:24:55 +09:00
Hare fdf2efbd82 ticket: record session analytics handoff 2026-06-09 16:00:46 +09:00
Hare c166140660 ticket: route session analytics tooling 2026-06-09 15:59:29 +09:00
Hare bd4c3afb22 ticket: record session analytics queue 2026-06-09 15:58:15 +09:00
Hare 91c3763653 ticket: close objective records 2026-06-09 15:57:30 +09:00
Hare be69a8b06f merge: add objective records 2026-06-09 15:56:29 +09:00
Hare 8e17b00b51 ticket: record objective records review 2026-06-09 15:56:29 +09:00
Hare 5b92e1da12 ticket: record objective records implementation 2026-06-09 15:50:04 +09:00
Hare be12072547 objective: add lightweight records 2026-06-09 15:48:07 +09:00
Hare f2f4039389 ticket: record objective records handoff 2026-06-09 15:33:35 +09:00
Hare 4b3be3f0b3 ticket: route objective records 2026-06-09 15:32:34 +09:00
Hare 0fef311f75 ticket: close typed relation metadata 2026-06-09 15:31:27 +09:00
Hare 2225311d0b merge: add typed ticket relation metadata 2026-06-09 15:29:49 +09:00
Hare 8aaeb2d6f8 ticket: record relation metadata review 2026-06-09 15:29:49 +09:00
Hare 51c6176ce1 ticket: record relation metadata implementation 2026-06-09 15:19:43 +09:00
Hare 4601ad2b41 ticket: add typed relation metadata 2026-06-09 15:17:45 +09:00
Hare 02b0ec1e9a ticket: record relation metadata handoff 2026-06-09 14:43:53 +09:00
Hare 41a61d79d9 ticket: route typed relation metadata 2026-06-09 14:42:56 +09:00
Hare 7cfc108030 ticket: close identity simplification 2026-06-09 14:41:27 +09:00
Hare 634da5d769 merge: simplify ticket identity fields
# Conflicts:
#	.yoi/tickets/20260607-020215-001/item.md
#	.yoi/tickets/20260607-020215-001/thread.md
#	.yoi/tickets/20260608-072732-001/item.md
#	.yoi/tickets/20260608-110940-001/item.md
#	.yoi/tickets/20260608-125430-001/item.md
#	.yoi/tickets/closed/20260607-020215-workspace-panel-orchestrator-queue-automation/item.md
#	.yoi/tickets/closed/20260607-020215-workspace-panel-orchestrator-queue-automation/thread.md
#	.yoi/tickets/open/20260607-020215-workspace-panel-orchestrator-queue-automation/item.md
#	.yoi/tickets/open/20260607-020215-workspace-panel-orchestrator-queue-automation/thread.md
2026-06-09 14:13:30 +09:00
Hare 3b01c9b3b2 ticket: record pre-migration ticket updates 2026-06-09 14:06:28 +09:00
Hare 93648e6d50 ticket: record identity simplification approval 2026-06-09 14:05:01 +09:00
Hare b4f16592d3 ticket: record identity simplification fourth fix loop 2026-06-09 13:59:17 +09:00
Hare a6326a989e fix: align ticket intake state wording 2026-06-09 13:57:35 +09:00
Hare efad0e678e ticket: record identity simplification fourth review 2026-06-09 13:50:26 +09:00
Hare c8d2415989 ticket: record identity simplification third fix loop 2026-06-09 13:41:59 +09:00
Hare 6ca27f3663 fix: use flat ticket path in tui test 2026-06-09 13:40:41 +09:00
Hare dfe3749af9 ticket: record identity simplification third review 2026-06-09 13:36:05 +09:00
Hare 08ff812ce4 ticket: record identity simplification second fix loop 2026-06-09 13:28:28 +09:00
Hare 8fe4b822ee fix: align ticket flat-state surfaces 2026-06-09 13:27:02 +09:00
Hare e9e5caccd6 ticket: record identity simplification second review 2026-06-09 13:16:19 +09:00
Hare 61b8b67951 ticket: record identity simplification fix loop 2026-06-09 13:07:07 +09:00
Hare 21114fdd6f fix: remove stale ticket status surfaces 2026-06-09 13:04:57 +09:00
Hare 5d2290ac2d ticket: record identity simplification review changes 2026-06-09 12:27:23 +09:00
Hare 953f2917f7 ticket: record identity simplification implementation 2026-06-09 12:17:29 +09:00
Hare 591db3ff72 test: update ticket schema expectations 2026-06-09 12:15:58 +09:00
Hare 191a875f5a ticket: simplify ticket identity fields 2026-06-09 11:57:15 +09:00
Hare 06f08edecc ticket: defer relation and objective routing 2026-06-09 11:28:28 +09:00
Hare 48efcc7dfb ticket: route identity simplification 2026-06-09 11:14:41 +09:00
Hare 9d9baba969 ticket: record identity simplification queue 2026-06-09 11:13:57 +09:00
Hare 9bbbad5546 ticket: close umbrella deprecation 2026-06-09 11:04:52 +09:00
Hare ee41ed94d6 merge: deprecate umbrella tickets 2026-06-09 11:04:08 +09:00
Hare 340cf2c6ed ticket: record umbrella deprecation review dossier 2026-06-09 10:38:06 +09:00
Hare d5c04128b6 ticket: record umbrella deprecation implementation 2026-06-09 10:33:32 +09:00
Hare 1349a75350 ticket: deprecate umbrella containers 2026-06-09 10:31:58 +09:00
Hare 09afc812dd ticket: record umbrella deprecation handoff 2026-06-09 10:20:40 +09:00
Hare 8db8d7d926 ticket: route umbrella deprecation 2026-06-09 10:19:46 +09:00
Hare 832e01a0ab ticket: close return planning policy 2026-06-09 10:19:04 +09:00
Hare 5af58b5ad8 merge: tighten orchestrator planning return policy 2026-06-09 10:18:28 +09:00
Hare bcf9e2e58c ticket: defer umbrella deprecation routing 2026-06-09 10:14:57 +09:00
Hare d50e6236f8 ticket: record return planning review dossier 2026-06-09 09:24:35 +09:00
Hare 427a919077 ticket: record return planning implementation 2026-06-09 09:20:08 +09:00
Hare 03c3218dc7 ticket: record additional queued updates 2026-06-09 09:20:08 +09:00
Hare 8576615f2c workflow: tighten orchestrator planning return policy 2026-06-09 09:18:08 +09:00
Hare 2a3f744c26 ticket: record return planning handoff 2026-06-09 09:07:17 +09:00
Hare 9f35442a41 ticket: route return-to-planning policy 2026-06-09 09:06:32 +09:00
Hare 958b24133d ticket: close composer history persistence 2026-06-09 09:05:23 +09:00
Hare e6593d0549 ticket: record return planning queue 2026-06-09 09:04:54 +09:00
Hare b616420722 merge: persist tui composer history 2026-06-09 09:04:03 +09:00
Hare 2eafe24607 ticket: record composer history review dossier 2026-06-09 09:00:47 +09:00
Hare f37b341677 ticket: record composer history implementation 2026-06-09 08:55:33 +09:00
Hare 64b7ff7c7c tui: persist composer history 2026-06-09 08:54:15 +09:00
Hare 7af88483fc ticket: record composer history handoff 2026-06-09 08:39:02 +09:00
Hare ff5f985f70 ticket: route composer history persistence 2026-06-09 08:38:10 +09:00
Hare 208f7b3eaa ticket: close merged queued tickets 2026-06-09 08:37:01 +09:00
Hare e6bae0429f merge: render tui markdown tables 2026-06-09 08:34:14 +09:00
Hare b3eab44412 merge: add ticket orchestration plan tools 2026-06-09 08:34:10 +09:00
Hare 1cf54efd89 ticket: record tui table rendering review dossier 2026-06-08 22:29:35 +09:00
Hare 68b0156faa ticket: record tui table rendering implementation 2026-06-08 22:26:28 +09:00
Hare f767ec7a59 tui: render markdown pipe tables in chat 2026-06-08 22:25:29 +09:00
Hare 897835b678 ticket: record orchestration plan review dossier 2026-06-08 22:23:53 +09:00
Hare af13abdaa7 ticket: defer composer history routing 2026-06-08 22:19:39 +09:00
Hare 17bddbae20 ticket: record orchestration plan review handoff 2026-06-08 22:18:40 +09:00
Hare f264663367 ticket: record tui table rendering handoff 2026-06-08 22:17:05 +09:00
Hare 3f9d5448f8 ticket: record orchestration plan implementation report 2026-06-08 22:16:22 +09:00
Hare b28b7759f5 ticket: add orchestration plan tools 2026-06-08 22:16:08 +09:00
Hare 33467911ca ticket: record composer history readiness 2026-06-08 22:15:44 +09:00
Hare 60609ec326 ticket: route tui markdown table rendering 2026-06-08 22:15:21 +09:00
Hare 0ba56fdc37 project: record queued tickets and issue notes 2026-06-08 22:14:49 +09:00
Hare 0b9ce1e36b ticket: record orchestration plan tool handoff 2026-06-08 21:51:45 +09:00
Hare 68770a2b66 ticket: route orchestration plan tool 2026-06-08 21:50:55 +09:00
Hare 1d236de956 ticket: close legacy schema cleanup 2026-06-08 21:49:31 +09:00
Hare de8e973ce2 merge: remove legacy ticket schema fields
# Conflicts:
#	.yoi/tickets/open/20260608-103842-remove-legacy-ticket-schema-fields/item.md
#	.yoi/tickets/open/20260608-103842-remove-legacy-ticket-schema-fields/thread.md
2026-06-08 21:48:40 +09:00
Hare 242f9266d7 ticket: record legacy schema implementation report 2026-06-08 21:47:18 +09:00
Hare 934a4b5802 ticket: remove legacy schema fields 2026-06-08 21:36:56 +09:00
Hare 51adf011b6 ticket: authorize legacy ticket field removal 2026-06-08 21:17:56 +09:00
Hare 2a6b9162d4 ticket: record legacy schema cleanup block 2026-06-08 21:13:33 +09:00
Hare fdb9f50bd8 ticket: route queued schema cleanup 2026-06-08 21:10:39 +09:00
Hare 87d89bfa5c ticket: record queued intake updates 2026-06-08 21:09:58 +09:00
Hare 939ba16e8d ticket: close investigator role cleanup 2026-06-08 20:55:32 +09:00
Hare b552372d76 merge: remove fixed investigator ticket role 2026-06-08 20:54:46 +09:00
Hare 427a270722 ticket: remove fixed investigator role 2026-06-08 20:42:37 +09:00
Hare 5025ca9b36 ticket: record orchestration plan delegation block 2026-06-08 20:21:53 +09:00
Hare d7e2b6f628 ticket: record investigator role delegation block 2026-06-08 20:18:36 +09:00
Hare dc65b7d4a1 ticket: route investigator role cleanup 2026-06-08 20:17:15 +09:00
Hare c24b101ad2 ticket: remove legacy ticket schema fields 2026-06-08 19:56:08 +09:00
Hare 07f8b3cb8a ticket: migrate open tickets to planning state 2026-06-08 19:22:03 +09:00
Hare 603af8bd3b ticket: close planning workflow-state replacement 2026-06-08 18:19:29 +09:00
Hare 64466f2916 merge: replace intake state with planning 2026-06-08 18:17:52 +09:00
Hare f15ccf5e9e ticket: record planning state merge-ready dossier 2026-06-08 18:17:34 +09:00
Hare 212c38eb1b ticket: record planning state re-review 2026-06-08 18:15:08 +09:00
Hare eddb33cf83 docs: fix planning sync workflow references 2026-06-08 18:13:46 +09:00
Hare e8b463f82a ticket: record planning state review changes 2026-06-08 18:09:37 +09:00
Hare cbbccae7da ticket: record planning state review delegation 2026-06-08 18:02:28 +09:00
Hare ada6db99d8 feat: replace intake workflow state with planning 2026-06-08 18:00:23 +09:00
Hare 109e991ffb ticket: record planning state coder delegation 2026-06-08 17:38:47 +09:00
Hare cb234b86ad ticket: route planning workflow-state replacement 2026-06-08 17:37:32 +09:00
Hare 7e29c1ac4e ticket: record planning workflow followups 2026-06-08 17:22:18 +09:00
Hare af13a8bddb ticket: close ticket record language split 2026-06-08 17:22:05 +09:00
Hare a74e315bc3 merge: separate ticket record language 2026-06-08 17:19:10 +09:00
Hare ccea1e05a9 ticket: record ticket language merge-ready dossier 2026-06-08 17:18:55 +09:00
Hare 0b6f4a3b22 ticket: close spawnpod child cwd 2026-06-08 17:18:03 +09:00
Hare 05df656616 merge: allow SpawnPod child cwd
# Conflicts:
#	crates/pod/src/pod.rs
2026-06-08 17:15:05 +09:00
Hare 53c052578d ticket: record spawnpod cwd merge-ready dossier 2026-06-08 17:13:46 +09:00
Hare 2bd0789713 ticket: close intake idle-shutdown 2026-06-08 17:13:01 +09:00
Hare f7c50606e4 merge: shutdown intake after ready idle 2026-06-08 17:11:19 +09:00
Hare 4cb2235c91 ticket: record intake idle shutdown merge-ready dossier 2026-06-08 17:10:52 +09:00
Hare 885e493ba2 ticket: record spawnpod cwd re-review 2026-06-08 17:08:21 +09:00
Hare 248744f9cd fix: keep SpawnPod cwd separate 2026-06-08 17:06:50 +09:00
Hare b1346eeea3 ticket: record ticket language review delegation 2026-06-08 17:04:34 +09:00
Hare b662f84d41 ticket: record intake idle shutdown review delegation 2026-06-08 17:03:09 +09:00
Hare fb261bb4f6 feat: add ticket record language config 2026-06-08 17:02:16 +09:00
Hare 61c323189c pod: stop intake after ready idle 2026-06-08 17:00:37 +09:00
Hare a987250cd3 ticket: record ticket language coder delegation 2026-06-08 16:42:18 +09:00
Hare 17ac5b04f0 ticket: route ticket record language implementation 2026-06-08 16:41:20 +09:00
Hare 2f4addbfb9 ticket: record intake idle shutdown coder delegation 2026-06-08 16:38:32 +09:00
Hare 64318e8045 ticket: route intake idle shutdown implementation 2026-06-08 16:37:28 +09:00
Hare d380d20e84 ticket: record spawnpod cwd review changes 2026-06-08 16:32:13 +09:00
Hare a3edd11528 ticket: record spawnpod cwd review delegation 2026-06-08 16:25:13 +09:00
Hare 3dd77079f1 feat: add SpawnPod cwd 2026-06-08 16:23:37 +09:00
Hare 815213cb5c ticket: record spawnpod cwd coder delegation 2026-06-08 16:07:42 +09:00
Hare 15cf4a1332 ticket: route spawnpod cwd implementation 2026-06-08 16:06:37 +09:00
Hare 3db52a63ad ticket: close direct delegation authority split 2026-06-08 15:44:01 +09:00
Hare 92d1c0bb10 merge: split direct and delegation authority 2026-06-08 15:41:01 +09:00
Hare 4b84be4bb8 ticket: record direct delegation merge-ready dossier 2026-06-08 15:40:46 +09:00
Hare a255fe7231 ticket: record direct delegation re-review 2026-06-08 15:38:36 +09:00
Hare f43c8ac65c fix: validate delegation path sets exactly 2026-06-08 15:37:13 +09:00
Hare c835c16f1d ticket: refine orchestrator planning queue 2026-06-08 15:33:04 +09:00
Hare 6e77b1cccd ticket: record direct delegation review changes 2026-06-08 15:31:21 +09:00
Hare c8440d2078 ticket: record direct delegation review delegation 2026-06-08 15:24:53 +09:00
Hare a4a9b002c6 feat: split direct and delegation scope authority 2026-06-08 15:22:39 +09:00
Hare dfd155ab0f ticket: route intake idle-shutdown preflight 2026-06-08 15:21:15 +09:00
Hare 9129e81fbe ticket: close panel done-ticket action 2026-06-08 15:11:08 +09:00
Hare 24159561b6 merge: close done tickets from panel 2026-06-08 15:09:56 +09:00
Hare 78b4257f25 ticket: record panel close merge-ready dossier 2026-06-08 15:09:38 +09:00
Hare 59ebac76e0 ticket: record panel close review and language preflight 2026-06-08 15:03:51 +09:00
Hare 6d41ed31cf tui: close done tickets from panel 2026-06-08 15:01:09 +09:00
Hare b0e587cb8d ticket: record panel close coder delegation 2026-06-08 14:51:15 +09:00
Hare c6e8f6af8f ticket: route panel close done tickets 2026-06-08 14:50:18 +09:00
Hare 67519f5387 ticket: record direct delegation coder delegation 2026-06-08 14:48:26 +09:00
Hare fa39f921d5 ticket: route direct delegation authority split 2026-06-08 14:47:22 +09:00
Hare 776e7ca3e3 ticket: route pod archive fresh-start preflight 2026-06-08 12:49:22 +09:00
Hare 856de91c51 ticket: close intake claim timing fix 2026-06-08 12:33:01 +09:00
Hare 3bc4ab2840 merge: defer intake claims until launch success 2026-06-08 12:31:53 +09:00
Hare 2f62092413 ticket: record intake claim merge-ready dossier 2026-06-08 12:31:42 +09:00
Hare 731237ac8d config: set project role language 2026-06-08 12:30:50 +09:00
Hare 4b97a6a180 ticket: record intake claim review delegation 2026-06-08 12:24:23 +09:00
Hare 6797be30f0 fix: defer intake claim until launch acceptance 2026-06-08 12:23:06 +09:00
Hare 78a779e48d ticket: record intake claim coder delegation 2026-06-08 12:09:35 +09:00
Hare d2a040d77a ticket: route intake claim and spawn cwd tickets 2026-06-08 12:08:33 +09:00
Hare 50c5743fa0 ticket: close podclient reader cleanup 2026-06-08 11:54:41 +09:00
Hare b0f37b52eb merge: abort podclient reader task on drop 2026-06-08 11:53:18 +09:00
Hare 6864413456 ticket: record podclient reader merge-ready dossier 2026-06-08 11:52:58 +09:00
Hare ca9b5c69c0 ticket: record podclient reader review delegation 2026-06-08 11:50:49 +09:00
Hare aec75b3a35 fix: abort PodClient reader task on drop 2026-06-08 11:49:26 +09:00
Hare a6c3ef1a79 ticket: record podclient reader coder delegation 2026-06-08 11:43:00 +09:00
Hare 89b4369f2a ticket: route podclient reader cleanup 2026-06-08 11:42:09 +09:00
Hare 9b3041ec3a ticket: close workspace panel nonblocking transitions 2026-06-08 11:29:28 +09:00
Hare 86198d85c3 merge: workspace panel nonblocking transitions 2026-06-08 11:27:22 +09:00
Hare 99b24ffcec ticket: record workspace panel merge-ready dossier 2026-06-08 11:27:10 +09:00
Hare ebcc32ddb3 ticket: close workflow template non-goals cleanup 2026-06-08 11:23:30 +09:00
Hare c2d624569c merge: workflow template non-goals cleanup 2026-06-08 11:21:35 +09:00
Hare 45ee5d4fee ticket: record workflow template merge-ready dossier 2026-06-08 11:21:26 +09:00
Hare 2514b6f99e ticket: record workspace panel review delegation 2026-06-08 11:20:56 +09:00
Hare 12a4f39328 tui: make panel transitions nonblocking 2026-06-08 11:19:28 +09:00
Hare 18b6d8a620 ticket: record workspace panel coder delegation 2026-06-08 11:09:26 +09:00
Hare e3df2231cb ticket: route workspace panel nonblocking transitions 2026-06-08 11:08:27 +09:00
Hare df83d3f8cf ticket: record workflow template review delegation 2026-06-08 11:05:11 +09:00
Hare 783cd42638 workflow: replace non-goals template language 2026-06-08 11:03:56 +09:00
Hare d6f66dec01 ticket: close runtime workspace identity bundle 2026-06-08 11:00:39 +09:00
Hare b7a533f6cb merge: runtime workspace identity bundle 2026-06-08 10:57:47 +09:00
Hare 7729c83581 ticket: record runtime workspace merge-ready dossier 2026-06-08 10:54:18 +09:00
Hare 7eb0304ca2 ticket: record workflow template coder delegation 2026-06-08 10:51:26 +09:00
Hare b45d8f1f6e ticket: route workflow template non-goals cleanup 2026-06-08 10:50:39 +09:00
Hare 17248b5eca ticket: record runtime workspace re-review 2026-06-08 10:49:35 +09:00
Hare 15f54df0ba runtime: use pod flag for session identity 2026-06-08 10:48:00 +09:00
Hare 9a9c28bcc6 ticket: record runtime workspace review changes 2026-06-08 10:43:12 +09:00
Hare 8587f623f7 ticket: clarify panel and spawn authority tasks 2026-06-08 10:37:20 +09:00
Hare 0f8aede253 ticket: record runtime workspace review delegation 2026-06-08 10:36:06 +09:00
Hare b6af761da0 runtime: separate workspace pod and profile identity 2026-06-08 10:34:50 +09:00
Hare e210d76a82 ticket: record runtime workspace coder delegation 2026-06-08 10:04:52 +09:00
Hare d68e8d3f95 ticket: record runtime workspace delegation block 2026-06-08 09:59:55 +09:00
Hare 9df7f4eeb7 ticket: record workspace identity routing 2026-06-08 09:57:46 +09:00
Hare 992949e3b1 ticket: record pod identity boundary decision 2026-06-08 09:56:47 +09:00
Hare c6afb5004b ticket: add pod naming cleanup tasks 2026-06-08 09:07:29 +09:00
Hare 6903eea686 ticket: record yaml and planning merge completion 2026-06-08 08:38:45 +09:00
Hare 3079606054 merge: relax implementation planning readiness 2026-06-08 08:35:31 +09:00
Hare 10dc6da903 merge: parse ticket frontmatter as yaml 2026-06-08 08:35:31 +09:00
Hare 5b7c32ca4d ticket: record planning readiness dossier 2026-06-08 08:30:01 +09:00
Hare 54f227a9e1 ticket: record yaml and planning review progress 2026-06-08 08:25:55 +09:00
Hare 1e2d1d8545 docs: relax implementation readiness wording 2026-06-08 08:22:35 +09:00
Hare dbdccc50c7 ticket: quote frontmatter strings conservatively 2026-06-08 08:22:01 +09:00
Hare 10d7844fc8 ticket: parse item frontmatter as YAML 2026-06-08 08:13:19 +09:00
Hare aa61285dc3 ticket: delegate planning readiness coder 2026-06-08 08:10:26 +09:00
Hare c83fecd057 ticket: accept planning readiness implementation 2026-06-08 08:09:38 +09:00
Hare 2abc5df9ac ticket: add workflow policy cleanup tasks 2026-06-08 08:08:40 +09:00
Hare 4dbe029bd3 ticket: route planning readiness preflight 2026-06-08 08:04:05 +09:00
Hare 5944ec673a ticket: delegate yaml frontmatter coder 2026-06-08 07:59:49 +09:00
Hare de3a5569da ticket: accept yaml frontmatter implementation 2026-06-08 07:59:14 +09:00
Hare 1af710e998 ticket: route yaml frontmatter parsing preflight 2026-06-08 07:43:30 +09:00
Hare fd4c34b292 ticket: route panel nonblocking transitions preflight 2026-06-08 07:36:38 +09:00
Hare 906e46c8db ticket: add yaml frontmatter parsing task 2026-06-08 07:33:33 +09:00
Hare 58f770b626 ticket: record bare shortcut cleanup 2026-06-08 07:26:48 +09:00
Hare 8302cbb123 ticket: record bare shortcut merge completion 2026-06-08 07:26:10 +09:00
Hare b633319705 merge: remove workspace panel bare letter shortcuts 2026-06-08 07:24:56 +09:00
Hare a5fa3d840b fix: remove panel bare letter shortcuts 2026-06-08 07:14:23 +09:00
Hare 9341c8049e ticket: add ticket action commit policy task 2026-06-08 07:06:43 +09:00
Hare 696ef30d10 config: tune workspace profiles and codex models 2026-06-08 07:05:28 +09:00
Hare d406df3056 ticket: add intake claim timing bug 2026-06-08 07:04:58 +09:00
Hare b2f6a4b1db ticket: add panel shortcut removal task 2026-06-08 06:47:13 +09:00
Hare d17b44596e ticket: close companion pod lifecycle 2026-06-08 05:45:36 +09:00
Hare f7c5b56eb0 merge: companion pod lifecycle 2026-06-08 05:45:05 +09:00
Hare 9d030fbbc9 ticket: approve companion pod lifecycle 2026-06-08 05:45:05 +09:00
Hare 1c5c77bd08 ticket: report companion lifecycle implementation 2026-06-07 19:40:36 +09:00
Hare ba0c9d565a feat: wire panel companion lifecycle 2026-06-07 19:39:41 +09:00
Hare 2177dbf019 ticket: delegate companion pod lifecycle 2026-06-07 19:18:01 +09:00
Hare e418560a12 ticket: preflight companion pod lifecycle 2026-06-07 19:17:33 +09:00
Hare b453125870 ticket: close orchestrator diagnostic persistence 2026-06-07 19:16:08 +09:00
Hare c1be0a4ac1 merge: orchestrator diagnostic persistence 2026-06-07 19:15:40 +09:00
Hare 7511cd4ed4 ticket: approve orchestrator diagnostic persistence 2026-06-07 19:15:40 +09:00
Hare 817f53bf77 ticket: report orchestrator diagnostic implementation 2026-06-07 19:10:37 +09:00
Hare e15e9b7a47 fix: persist orchestrator lifecycle diagnostics 2026-06-07 19:09:01 +09:00
Hare a7683bda8e ticket: delegate orchestrator diagnostic persistence 2026-06-07 19:00:33 +09:00
Hare 7d9312d8a5 ticket: add orchestrator diagnostic persistence 2026-06-07 18:59:51 +09:00
Hare b5861e6bf2 config: add workspace role profiles 2026-06-07 17:44:58 +09:00
Hare 383b655072 ticket: close memory root marker 2026-06-07 16:59:18 +09:00
Hare 297b66838b merge: memory root marker 2026-06-07 16:58:25 +09:00
Hare 1838865507 ticket: approve memory root marker 2026-06-07 16:58:25 +09:00
Hare 084f051a4a ticket: review memory root marker 2026-06-07 16:53:50 +09:00
Hare 9ed6613a94 memory: resolve repo memory by memory marker 2026-06-07 16:52:19 +09:00
Hare 546c8c3ac1 ticket: delegate memory root marker 2026-06-07 16:46:05 +09:00
Hare afd683ac06 ticket: preflight memory root marker 2026-06-07 16:45:08 +09:00
Hare 94e028e807 ticket: close yoi worktree sparse exclusions 2026-06-07 16:38:37 +09:00
Hare d61fcc1249 merge: narrow yoi worktree sparse exclusions 2026-06-07 16:38:00 +09:00
Hare 4d5492c998 ticket: approve yoi worktree sparse exclusions 2026-06-07 16:38:00 +09:00
Hare 6f33275309 fixup! workflow: narrow yoi worktree sparse exclusions 2026-06-07 16:36:00 +09:00
Hare bfa728f7e5 ticket: add pod notification guidance task 2026-06-07 16:33:49 +09:00
Hare 7bf8f99a10 ticket: review yoi worktree sparse exclusions 2026-06-07 16:28:58 +09:00
Hare ee85b51e55 workflow: narrow yoi worktree sparse exclusions 2026-06-07 16:27:43 +09:00
Hare f6f10c7f9d ticket: delegate yoi worktree sparse exclusions 2026-06-07 16:15:42 +09:00
Hare 0cc81cfd4f ticket: preflight yoi worktree sparse exclusions 2026-06-07 16:14:53 +09:00
Hare 157fd8ff92 ticket: close orchestrator merge completion 2026-06-07 15:47:14 +09:00
Hare 81248b1c7f merge: orchestrator merge completion 2026-06-07 15:46:28 +09:00
Hare 6976243328 ticket: approve orchestrator merge completion 2026-06-07 15:46:16 +09:00
Hare 33abf3f960 fixup! orchestrator: add merge completion guidance 2026-06-07 15:43:44 +09:00
Hare e41401f31f ticket: review orchestrator merge completion 2026-06-07 15:38:25 +09:00
Hare 9b91e56fea ticket: add yoi worktree memory boundary tasks 2026-06-07 15:29:28 +09:00
Hare cb177288be orchestrator: add merge completion guidance 2026-06-07 15:20:17 +09:00
Hare 3a0ec9feb9 ticket: delegate orchestrator merge completion 2026-06-07 15:16:24 +09:00
Hare 8db57dd59a ticket: preflight orchestrator merge completion 2026-06-07 15:15:39 +09:00
Hare 7f1518382c ticket: close orchestrator agent routing 2026-06-07 14:56:04 +09:00
Hare 55f203710b merge: orchestrator agent routing 2026-06-07 14:55:20 +09:00
Hare 839b06cbaa ticket: approve orchestrator agent routing 2026-06-07 14:55:20 +09:00
Hare 6756cc3a69 ticket: review orchestrator agent routing 2026-06-07 14:50:08 +09:00
Hare c7d6bb84e5 orchestrator: add agent routing guidance 2026-06-07 14:48:43 +09:00
Hare 40d58a7090 ticket: delegate orchestrator agent routing 2026-06-07 14:40:45 +09:00
Hare f216601aba ticket: preflight orchestrator agent routing 2026-06-07 14:39:56 +09:00
Hare 42789b471c ticket: close queued ticket routing 2026-06-07 14:13:43 +09:00
Hare c1f3ba6b89 merge: queued ticket routing 2026-06-07 14:13:09 +09:00
Hare 3c0cf73141 ticket: approve queued ticket routing 2026-06-07 14:13:09 +09:00
Hare fd9613222e ticket: review queued routing implementation 2026-06-07 14:08:44 +09:00
Hare df6d7ee9c3 ticket: record queued routing implementation 2026-06-07 14:08:13 +09:00
Hare ccf43f8466 tui: update queued ticket routing notification 2026-06-07 14:04:08 +09:00
Hare 17c2f38a8f ticket: clarify orchestrator review git boundary 2026-06-07 14:00:41 +09:00
Hare a6cc7e6629 ticket: delegate queued ticket routing 2026-06-07 13:58:31 +09:00
Hare c049f9ba6d ticket: preflight queued ticket routing 2026-06-07 13:57:52 +09:00
Hare f952c1cfb4 ticket: close ticket init scaffold 2026-06-07 13:05:29 +09:00
Hare e592496c61 merge: ticket init scaffold 2026-06-07 13:04:23 +09:00
Hare a0c1408279 ticket: approve ticket init scaffold 2026-06-07 13:04:23 +09:00
Hare abbc8e16f0 ticket: close ticket lifecycle feature 2026-06-07 13:03:39 +09:00
Hare c0fb243760 merge: ticket lifecycle feature 2026-06-07 13:02:55 +09:00
Hare 28616777af ticket: approve ticket lifecycle feature 2026-06-07 13:02:55 +09:00
Hare e57e410c4d ticket: review ticket config and feature work 2026-06-07 12:58:44 +09:00
Hare 550e0159ed ticket: split orchestrator automation phases 2026-06-07 12:57:40 +09:00
Hare 3d662bc40e pod: split ticket feature access levels 2026-06-07 12:56:13 +09:00
Hare f265098eed ticket: add ticket config init scaffold 2026-06-07 12:52:18 +09:00
Hare 9aa6e7d1ab ticket: delegate ticket lifecycle feature 2026-06-07 12:49:00 +09:00
Hare 43f273de03 ticket: preflight ticket lifecycle feature 2026-06-07 12:48:02 +09:00
Hare 9e8d77fc70 ticket: delegate ticket init scaffold 2026-06-07 12:44:22 +09:00
Hare 716eb053d1 ticket: preflight ticket init scaffold 2026-06-07 12:43:43 +09:00
Hare 8f3f5bff2c ticket: close role launch config validation 2026-06-07 12:42:45 +09:00
Hare 3064c984b5 merge: role launch config validation 2026-06-07 12:42:12 +09:00
Hare 24a5bba852 ticket: approve role launch config validation 2026-06-07 12:42:12 +09:00
Hare 1cee15479d ticket: review role launch config validation 2026-06-07 12:38:30 +09:00
Hare 30a07b7f36 ticket: validate role launch config 2026-06-07 12:37:30 +09:00
Hare c57d13e61b ticket: split ticket lifecycle feature 2026-06-07 12:35:57 +09:00
Hare 24d6a62a54 ticket: delegate role launch config validation 2026-06-07 12:21:48 +09:00
Hare f2f74a8aab ticket: preflight role launch config validation 2026-06-07 12:20:56 +09:00
Hare c73690b38c ticket: update panel config planning 2026-06-07 12:14:56 +09:00
Hare 0dd8d268a6 ticket: lower companion panel priority 2026-06-07 12:13:12 +09:00
Hare 446134020f ticket: record companion bash policy 2026-06-07 12:07:51 +09:00
Hare 7a97a5fe9d ticket: expand orchestrator automation contract 2026-06-07 11:36:48 +09:00
Hare 4eefc0f87e ticket: record orchestrator inprogress contract 2026-06-07 11:35:26 +09:00
Hare b660e790c6 ticket: close panel role session registry 2026-06-07 11:34:55 +09:00
Hare 7e8e03d4a1 merge: panel role session registry 2026-06-07 11:34:21 +09:00
Hare 994ee5d918 ticket: approve panel role session registry 2026-06-07 11:34:14 +09:00
Hare 2f3f54b01a fixup! tui: add panel role session registry 2026-06-07 11:25:03 +09:00
Hare c119c426d3 ticket: add active workflow compaction task 2026-06-07 11:23:36 +09:00
Hare e0f0f3c8b3 ticket: record panel registry review changes 2026-06-07 11:18:29 +09:00
Hare f7141b85e0 ticket: delegate panel registry review 2026-06-07 11:04:29 +09:00
Hare 489059019d tui: add panel role session registry 2026-06-07 11:02:30 +09:00
Hare 3b4182cd08 ticket: add orchestrator queue automation task 2026-06-07 11:02:27 +09:00
Hare 32e93fe075 ticket: close remove direct pod send 2026-06-07 11:01:18 +09:00
Hare 3a35968338 merge: remove panel direct pod send 2026-06-07 11:00:18 +09:00
Hare 393cde9259 tui: remove panel direct pod send 2026-06-07 10:54:15 +09:00
Hare 52683a5646 config: remove workspace manifest 2026-06-07 10:48:20 +09:00
Hare 176e50450b ticket: delegate panel role session registry 2026-06-07 10:42:57 +09:00
Hare 5db02079d0 ticket: preflight panel role session registry 2026-06-07 10:42:17 +09:00
Hare 7f8f8ae656 ticket: delegate remove direct pod send 2026-06-07 10:33:31 +09:00
Hare 9717d64458 ticket: preflight remove direct pod send 2026-06-07 10:32:22 +09:00
Hare 1b7de88a59 ticket: add panel role session registry task 2026-06-07 10:22:18 +09:00
Hare 7f386f749e ticket: plan workspace companion interface 2026-06-07 09:18:58 +09:00
Hare f662ada9f6 ticket: close explicit workflow state 2026-06-07 09:08:04 +09:00
Hare 198708866a merge: explicit ticket workflow state 2026-06-07 09:06:42 +09:00
Hare 37c7f5b79c Merge branch 'develop' into work/explicit-ticket-workflow-state 2026-06-07 09:06:42 +09:00
Hare ab85388122 feat: add explicit ticket workflow state 2026-06-07 09:02:01 +09:00
Hare 7463f8ec53 ticket: add panel transition latency task 2026-06-07 08:36:10 +09:00
Hare eec805287b ticket: preflight explicit workflow state 2026-06-07 07:49:29 +09:00
Hare 733aa96c87 ticket: close typed ticket event log 2026-06-07 07:48:18 +09:00
Hare e5c95acd33 merge: typed ticket thread event log 2026-06-07 07:47:16 +09:00
Hare e87b14fa1e ticket: add typed thread transition events 2026-06-07 07:44:13 +09:00
Hare 2cc0ea9f31 ticket: preflight typed ticket event log 2026-06-07 07:16:04 +09:00
Hare 5fcdd2a3ed ticket: split ticket workflow event log 2026-06-07 07:14:29 +09:00
Hare dbc0ed2673 ticket: simplify panel state display requirements 2026-06-07 07:04:15 +09:00
Hare 02f61ca02f ticket: add explicit workflow state plan 2026-06-07 06:54:48 +09:00
Hare ff7814e3c6 ticket: close remove tui ticket commands 2026-06-07 06:28:39 +09:00
Hare 074105c37c merge: remove tui ticket commands 2026-06-07 06:26:41 +09:00
Hare ffd81de815 Merge branch 'develop' into work/remove-tui-ticket-commands 2026-06-07 06:26:41 +09:00
Hare 4ce4ee6532 tui: remove ticket role commands 2026-06-07 06:20:56 +09:00
Hare fe11d3691c ticket: close workspace panel layout tuning 2026-06-07 06:16:52 +09:00
Hare 5cca1692c9 merge: workspace panel layout tuning 2026-06-07 06:16:02 +09:00
Hare 609c2c4b42 Merge branch 'develop' into work/workspace-panel-layout-display-tuning 2026-06-07 06:16:02 +09:00
Hare 32f34f2fab tui: align workspace panel rows 2026-06-07 06:10:51 +09:00
Hare 5f59b0bf57 ticket: preflight remove tui ticket commands 2026-06-07 06:09:49 +09:00
Hare 66b7b97839 ticket: preflight workspace panel layout tuning 2026-06-06 18:32:01 +09:00
Hare 9a3693d2f0 ticket: require panel aligned columns 2026-06-06 17:36:49 +09:00
Hare 1de5a9aac4 ticket: plan workspace panel layout tuning 2026-06-06 15:06:30 +09:00
Hare 1c49ea3451 ticket: close workspace orchestration panel 2026-06-06 15:05:38 +09:00
Hare 6aeef2d76e ticket: close workspace panel action dispatch 2026-06-06 15:04:40 +09:00
Hare f4230c7386 merge: workspace panel ticket action dispatch 2026-06-06 15:03:48 +09:00
Hare 150e9fc1cd feat: dispatch workspace panel ticket actions 2026-06-06 15:00:45 +09:00
Hare 4f0513996a ticket: preflight workspace panel action dispatch 2026-06-06 14:30:26 +09:00
Hare ee6fbea177 ticket: add workspace panel action dispatch 2026-06-06 14:29:48 +09:00
Hare a06898ec92 ticket: close intake orchestrator handoff 2026-06-06 14:27:40 +09:00
Hare aaf8391a70 merge: ticket intake orchestrator handoff 2026-06-06 14:26:50 +09:00
Hare adbf3a1e34 feat: add ticket intake handoff 2026-06-06 14:21:37 +09:00
Hare f9745dd7a6 ticket: preflight intake orchestrator handoff 2026-06-06 13:49:16 +09:00
Hare c3cccd8a9d ticket: close workspace panel composer targets 2026-06-06 13:47:31 +09:00
Hare 24d977797d merge: workspace panel composer targets 2026-06-06 13:46:42 +09:00
Hare a7c155e5c3 feat: add workspace panel composer targets 2026-06-06 13:41:39 +09:00
Hare f23a4a29c6 ticket: preflight workspace panel composer targets 2026-06-06 13:24:53 +09:00
Hare 556fd42973 ticket: close workspace panel orchestrator lifecycle 2026-06-06 13:23:48 +09:00
Hare 891fe07c6a merge: workspace panel orchestrator lifecycle 2026-06-06 13:23:01 +09:00
Hare 7b29cd6817 feat: add workspace orchestrator panel lifecycle 2026-06-06 09:13:45 +09:00
Hare 17970feb21 ticket: preflight workspace panel orchestrator lifecycle 2026-06-06 08:32:34 +09:00
Hare 38bf4b0136 ticket: close workspace panel action model 2026-06-06 08:31:28 +09:00
Hare 0fce14bcfd merge: workspace panel action model 2026-06-06 08:30:42 +09:00
Hare 11d06df771 Merge branch 'develop' into work/workspace-panel-action-model 2026-06-06 08:30:25 +09:00
Hare cf1cc72255 feat: add workspace panel action model 2026-06-06 08:22:47 +09:00
Hare d5b664b7f4 ticket: remove multi in favor of panel 2026-06-06 08:13:39 +09:00
Hare 68e9f5254a ticket: decide workspace panel launch route 2026-06-06 08:08:49 +09:00
Hare 64ca7d7d4b ticket: unify multi under workspace panel 2026-06-06 08:05:06 +09:00
Hare 7965249e23 ticket: update tui composer history persistence 2026-06-06 08:01:38 +09:00
Hare a40627ab9f ticket: preflight workspace panel action model 2026-06-06 07:35:56 +09:00
Hare 5b705a3319 ticket: approve workspace panel design 2026-06-06 07:35:18 +09:00
Hare 018d01e90e ticket: simplify workspace panel view model 2026-06-06 07:29:53 +09:00
Hare a8b012f9e7 ticket: close yoi local backend migration 2026-06-06 07:13:53 +09:00
Hare 2eb396d22c ticket: close remove tickets shell shim 2026-06-06 07:13:36 +09:00
Hare da760e646d merge: remove tickets shell shim 2026-06-06 07:10:58 +09:00
Hare a9c5c3a821 ticket: remove tickets shell shim 2026-06-06 07:10:11 +09:00
Hare 8c6264d699 ticket: preflight remove tickets shell shim 2026-06-06 06:52:55 +09:00
Hare 22967b9a64 ticket: close yoi tickets storage migration 2026-06-06 06:52:03 +09:00
Hare 441f59d23b merge: migrate ticket storage to .yoi 2026-06-06 06:50:51 +09:00
Hare 9d142ec964 Merge branch 'develop' into work/migrate-ticket-storage-to-yoi-tickets 2026-06-06 06:45:25 +09:00
Hare da94b1ec50 ticket: move local storage to .yoi/tickets 2026-06-06 06:44:10 +09:00
Hare 92da1b4489 ticket: refine workspace panel tui design 2026-06-06 06:32:54 +09:00
Hare 749b3f3aee ticket: preflight yoi tickets storage migration 2026-06-06 06:28:37 +09:00
Hare 1ea10e02ce ticket: close builtin yoi local backend config 2026-06-06 06:26:56 +09:00
Hare 8c7e94f6fc merge: builtin yoi local backend config 2026-06-06 06:25:44 +09:00
Hare dd901b1f49 ticket: draft workspace panel ui design 2026-06-06 06:22:49 +09:00
Hare cd7e60a8dd ticket: add builtin yoi local backend provider 2026-06-06 06:19:30 +09:00
Hare 8f5a829833 ticket: preflight builtin yoi local backend 2026-06-06 06:10:33 +09:00
Hare a618a52d03 ticket: plan workspace orchestration panel 2026-06-06 06:09:27 +09:00
Hare ec525a3d70 ticket: close yoi ticket cli 2026-06-06 05:58:44 +09:00
Hare 4ba1b2fb95 merge: add yoi ticket cli 2026-06-06 05:57:14 +09:00
Hare 8f0b7064fc review: approve yoi ticket cli 2026-06-06 05:56:55 +09:00
Hare 4d5068ba3b feat: add yoi ticket CLI 2026-06-06 05:50:29 +09:00
Hare d725fb81d6 ticket: preflight yoi ticket cli 2026-06-06 05:34:39 +09:00
Hare 0b279ef6d8 ticket: plan yoi local ticket backend migration 2026-06-06 05:32:21 +09:00
Hare 2d7fc7a161 docs: document ticket development workflow 2026-06-06 05:23:48 +09:00
Hare bee9455935 ticket: close tui ticket role actions 2026-06-06 05:10:01 +09:00
Hare 5d3209d8e4 merge: add tui ticket role actions 2026-06-06 05:07:44 +09:00
Hare dab2478120 review: approve tui ticket role actions 2026-06-06 05:07:30 +09:00
Hare d288fa5901 fix: require TUI ticket intake context 2026-06-06 05:04:27 +09:00
Hare e125ebb374 feat: add TUI ticket role commands 2026-06-06 04:57:10 +09:00
Hare eb95722bd0 ticket: preflight tui ticket role actions 2026-06-06 04:36:53 +09:00
Hare 549cbabbb8 ticket: close ticket role launcher 2026-06-06 04:34:23 +09:00
Hare 3d6c1abf8c merge: add ticket role launcher 2026-06-06 04:33:16 +09:00
Hare 0407ad024e review: approve ticket role launcher 2026-06-06 04:33:03 +09:00
Hare dd70517f96 fix: harden ticket role launch execution 2026-06-06 04:29:47 +09:00
Hare 4bf0e2715c feat: add ticket role pod launcher 2026-06-06 04:18:36 +09:00
Hare ecd4a37d94 ticket: preflight ticket role launcher 2026-06-06 04:07:13 +09:00
Hare 3d4a76cda5 ticket: plan ticket role launcher ui 2026-06-06 04:06:26 +09:00
Hare e1215c79be ticket: close ticket config roles 2026-06-06 03:48:27 +09:00
Hare 9910df4e24 merge: add ticket config roles 2026-06-06 03:46:08 +09:00
Hare d704aea774 review: approve ticket config roles 2026-06-06 03:45:50 +09:00
Hare 8fab67b5fc ticket: reject nix profile selectors 2026-06-06 03:43:37 +09:00
Hare 767870a4fb ticket: add workspace ticket config 2026-06-06 03:33:40 +09:00
Hare 3edd68558f ticket: refine ticket config role prompts 2026-06-06 03:15:20 +09:00
Hare 956394b4ac ticket: plan ticket config roles 2026-06-06 02:35:34 +09:00
Hare 4fb6a3a688 workflow: retire auto maintain 2026-06-06 00:56:51 +09:00
Hare 44e6367a9c ticket: close ticket intake routing umbrella 2026-06-05 15:42:54 +09:00
Hare d02516d37d ticket: close ticket orchestrator routing 2026-06-05 15:42:12 +09:00
Hare af17f8b11d workflow: add ticket orchestrator routing 2026-06-05 15:41:46 +09:00
Hare afbfc21d57 ticket: close ticket intake workflow 2026-06-05 15:11:07 +09:00
Hare 12338332d6 workflow: add ticket intake 2026-06-05 15:10:42 +09:00
Hare 78120f5360 ticket: close ticket feature tools 2026-06-05 15:00:33 +09:00
Hare 4486a8133e merge: add ticket feature tools 2026-06-05 14:59:08 +09:00
Hare 8db9e2ebef review: approve ticket feature tools 2026-06-05 14:58:53 +09:00
Hare afd7f04ff6 feat: add built-in ticket tools 2026-06-05 14:52:39 +09:00
Hare a06d007202 ticket: preflight ticket feature tools 2026-06-05 14:37:54 +09:00
Hare 229b8e4ee0 docs: expand readme overview 2026-06-05 14:30:27 +09:00
Hare 03e04d5333 ticket: close feature authority separation 2026-06-05 14:12:06 +09:00
Hare b46ea65fdd merge: clarify feature host authorities 2026-06-05 14:09:52 +09:00
Hare b96df5ac21 review: approve feature authority separation 2026-06-05 14:09:44 +09:00
Hare 4fc361fba0 refactor: name feature host authorities explicitly 2026-06-05 14:03:37 +09:00
Hare 8202db1eb1 ticket: preflight feature authority separation 2026-06-05 13:54:42 +09:00
Hare d9003e525d ticket: close local ticket backend 2026-06-05 13:45:54 +09:00
Hare 1041cdb961 merge: add local ticket backend 2026-06-05 13:44:25 +09:00
Hare cbbf7e1535 review: approve local ticket backend 2026-06-05 13:44:15 +09:00
Hare 740b017d0c feat: add local ticket backend 2026-06-05 13:37:57 +09:00
Hare 5d71659bfa ticket: preflight local ticket backend 2026-06-05 13:24:31 +09:00
Hare 11daffcd27 ticket: split ticket intake routing 2026-06-05 13:04:57 +09:00
Hare 1bf212e225 ticket: close task domain move 2026-06-05 12:26:39 +09:00
Hare 61e9a18942 merge: move task domain into pod feature 2026-06-05 12:25:08 +09:00
Hare e25b31ecd8 report: task domain move implementation 2026-06-05 12:24:59 +09:00
Hare c2ed71a388 docs: update tui task snapshot comments 2026-06-05 12:23:12 +09:00
Hare bab30952b8 review: approve task domain move 2026-06-05 12:22:35 +09:00
Hare 5469335de9 refactor: move task feature into pod 2026-06-05 12:12:19 +09:00
Hare 7c604f37dd workflow: update yoi workspace paths 2026-06-05 11:59:23 +09:00
Hare 5de4156147 task: plan task domain move into pod 2026-06-05 11:53:19 +09:00
Hare 6cc2e9ade7 ticket: close task feature state move 2026-06-05 11:24:26 +09:00
Hare 9eceb189ba merge: move task state into feature 2026-06-05 11:23:22 +09:00
Hare 8f1cb1b8c2 review: approve task feature state move 2026-06-05 11:23:03 +09:00
Hare 960f2a305e fix: account hook system item appends 2026-06-05 11:17:16 +09:00
Hare 9b07cd21c0 review: request task reminder accounting fix 2026-06-05 11:00:49 +09:00
Hare c9cb2edc7e feature: move task reminders into builtin feature 2026-06-05 10:50:37 +09:00
Hare d92a29d63c task: plan task feature state ownership 2026-06-05 10:27:30 +09:00
Hare 52fa401725 ticket: close hook context sink 2026-06-05 10:26:09 +09:00
Hare 7d71507688 merge: add hook system item sink 2026-06-05 10:25:21 +09:00
Hare 9eee15ac3a review: approve hook context sink 2026-06-05 10:25:06 +09:00
Hare 04a4a730fb pod: add hook system item sink 2026-06-05 10:16:27 +09:00
Hare 3cc3134386 task: plan hook context sink implementation 2026-06-05 10:01:24 +09:00
Hare d5b919e0d6 task: plan hook task state ownership 2026-06-05 09:50:03 +09:00
Hare 4b90fe91bf ticket: close task tools module 2026-06-05 09:05:58 +09:00
Hare 6908bb5947 merge: extract task tools module 2026-06-05 09:05:20 +09:00
Hare 2b36c261b8 review: approve task tools module 2026-06-05 09:04:56 +09:00
Hare f394f15ba5 feat: extract task tools builtin module 2026-06-05 08:59:08 +09:00
Hare 9721c81eb0 task: plan task tools module extraction 2026-06-05 08:50:53 +09:00
Hare 06c5cb7652 task: split feature authority model 2026-06-05 08:50:18 +09:00
Hare d8ba6c39f7 task: add task tools plugin trial 2026-06-05 07:35:51 +09:00
Hare eea94ea4ba ticket: close feature registry slice 2026-06-05 07:26:40 +09:00
Hare e3cb29982f merge: add feature contribution registry slice 2026-06-05 07:25:41 +09:00
Hare c1c8a21f9a review: approve feature registry slice 2026-06-05 07:25:28 +09:00
Hare 6fa08f8917 fix: enforce feature descriptor contributions 2026-06-05 07:21:07 +09:00
Hare 6ed8af8764 review: request descriptor contribution checks 2026-06-05 07:11:04 +09:00
Hare 98bbd6f185 fix: align feature authority boundaries 2026-06-05 07:03:21 +09:00
Hare 5934d043ac task: narrow plugin authority model 2026-06-05 06:51:12 +09:00
Hare b1ebd77f8a review: request feature registry rereview changes 2026-06-05 06:46:07 +09:00
Hare 40701760eb fix: harden feature contribution gates 2026-06-05 06:41:06 +09:00
Hare 72c68dad84 review: request feature registry changes 2026-06-05 06:32:45 +09:00
Hare a8ae6ca2f8 feat: add pod feature registry slice 2026-06-05 06:25:54 +09:00
Hare cb642b0d37 task: plan feature registry implementation 2026-06-05 06:08:36 +09:00
Hare 0f2ec7c263 task: add plugin service boundary 2026-06-05 05:48:27 +09:00
Hare d7e416982f task: refine plugin notification boundary 2026-06-05 05:23:23 +09:00
Hare 9753b34fb9 ticket: close hook api hardening 2026-06-04 02:07:47 +09:00
Hare 7fff857b4c merge: harden public hook api 2026-06-04 02:05:55 +09:00
Hare 29468602b4 review: approve hook api hardening 2026-06-04 02:05:47 +09:00
Hare a4e30e292a fix: remove public hook skip action 2026-06-04 02:02:52 +09:00
Hare 64ca693fce review: request hook api changes 2026-06-04 01:58:52 +09:00
Hare 2f020ed0bb fix: harden public hook actions 2026-06-04 01:52:29 +09:00
Hare 3b2c35c9c4 task: add plugin pod api design 2026-06-04 01:44:08 +09:00
Hare 2d032b3360 task: plan plugin pod api design 2026-06-04 01:38:49 +09:00
Hare 21b6848e21 task: plan hook api hardening 2026-06-04 01:37:00 +09:00
Hare fb172b6049 task: split plugin feature registry tickets 2026-06-03 21:25:18 +09:00
Hare d9a88fbd88 ticket: close reasoning block lifecycle 2026-06-03 11:15:13 +09:00
Hare c94e3a01e1 merge: unify reasoning block lifecycle 2026-06-03 11:13:42 +09:00
Hare abb6adb5d2 fix: preserve openai reasoning live stops 2026-06-03 11:08:06 +09:00
Hare 42066f1e00 fix: unify reasoning block persistence 2026-06-03 10:11:59 +09:00
Hare 8135ff9006 task: plan reasoning block lifecycle implementation 2026-06-03 09:51:12 +09:00
Hare cc98c0eb28 fix: wire tui word navigation 2026-06-03 09:22:50 +09:00
Hare d0bdad58c2 task: add reasoning block lifecycle ticket 2026-06-03 09:12:23 +09:00
Hare ea2c7418f1 ticket: close peer pod handshake 2026-06-02 22:55:02 +09:00
Hare 3750a350fd merge: peer pod handshake command 2026-06-02 22:53:09 +09:00
Hare 057c2eff5f fix: harden peer pod registration 2026-06-02 22:23:13 +09:00
Hare 093a84fc83 feat: add peer pod handshake command 2026-06-02 19:43:20 +09:00
Hare b51c32401c task: plan peer pod handshake implementation 2026-06-02 19:17:45 +09:00
Hare 849af7a4d0 task: broaden peer pod command ticket 2026-06-02 19:16:31 +09:00
Hare 8072730e51 task: clarify known pod command ticket 2026-06-02 01:19:33 +09:00
Hare f30dc705c9 task: add tui pod connect command ticket 2026-06-01 22:31:45 +09:00
Hare 88cf6f366f Update README.md 2026-06-01 22:24:42 +09:00
Hare 8b46b72a17 ticket: close docs cleanup 2026-06-01 22:23:08 +09:00
Hare 5f8b3d9a57 ticket: close workspace override 2026-06-01 22:19:45 +09:00
Hare 9be37ea123 merge: workspace local manifest override 2026-06-01 22:16:59 +09:00
Hare 8f987857e8 test: cover nearest workspace override 2026-06-01 22:16:06 +09:00
Hare 4830c3aba1 task: add dependency version update scan 2026-06-01 22:09:12 +09:00
Hare 4beb1f61ea feat: add workspace local manifest override 2026-06-01 22:06:41 +09:00
Hare dd509d40c6 task: plan workspace override ticket 2026-06-01 21:54:00 +09:00
Hare bf6915b43b task: add dependency and override work items 2026-06-01 21:53:31 +09:00
Hare 7f62c457ad chore: fix package.nix 2026-06-01 21:37:04 +09:00
Hare 9dcbd4c3e0 docs: reorganize developer documentation 2026-06-01 20:59:32 +09:00
Hare e6c458021c rename: adopt yoi identity 2026-06-01 18:49:23 +09:00
Hare 6e133a7229 ticket: plan yoi rename 2026-06-01 17:29:58 +09:00
Hare 342f194c87 fix: avoid projecting token measurements past latest usage 2026-06-01 17:29:58 +09:00
Hare 28447466ca ticket: close profile authoring requirements sync 2026-06-01 16:02:52 +09:00
Hare b48483b7f1 ticket: add plugin distribution package task 2026-06-01 15:50:54 +09:00
Hare dba0bdcbdd Update package.nix 2026-06-01 15:02:52 +09:00
Hare 15fb1e5741 ticket: clarify WorkItem model 2026-06-01 14:26:57 +09:00
Hare dadf3ae7a3 ticket: add work item intake routing task 2026-06-01 12:13:38 +09:00
Hare 439bbab634 close: merge approved TUI fixes 2026-06-01 11:24:21 +09:00
Hare dbb47e0bef merge: keys inline viewport UI 2026-06-01 11:21:55 +09:00
Hare ff279177c4 merge: TUI first message display fix 2026-06-01 11:21:55 +09:00
Hare 5886f6ad08 fix: align keys UI with TUI viewport 2026-06-01 11:16:16 +09:00
Hare 501dcc916f fix: show initial TUI user message 2026-06-01 11:13:28 +09:00
Hare 9a5f44ff65 ticket: add composer history persistence task 2026-06-01 11:11:42 +09:00
Hare b6a57f75f6 Update default.lua 2026-06-01 11:08:34 +09:00
Hare f8143bffaf ticket: add keys inline viewport UI task 2026-06-01 11:02:44 +09:00
Hare c7c1a0a68a ticket: record TUI first message investigation 2026-06-01 11:00:44 +09:00
Hare bf887fca13 ticket: add TUI first message display bug 2026-06-01 10:32:07 +09:00
1723 changed files with 182340 additions and 13487 deletions
+3 -2
View File
@@ -1,5 +1,6 @@
/target
.direnv
/result
/.direnv
/.worktree
*.local*
.env
.worktree
-1
View File
@@ -1 +0,0 @@
/memory/
-30
View File
@@ -1,30 +0,0 @@
[scope]
allow = [
{ target = ".", permission = "write", recursive = true },
]
[session]
record_event_trace = true
[worker]
reasoning = "high"
[model]
ref = "codex-oauth/gpt-5.5"
[compaction]
compact_threshold = 200000
compact_request_threshold = 240000
compact_worker_max_input_tokens = 100000
[memory]
extract_threshold = 50000
consolidation_threshold_files = 5
consolidation_threshold_bytes = 50000
[web]
enabled = true
[web.search]
provider = "brave"
api_key_env = "BRAVE_SEARCH_API_KEY"
-148
View File
@@ -1,148 +0,0 @@
---
description: TODO / tickets / docs / git history から次の作業候補を見繕い、課題発見や方針決定を半自動でイテレーションする WIP maintainer workflow
model_invokation: false
user_invocable: true
requires: []
---
# Auto Maintain Workflow (WIP)
insomnia を AI maintainer として運用するための半自動 loop。TODO / tickets から「今進められそうな作業」を選ぶだけでなく、課題の発見、設計判断の切り分け、次に人間へ戻すべき問いの整理までを扱う。
これは unattended 自動開発ではない。実装の並列委譲は `multi-agent-workflow`、worktree の機械的作成は `worktree-workflow` に任せる。本 Workflow はその前段として、何を進めるべきか、何をまだ決めるべきか、下位 orchestrator にどの intent packet を渡すべきかを整理する。
参照:
- `docs/plan/ai-maintainer.md`
- `tickets/auto-maintain-workflow.md`
## 位置づけ
AI maintainer の目的は、コードを書くこと自体ではなく、プロジェクト状態を前に進めることである。
この Workflow は WIP として、以下を行う。
- TODO / tickets / docs / git history を読んで現在地を把握する。
- 実装可能な ticket と、方針決定が必要な ticket を分ける。
- 小さく実装できる候補を提案する。
- 複数 ticket からなる作業群は、下位 orchestrator に任せる単位として整理する。
- 設計相談が必要な論点を人間に戻す。
- 運用上の問題や繰り返し発生する詰まりを report / ticket / workflow 改訂候補として整理する。
## 非目標
現時点では以下をしない。
- 常駐 scheduler として自動実行する。
- 人間の合意なしに新規 ticket を作る。
- 人間の合意なしに既存 ticket を大幅変更する。
- 人間の合意なしに ticket 完了削除を行う。
- push する。
- Workflow を自律生成・自律改訂する。
- scope / permission / history persistence / prompt context 加工原則に関わる判断を勝手に決める。
## 入力として読むもの
必要に応じて以下を読む。
1. `TODO.md`
2. `tickets/*.md`
3. `docs/plan/`
4. `docs/report/`
5. `git log --oneline` / ticket file の git history
6. 既存 worktree / branch 状態
7. 最近の失敗や通知、ユーザーからの観測
TODO と ticket の不整合を見つけたら、勝手に修正せず、まず報告する。ただしユーザーが明示的に「直して」と言った場合は Mode 1 として整理してよい。
## 分類
候補を以下に分ける。
### A. 実装委譲可能
- 要件と完了条件が具体的。
- 影響範囲が限定的。
- test / build で確認できる。
- 大きな設計判断が不要。
- scope を狭く切れる。
この場合は、人間に候補として提示する。人間が実行を許可したら `$user/multi-agent-workflow` に進む。複数 ticket や連続した作業群では、最上位 Pod が直接 coder を抱えず、下位 orchestrator に intent packet を渡して coder / reviewer sibling loop を管理させる。
### B. 方針決定が必要
- 複数の設計方針が自然に導ける。
- protocol / permission / scope / persistence / prompt context に触れる。
- UX の仕様が未確定。
- 既存 ticket の要件が古い。
この場合は、実装せず、決めるべき問いを短く提示する。
### C. ticket 整理が必要
- TODO にあるが ticket がない。
- ticket があるが TODO にない。
- 完了済みに見えるが残っている。
- ticket の前提が変わっている。
この場合は、不整合と修正案を提示する。修正は人間の許可後に行う。
### D. report / workflow 改善候補
- 同じ tool 問題が繰り返し出る。
- Workflow の指示が曖昧で実装 Pod が迷った。
- coder / reviewer / orchestrator の責務が混ざり、親 Pod が細かい code review に戻ってしまった。
- AI が過剰に Task tool を使うなど、運用上の癖が出た。
- 通知や Pod completion tracking など、開発基盤の不足が観測された。
この場合は、すぐ ticket 化するか、`docs/report/` に観測として残すか、人間に確認する。
## 半自動 iteration
1. 状態把握
- TODO / tickets / git status を読む。
- 最近完了した流れや未完了 branch を確認する。
2. 候補抽出
- 実装可能そうな ticket を 2〜5 件挙げる。
- correctness / developer experience / user-visible UX / cleanup で分類する。
3. 推奨順位
- blocking correctness を最優先。
- 実害が出ている運用問題を次点。
- 小さく完了できる UX / cleanup を次点。
- 大きな設計変更は方針相談に回す。
4. 人間への提示
- 「次に進めるなら X」を1つ推奨する。
- 理由を短く述べる。
- 実装委譲する場合の scope / test 方針を添える。
- 複数 ticket の作業群なら、下位 orchestrator に任せる単位として提示する。
5. 実行への接続
- 人間が「進めて」と言ったら `$user/multi-agent-workflow` に接続する。
- 単発 ticket か、下位 orchestrator に任せる ticket 群かを明示する。
- 下位 orchestrator に渡す intent / requirements / invariants / non-goals / escalation 条件を短くまとめる。
- worktree 作成は `$user/worktree-workflow` に従う。
## エスカレーション基準
以下では実装に進まず、人間へ戻す。
- ticket の要件から複数の設計方針が自然に導ける。
- 長期構造、crate boundary、protocol、permission、scope、history persistence に触れる。
- prompt context 加工原則に関わる。
- 新 ticket の作成、既存 ticket の大幅変更、ticket 完了削除について合意がない。
- test 不能、再現不能、または作業範囲外の不具合に遭遇した。
- WorkItem / Thread / Lease / maintainer state など、まだ設計中の概念が必要になる。
- 下位 orchestrator に委譲するには intent / invariant / escalation 条件が曖昧すぎる。
## まだ固定しないもの
以下は `docs/plan/ai-maintainer.md` の上位設計に残し、本 Workflow では詳細を固定しない。
- WorkItemStore / LeaseStore。
- operation inbox / trial log。
- QA feedback を ticket / review / report のどれに落とすか。
- AI 自身の feedback を Knowledge / report / ticket / workflow 改訂のどれにするか。
- maintainer doctor。
- reviewer Pod の評価基準の機械化。
-306
View File
@@ -1,306 +0,0 @@
---
description: worktree と sibling の coder / reviewer Pod を使い、下位 orchestrator が複数 ticket の実装・外部レビュー・修正・完了準備を管理する orchestration フロー
model_invokation: true
user_invocable: true
requires: []
---
# Multi-agent Worktree Workflow
insomnia を insomnia で開発する際の、worktree + coder Pod + 外部 reviewer Pod + orchestrator Pod の標準フロー。これは **最上位 Pod が細かい code review を抱えず、下位 orchestrator が実装と外部レビューの loop を完了状態まで運ぶためのフロー** である。
worktree の機械的作成手順は `$user/worktree-workflow`、実装前の要件同期・反証 preflight は `$user/ticket-preflight-workflow`、ticket 候補選定や方針探索の半自動 loop は `$user/auto-maintain` に分ける。
この Workflow は、対象 ticket が implementation-ready であることを前提にする。設計境界・仕様・authority boundary が未同期の場合は、worktree 作成や coder Pod 起動の前に `ticket-preflight-workflow` を通す。
## 目的
- 実装差分を ticket ごとの child worktree に隔離する。
- coder Pod に narrow write scope を渡して実装させる。
- reviewer Pod を coder の子ではなく **同じ orchestrator 配下の sibling** として立て、外部レビューを行わせる。
- orchestrator は coder / reviewer のやり取り、修正 loop、validation、merge-ready dossier 作成に責任を持つ。
- 最上位 orchestrator は、コードを直接理解し切ることではなく、委譲した intent / 要件 / invariant に沿って下位 orchestrator が完了まで運んだかを acceptance する。
## 階層モデル
基本形は以下。
```text
最上位 orchestrator Pod
- 人間との会話相手
- intent / 要件 / invariant / escalation 条件を定義
- 複数の作業群を並列管理
- final merge / ticket close / main workspace validation を行う
- 原則として line-by-line code review を主業務にしない
下位 orchestrator Podarea / epic / ticket-group coordinator
- 連続した複数 ticket または大きめの ticket 群を完了状態まで運ぶ
- worktree / branch / coder / reviewer / validation / 修正 loop を管理する
- coder と reviewer を sibling として扱う
- 親には merge-ready dossier と残論点だけを返す
coder Pod
- 指定 worktree / branch に実装する
- ticket 外判断や設計衝突は orchestrator に戻す
- reviewer に直接反論・修正依頼を完結させず、orchestrator に報告する
reviewer Pod
- 原則 read-only
- ticket / intent packet / diff / validation 結果を読む
- 実際のコード変更が概念的に何を変えたかを説明する
- intent / 要件 / invariant に反する blocker を分類して返す
```
一段だけで足りる小さい ticket では、最上位 orchestrator が直接 coder / reviewer sibling を扱ってよい。複数 ticket や設計境界をまたぐ作業では、最上位の下に下位 orchestrator を挟む。
## 開始条件
以下が揃っている時に使う。
- 対象 ticket または ticket 群が決まっている。
- ticket の背景・要件・完了条件から実装方針が概ね導ける。
- worktree 作成と git 書き込み操作について、人間の許可がある。
- main workspace の unrelated dirty changes を把握している。
- 下位 orchestrator に渡す intent / invariant / non-goals / escalation 条件を短く書ける。
- 設計境界・仕様・authority boundary に不確定要素がある場合、`ticket-preflight-workflow` の結果が ticket thread に記録されている。
設計方針が複数自然に導ける場合、protocol / scope / permission / history persistence に触れる場合、ticket 自体の再定義が必要な場合は、実装委譲前に `ticket-preflight-workflow` を通し、必要なら人間へ戻す。ただし下位 orchestrator に探索だけを委譲することはできる。
## Intent packet
階層化すると人間の意図が劣化しやすい。下位 orchestrator や coder / reviewer へは、自然文の依頼だけでなく intent packet を渡す。
標準形:
```text
Intent:
- 何を実現するか。
Requirements:
- 完了時に満たすべき observable な要件。
Invariants:
- 壊してはいけない設計境界。
- 残してはいけない旧概念や互換層。
Non-goals:
- 今回やらないこと。
Escalate if:
- 親へ戻すべき判断条件。
Validation:
- 実行すべき format / build / test / doctor。
```
reviewer には coder の実装方針ではなく、この intent packet と diff を中心に読ませる。
## orchestrator の責務
下位 orchestrator を挟まない場合は、以下を最上位 orchestrator が行う。下位 orchestrator を挟む場合は、最上位は intent packet を渡し、以下の実務を下位に委譲する。
1. 状態確認
- `git status --short --branch`
- 対象 ticket / ticket 群
- 関連 TODO / docs / 既存 worktree
- preflight が必要な ticket では、`ticket-preflight-workflow` の分類・要件同期・critical risks
2. worktree 作成
- `$user/worktree-workflow` に従い `./.worktree/<task-name>` を作る。
- `.insomnia` を sparse checkout で除外する。
3. coder Pod spawn
- read scope: main workspace 全体。
- write scope: child worktree、または必要最小 directory。
- task には以下を明示する。
- child worktree path / branch
- 対象 ticket path
- intent packet
- Bash は必ず child worktree に `cd` すること
- main workspace の `TODO.md` / `tickets/` / `docs/report/` / `.insomnia` は編集しないこと
- 範囲外事項
- 実行すべき build / test / format
- 完了報告項目
4. coder 完了確認
- `ReadPodOutput` で報告を読む。
- 通知が来ない場合でも、worktree の `git status` / `git diff` / test で完了状態を確認する。
- coder が止まった場合、worktree 状態を見て再 spawn / rollback / 親 escalation を判断する。
5. reviewer Pod spawn
- reviewer は coder の子ではなく orchestrator 配下の sibling として立てる。
- 原則 read-only scope にする。
- reviewer に渡すもの:
- ticket / intent packet
- branch / commit / diff の読み方
- 実行済み validation
- blocker / non-blocker / acceptable の分類基準
- reviewer の主目的は「コードの詳細を親の代わりに説明し、intent / invariant 違反を見つけること」。
6. review → 修正 loop
- reviewer finding を orchestrator が読む。
- blocker は coder に修正依頼する。
- reviewer の指摘を却下する場合は、orchestrator が理由を dossier に残す。
- 修正後は focused validation を実行し、必要なら reviewer に再確認させる。
- reviewer の blocker が未解決のまま親に提出しない。
7. merge-ready dossier 作成
- 親がコードを直接理解しなくても判断できるよう、変更の概念的説明と evidence をまとめる。
8. merge / lifecycle
- 最上位 orchestrator または人間の許可を持つ orchestrator が main workspace へ merge する。
- `TODO.md` から該当行を削除し、ticket を完了処理して commit する。
- main workspace で必要な test / `cargo check --workspace` / `cargo fmt --check` を再実行する。
## coder Pod の責務
- child worktree 内でのみ実装する。
- main workspace の管理ファイルを書かない。
- intent / requirements / invariants / non-goals を読んでから実装する。
- 指定された build / test / format を実行する。
- ticket 要件外の設計変更、依存関係追加、scope / permission / history persistence / prompt context 加工原則に触れる変更が必要なら止めて orchestrator に報告する。
- 完了時に以下を報告する。
- worktree path / branch
- commit hashcommit した場合)
- 変更ファイル
- 実装概要
- 実行した build / test / format
- 未解決事項
- review に回せるか
## reviewer Pod の責務
reviewer は coder の subordinate ではない。orchestrator 配下の sibling として、実装 diff を外部から読む。
- 原則 read-only で作業する。
- ticket / intent packet / diff / validation 結果を読む。
- 実際のコード変更が概念的に何を変えたかを説明する。
- 親や上位 orchestrator が line-by-line diff を読まずに判断できるよう、以下を整理する。
- 変更の概念モデル
- intent / requirements との対応
- invariant 違反の有無
- 旧概念・禁止語彙・不要な互換層の残存
- validation の妥当性
- blocker / non-blocker / follow-up
- reviewer は直接 merge しない。
- reviewer は coder に直接作業指示を出さず、orchestrator に finding を返す。
## commit 方針
coder Pod には child worktree 内での commit を許可してよい。
- commit は ticket 内で意味のある粒度にする。
- 例: `feat: ...``fix: ...``test: ...``docs: ...`
- coder Pod は merge / push / branch deletion / worktree remove をしない。
- coder Pod は `TODO.md` / ticket の完了処理 commit をしない。
- orchestrator は review 時に commit 粒度も確認する。
- 必要な修正は、原則追加 commit として積む。履歴改変や squash は人間の明示指示がある時だけ行う。
## Review → 修正 → 完了の標準形
### Approve
1. coder Pod / reviewer Pod を停止し、scope を回収する。
2. orchestrator が merge-ready dossier を確認する。
3. 最上位 orchestrator が必要最小限の spot check を行う。
4. main workspace で `git merge --no-ff <branch>` する。
5. `TODO.md` と ticket を完了処理して commit する。
6. main workspace で検証コマンドを再実行する。
7. 変更内容・commit・検証結果・残 dirty changes を報告する。
### Request changes
1. reviewer finding または orchestrator finding を blocker / non-blocker に分ける。
2. blocker はファイル / 行 / 理由 / 修正方針つきで coder に戻す。
3. coder が停止済みなら、同じ worktree / branch / scope で再 spawn する。
4. 修正後に focused test と必要な broader test を再実行する。
5. 必要なら reviewer に再確認させる。
6. blocker が解消したら dossier を更新する。
### Non-blocking comments
- ticket 要件外の改善はその場で混ぜない。
- 必要なら後続 ticket / docs/report にする。
- non-blocking を理由に completion を遅らせない。
## 並列実装時の注意
- 1 ticket = 1 worktree = 1 branch を基本にする。
- 複数 Pod に同じ write scope を渡さない。
- parent / orchestrator は coder の write scope 配下を直接編集しない。
- reviewer は read-only を基本にする。review artifact を書かせる場合は ticket artifacts など限定 scope にする。
- 依存関係がある ticket は、土台 branch を merge してから次 worktree を切る。
- parallel に走らせた Pod の完了通知は取りこぼしうるため、`ReadPodOutput` と worktree 状態で確認する。
## merge-ready dossier の標準形
```text
Status:
- completed / blocked / needs parent decision
Scope:
- ticket(s): <path>
- branch: <name>
- commits:
- <hash> <subject>
Intent check:
- invariant 1: ok / violated / not applicable, evidence ...
- invariant 2: ok / violated / not applicable, evidence ...
Implementation summary:
- 変更の概念的説明: ...
- 主要変更ファイル: ...
- compatibility / migration: ...
Coder loop:
- coder pod: <name>
- produced commits: ...
- unresolved coder notes: ...
External review:
- reviewer pod: <name>
- blockers found: ...
- blockers fixed: ...
- rejected findings and reasons: ...
- non-blocking follow-ups: ...
Validation:
- cargo fmt --check
- cargo check --workspace
- cargo test ...
- ./tickets.sh doctor
Parent decision needed:
- none / specific question
Residual risk:
- ...
Dirty state:
- ...
```
## 最上位 orchestrator の acceptance
最上位 orchestrator は、下位 orchestrator の成果を code review するのではなく acceptance する。
確認するもの:
- intent packet が保持されているか。
- reviewer が coder と独立した sibling として機能したか。
- blocker が未解決のまま握りつぶされていないか。
- 変更の概念的説明が要件と対応しているか。
- validation が ticket のリスクに対して十分か。
- escalation すべき判断を下位が勝手に決めていないか。
必要なら spot check するが、常態的な line-by-line review に戻らない。
## この Workflow で扱わないもの
以下は `$user/auto-maintain` または別の設計相談で扱う。
- ticket 候補を見繕うこと。
- 新規 ticket 作成判断。
- QA feedback / AI feedback を ticket / report / workflow に落とす判断。
- 長期 maintainer loop / WorkItemStore / LeaseStore の設計。
- reviewer Pod の品質評価を機械的に採点する仕組み。
@@ -1,167 +0,0 @@
---
description: ticket を実装委譲する前に、要件・前提・設計境界・反証観点を同期し、tickets.sh に記録する preflight フロー
model_invokation: true
user_invocable: true
requires: []
---
# Ticket Preflight Workflow
insomnia プロジェクトで ticket を実装に渡す前に、要件・前提・設計境界・反証観点を同期するための Workflow。これは **実装前の gate** であり、worktree 作成や coder / reviewer Pod の起動は `multi-agent-workflow` / `worktree-workflow` 側で扱う。
目的は「ticket があるから実装する」状態を避け、ticket が **実装可能な仕様** なのか、**調査 ticket** なのか、**人間との仕様同期が必要な未決定 ticket** なのかを明確にすることである。
## 適用する場面
以下のいずれかに当てはまる ticket は、実装委譲前にこの Workflow を通す。
- profile / manifest / scope / permission / session / history / pod-store / prompt context など authority boundary に触れる。
- ticket の文面から複数の自然な設計方針が導ける。
- 「どう実装するか」以前に「何を仕様とするか」が曖昧である。
- 既存 implementation plan があるが、抽象化・責務境界・ユーザー体験に疑問がある。
- 過去 decision / memory / docs / ticket thread と矛盾しそうである。
- coder Pod に渡す intent packet を短く書けない。
小さなバグ修正や仕様が明確な局所変更では、この Workflow は省略してよい。ただし省略理由が曖昧な場合は preflight する。
## tickets.sh 運用方針
作業管理の authority は `work-items/``tickets.sh` である。preflight の結果は、口頭の会話だけで終わらせず、ticket の `thread.md` または `item.md` に残す。
- 新規の前提・要件・受け入れ条件は、必要に応じて `item.md` を更新する。
- 調査結果・実装前 plan は `./tickets.sh comment <ticket> --role plan --file <file>` で残す。
- 採用/却下した設計判断、実装停止判断、仕様同期の結論は `--role decision` で残す。
- 実装に入ってよい状態になったら、その根拠を intent packet として ticket thread に残す。
- 仕様が未決定なら、実装 ticket にせず requirements-sync / spike / design ticket として切り分ける。
- ticket の timestamp/frontmatter が更新される場合は、関連変更と一緒に commit する。
- ticket 作成・更新・レビュー・完了は git commit で記録する。push はしない。
## 手順
### 1. 状態確認
- `git status --short --branch`
- 対象 ticket の `item.md` / `thread.md` / artifacts
- 関連 ticket / docs / workflow / Knowledge / memory decision
- 既存 worktree / branch / running Pod の有無
この段階で unrelated dirty changes がある場合は、preflight の記録だけを行うか、人間に確認してから進める。
### 2. ticket の種類を分類する
以下のどれかに分類する。
```text
implementation-ready:
- 要件・受け入れ条件・invariant が明確で、実装方針が一意または十分絞れている。
requirements-sync-needed:
- ticket の目的は見えているが、仕様・用語・責務境界・ユーザー体験の同期が必要。
spike-needed:
- 技術的実現性・依存関係・ライセンス・性能・diagnostics などを先に調べる必要がある。
blocked-needs-human-decision:
- 複数方針があり、AI が勝手に決めると設計境界や product API を固定してしまう。
```
`implementation-ready` 以外は、coder Pod に実装を委譲しない。
### 3. 要件同期
最低限、以下を確認する。
- 完了時に observable に何が変わるか。
- ticket の主語は何か: user-facing behavior / internal architecture / cleanup / investigation。
- 用語が既存設計と一致しているか。
- 何をやらないか。
- 後方互換が必要か、不要な互換層を作ろうとしていないか。
- 既存の authority boundary を変えるか。
- runtime state / persisted state / config / profile / manifest / session log / pod metadata のどれが authority か。
必要なら ticket `item.md` の Background / Requirements / Acceptance criteria を更新する。
### 4. 現行コードと過去判断の map を作る
実装前に、少なくとも関連する current code paths を列挙する。
```text
Current code map:
- file/function: 現在の責務
- file/function: 変更候補
- file/function: 触ってはいけない境界
```
この map は簡潔でよい。目的は coder Pod が blind に探しながら設計を固定するのを防ぐこと。
### 5. 批判的 preflight
実装方針を一度疑う。以下の問いに答える。
- この ticket は本当に実装 ticket か、それとも仕様同期 ticket か。
- 最も自然に見える実装が失敗するとしたらどこか。
- 抽象化に失敗して「別名の同じもの」を作っていないか。
- runtime-bound な値を reusable config に混ぜていないか。
- profile / manifest / scope / session / pod-store などの authority を逆転させていないか。
- user-facing API を安易に public contract 化していないか。
- external dependency / license / portability / packaging の問題はないか。
- reviewer が diff だけ読んでも見落とす設計リスクは何か。
この問いへの答えを `plan` または `decision` として ticket thread に残す。
### 6. intent packet を作る
実装に入ってよい場合だけ、`multi-agent-workflow` に渡す intent packet を作る。
```text
Intent:
- 何を実現するか。
Requirements:
- observable な完了条件。
Invariants:
- 壊してはいけない authority boundary / design boundary。
Non-goals:
- 今回やらないこと。
Escalate if:
- 親/人間に戻す判断条件。
Validation:
- focused test / broader check / doctor / docs 更新。
Current code map:
- 実装対象と触ってはいけない場所。
Critical risks:
- reviewer にも見てほしい失敗パターン。
```
この intent packet が短く書けない場合は、実装委譲せず requirements-sync-needed とする。
## review への引き継ぎ
preflight で出た critical risks は reviewer Pod にも渡す。reviewer は diff だけでなく、ticket の前提・要件・invariant と preflight の反証観点を読む。
reviewer に期待すること:
- 実装が preflight の intent に対応しているか。
- 抽象化失敗や authority boundary 違反がないか。
- preflight で挙げた失敗パターンに落ちていないか。
- validation がリスクに対して十分か。
## 完了条件
この Workflow 自体の完了条件は、次のいずれかである。
- ticket が `implementation-ready` になり、intent packet が thread に記録されている。
- ticket が `requirements-sync-needed` / `spike-needed` / `blocked-needs-human-decision` として整理され、次に人間へ戻す問いまたは follow-up ticket が明確になっている。
- ticket 自体が不要/誤りと判断され、理由が decision として記録されている。
## この Workflow でしないこと
- worktree を作成しない。
- coder Pod に実装を委譲しない。
- merge / close しない。
- 仕様未決定のまま「小さく実装してみる」ことで public API を固定しない。
-119
View File
@@ -1,119 +0,0 @@
---
description: insomnia プロジェクトで child git worktree を作成・管理するための機械的手順。coder Pod に作らせず、orchestrator Pod が main workspace で実行する。
model_invokation: true
user_invocable: true
requires: []
---
# Worktree Workflow
insomnia プロジェクトで実装差分を main workspace から分離するため、`./.worktree/<task-name>` に child git worktree を作る。これは **worktree の扱い方だけ** を定める Workflow であり、ticket 選定、coder / reviewer sibling の起動、外部レビュー、merge の運用は `$user/multi-agent-workflow` 側で扱う。
insomnia では Pod の write scope が排他的に委譲されるため、child worktree に `.insomnia` を置かない。main workspace は orchestration / ticket / docs / memory / workflow 管理の場所として残し、child worktree はコード差分専用の作業面として扱う。
## 適用範囲
この Workflow は親 Pod / 下位 orchestrator が main workspace で実行する。
- coder Pod にこの Workflow を渡して worktree を作らせない。
- coder Pod は、orchestrator が作成済みの child worktree を受け取り、その中で実装・build・test・報告を行う。
- reviewer Pod は、coder Pod の子ではなく orchestrator 配下の sibling として、原則 read-only で main workspace と child worktree を読む。
- ticket 作成、TODO 更新、review artifact、docs/report は main workspace 側で扱う。
## 原則
- 1 ticket / 1 実装 task につき 1 worktree を作る。
- 複数 ticket を下位 orchestrator に任せる場合も、実装差分は ticket / bounded task ごとに worktree を分ける。
- worktree path は `./.worktree/<task-name>`
- branch 名は原則 `<task-name>` と同じ kebab-case。
- child worktree には `.insomnia` を出さない。
- child worktree は実装差分用。`TODO.md` / `tickets/` / `docs/report/` / workflow / memory は原則 main workspace 側で扱う。
- push はしない。
## 事前確認
作成前に以下を確認する。
1. 対象 ticket / task が決まっているか。
2. `<task-name>` が branch / path 名に使える kebab-case か。
3. `git worktree add` を実行してよい許可があるか。
4. main workspace に混ぜてはいけない未保存差分がないか。
5. 同名 branch / worktree が既に存在しないか。
6. coder / reviewer を sibling として扱う orchestrator が誰か明確か。
同名 branch がある場合は、既存 branch を使うか、人間に確認する。`git worktree add -b` で上書きしない。
## 作成手順
main workspace で実行する。
```bash
git worktree add .worktree/<task-name> -b <task-name>
git -C .worktree/<task-name> sparse-checkout init --no-cone
git -C .worktree/<task-name> sparse-checkout set --no-cone \
'/*' \
'!/.insomnia/' \
'!/.insomnia/**'
```
確認する。
```bash
git -C .worktree/<task-name> status --short --branch
test ! -e .worktree/<task-name>/.insomnia
```
失敗した場合は、worktree / branch / lock の状態を確認し、勝手に cleanup せず人間へ報告する。
## Pod へ渡す scope
Pod を使う場合、Pod の cwd は main workspace のままになる。必ず作業対象が child worktree であることを明示し、Bash 実行時は毎回 `cd <repo>/.worktree/<task-name> && ...` させる。
coder Pod 推奨 scope:
```text
read: <repo>
write: <repo>/.worktree/<task-name>
```
reviewer Pod 推奨 scope:
```text
read: <repo>
read: <repo>/.worktree/<task-name> # main workspace の read に含まれるなら別指定不要
```
reviewer は原則 write scope を持たない。review artifact を書かせる必要がある場合だけ、ticket artifacts など限定 directory を write scope として渡す。
より狭く切れる場合は、coder の write scope を変更対象 crate / directory まで狭めてよい。ただし build / test に必要な生成物を書けることを確認する。
## child worktree 内の禁止事項
- `.insomnia` を作らない / コピーしない。
- main workspace の `TODO.md` / `tickets/` / `docs/report/` を編集しない。
- merge / push / branch deletion / worktree remove をしない。
- scope / permission / history persistence / prompt context 加工原則に関わる設計変更を無断で行わない。
## 完了時の扱い
worktree 作成 Workflow としては、完了時に merge しない。merge、ticket 完了、TODO 削除は `$user/multi-agent-workflow` または人間の明示指示で行う。
coder Pod へ渡す完了報告項目の標準形:
- worktree path
- branch 名
- commit hashcoder Pod に commit を許可した場合)
- 変更ファイル
- 実装概要
- 実行した build / test / format
- 未解決事項
- review に回せるか
reviewer Pod へ渡す完了報告項目の標準形:
- 読んだ ticket / intent packet / diff
- 実際のコード変更の概念的説明
- intent / requirements / invariant との対応
- blocker / non-blocker / follow-up
- validation の妥当性
- 親または上位 orchestrator が判断すべき残論点
+3
View File
@@ -0,0 +1,3 @@
/memory/
tickets/.ticket-backend.lock
/workspace.db*
+60
View File
@@ -0,0 +1,60 @@
---
title: "E2E テスト戦略"
state: "active"
created_at: "2026-06-09T07:09:26Z"
updated_at: "2026-06-09T07:09:26Z"
linked_tickets: ["00001KSKBP9YG"]
---
## Goal
Yoi の実プロセス・実 socket・実 provider 境界をまたぐ振る舞いを、通常の crate 内 unit / integration test だけに頼らず検証できる E2E テスト戦略を確立する。
最初の到達点は、実 `pod` / product binary を spawn し、protocol 経由で最小シナリオを実行し、graceful shutdown まで確認できる opt-in E2E harness を持つこと。その上で、permission、resume/fork、spawned Pod、provider stream、TUI/Panel などの重要境界を段階的に増やせる状態にする。
## Motivation / background
現状のテストは crate 内の in-process coverage が厚い一方で、以下の性質は単体テストだけでは十分に確認しづらい。
- 実プロセス spawn と runtime dir / socket / env の相互作用。
- Pod controller / protocol client / session store / metadata / restore の統合挙動。
- provider endpoint、streaming、auth/token、tool call、continuation、retry の実接続に近い振る舞い。
- permission deny、scope、manifest/profile 解決、child Pod delegation など、複数 crate と実 runtime state をまたぐ policy。
- TUI / Panel が前提にする Pod lifecycle や Ticket orchestration の外形。
E2E は常時実行の軽いテストではなく、dogfooding 中に「この機能は実 runtime でも壊れていない」と確認するための opt-in 検証基盤として必要。
## Strategy / design direction
- E2E は通常の `cargo test --workspace` からは外し、明示 feature / 専用 package / 独立 job で opt-in 実行する。
- まずはワークスペース直下の専用 E2E package / harness として設計し、個別 crate の unit test に押し込めない。
- protocol を喋る側は TUI の PTY 操作ではなく、typed client / protocol client を使う方向を優先する。
- provider 依存は最初から全部を対象にしない。
- 最小 harness では canned / fixture / mock HTTP server を使う。
- provider 差分は代表 provider から段階的に増やす。
- env / runtime dir / socket path は test ごとに隔離し、並列実行方針を明示する。
- 必要なら最初は `--test-threads=1` 相当で安全側に倒す。
- 将来的には per-test runtime dir と typed launch config で並列性を上げる。
- E2E は「全シナリオを大量に持つ」より、重要な runtime seam ごとに少数の高価値 scenario を置く。
- 失敗時 diagnostics は、secret を出さずに process phase、socket path、session id、log path、provider fixture id を辿れる形にする。
- E2E harness 自体が flaky にならないよう、network / time / external auth への依存は明示 opt-in に分ける。
## Success criteria / exit conditions
- `cargo test --workspace` では E2E が走らず、通常開発の feedback loop を重くしない。
- 明示コマンドで E2E harness を実行できる。
- 例: `cargo test -p e2e --features e2e` または後続で決める同等コマンド。
- 最小 scenario が実 `pod` / product binary を spawn し、protocol 経由で 1 turn 実行し、graceful shutdown まで通る。
- E2E 実行は専用 runtime/data dir を使い、通常の user/workspace state を汚さない。
- fixture / mock provider の設計があり、少なくとも 1 provider 相当の canned response を実 HTTP 経由で返せる。
- failure diagnostics から、spawn 失敗・socket 接続失敗・provider fixture 失敗・protocol 失敗・shutdown 失敗を区別できる。
- 後続 Ticket が permission / resume / fork / spawned Pod / provider streaming / Panel などを追加できる harness boundary がある。
## Decision context
- linked Ticket `00001KSKBP9YG` は、E2E harness の最初の concrete implementation Ticket として扱う。
- この Objective は E2E 全体の中長期方針・判断軸を保持する。個別 scenario の実装や harness の細部は concrete Ticket に分ける。
- TUI を直接 PTY で叩く方針は初期 harness では避け、protocol/client 経由を優先する。
- provider 全対応は初期 scope にしない。fixture / mock HTTP server を基礎にし、代表 provider から段階的に広げる。
- E2E は flakiness と実行コストが高いため、既定 CI / 既定 workspace test には入れず、opt-in 検証として始める。
- Objective context は判断材料であり、実装 authority は各 Ticket の body/thread/artifacts と明示的な Ticket relation / OrchestrationPlan に置く。
+73
View File
@@ -0,0 +1,73 @@
---
title: "ネイティブGUIアプリケーション"
state: "active"
created_at: "2026-06-10T07:41:18Z"
updated_at: "2026-06-10T07:41:18Z"
linked_tickets: []
---
## Goal
Yoi の Pod / Ticket / Orchestrator / workflow 操作を、TUI だけでなくネイティブ GUI から扱えるようにする。
最初の到達点は、既存の runtime / Ticket backend / Pod protocol / Profile / workflow authority を再実装せずに、workspace の状態を視覚的に把握し、選択した Pod・Ticket・role action に対して安全に操作できる desktop GUI client を持つこと。GUI は core authority ではなく client surface とし、既存 CLI/TUI と同じ durable state・同じ protocol・同じ permission/prompt/workflow 境界を使う。
## Motivation / background
現在の TUI / Panel は dogfooding 可能な状態まで進んでいるが、複数 Pod・複数 Ticket・Orchestrator 状態・session output・role launch・review/merge dossier を同時に扱うには、terminal UI の表示密度・視覚的状態表現・スクロール/選択/比較操作に限界が出ている。
ネイティブ GUI があると、以下をより自然に扱える。
- live / stored Pod、Ticket lane、Orchestrator progress、Companion/Intake 状態の同時表示。
- Ticket body/thread/artifacts、Pod output、validation evidence、diff/report の並列閲覧。
- composer target、role action、queue/routing/attach/restore の明確な affordance。
- long-running orchestration の通知、状態変化、失敗診断の視覚化。
- 将来的な review / merge-ready dossier / plan board / settings editor の専用 UI。
一方で、GUI を理由に runtime authority を分散させたり、Ticket/Pod state を独自 DB として二重管理したり、prompt/workflow 文字列を GUI code に直書きしたりしてはいけない。
## Strategy / design direction
- GUI は Yoi core の上に乗る client として作る。
- Pod lifecycle、session/history、Ticket storage、Profile resolution、workflow/prompt authority は既存 core を正とする。
- GUI 固有 state は selection、layout、local UI preference などに限定する。
- 最初に toolkit / architecture の小さな spike を置く。
- 評価軸は Rust code reuse、async/runtime 統合、native packaging、Linux dogfooding しやすさ、testability、accessibility、long-running log/output 表示、将来の cross-platform 余地。
- toolkit 選定は Objective では固定しない。候補比較と採用理由を Ticket に残す。
- 実装は段階的に進める。
1. read-only workspace dashboard: Pod / Ticket / Orchestrator 状態を既存 backend から表示する。
2. attach / restore / open など、既存 protocol に乗る低リスク操作を追加する。
3. composer と role action: Companion / Intake / Orchestrator / coder / reviewer launch を既存 launcher 経由で扱う。
4. Ticket body/thread/artifacts、Pod output、validation evidence、review report を閲覧しやすくする。
5. 必要に応じて settings/profile/config editor や merge-ready dossier UI を追加する。
- TUI は廃止前提にしない。
- GUI 導入後も CLI/TUI は fallback / automation / terminal-first workflow として維持する。
- GUI で見つかった state model の改善は、TUI と共有できる pure data model / client API に寄せる。
- Prompt / workflow / role guidance は GUI code に直書きしない。
- LLM-facing prompt は `resources/prompts` または `.yoi/workflow` / configured resources を正とする。
- GUI は prompt 文言を所有せず、選択・起動・runtime context の入力面を担当する。
- Security / privacy / authority boundary を保つ。
- secret-like data は UI diagnostics / logs / model context に漏らさない。
- permission / scope / profile の authority は既存 resolver/policy に従う。
- GUI convenience action は durable Ticket/Pod state transition と対応付け、暗黙の side effect を避ける。
## Success criteria / exit conditions
- 明示コマンドまたは binary で native GUI を起動できる。
- GUI は既存 workspace config、Profile、Ticket backend、Pod registry/protocol を使い、独自の authority store を持たない。
- 最小 dashboard で live/stored Pod、Ticket lane/state、Orchestrator/role session の概況を確認できる。
- GUI から少なくとも attach/restore/open 相当の安全な Pod 操作ができる。
- GUI から Ticket Intake または既存 role launcher を使った role action を実行でき、既存の prompt/workflow/resource 境界を壊さない。
- Pod output / Ticket body/thread/artifacts を、TUI より見通しよく閲覧できる最小 UI がある。
- GUI 固有 state と core durable state の境界が文書化されている。
- toolkit / architecture 選定理由、採用しなかった選択肢、packaging 方針が Ticket artifact または design note として残っている。
- GUI で使う state transformation / action eligibility は pure model として test 可能で、主要な selection/action state の unit test がある。
- GUI 実装は CLI/TUI の既存 workflow を破壊せず、必要な targeted validation が定義されている。
## Decision context
- この Objective は中長期の方向性・判断軸を保持する。具体的な toolkit 選定、crate 構成、初期 dashboard 実装、role action 実装、packaging は個別 Ticket に分ける。
- GUI は TUI の単純な置換ではなく、複数 Pod / Ticket / Orchestrator を扱う workspace cockpit として設計する。
- authority は既存 core に残す。GUI は client/view/controller surface であり、Pod/Ticket/workflow/prompt の正本を所有しない。
- Prompt 直書き禁止方針を守る。GUI 実装中に LLM-facing 文言が必要になった場合は、`resources/prompts` または workflow/resource 側に置く。
- 初期 target は dogfooding しやすい desktop GUI とし、public release / cross-platform polish / installer は後続段階で扱う。
+111
View File
@@ -0,0 +1,111 @@
---
title: 'MCP local stdio integration roadmap'
state: 'active'
created_at: '2026-06-10T07:48:45Z'
updated_at: '2026-06-20T05:34:00Z'
linked_tickets: ['00001KTR81P9X', '00001KV0SP0TY', '00001KVHR3WRF', '00001KVHR3WRY', '00001KVHR3WS6', '00001KVHR3WSD', '00001KVHR3WSN', '00001KVHR3WSW']
---
## Goal
Add MCP local stdio integration to Yoi without weakening Worker history, prompt-context, scoped tool permission, or Plugin/Feature layering invariants.
MCP is a protocol-backed integration layer on top of `pod::feature`. `pod::feature` supplies contribution/lifecycle/runtime-discovered registration substrate; MCP owns its own enablement, local server trust model, command/env/secret policy, and MCP-specific permission decisions. MCP is not the Plugin model, and Plugin permission policy is not implemented by feature-layer authority grants.
## Motivation / background
Yoi needs to integrate with external capability providers without turning them into hidden context sources or bypassing ordinary Tool/Worker safety rules. MCP is useful because it can expose tools, resources, and prompts from local protocol servers, but those server-provided declarations and results are untrusted and must be normalized through Yoi's existing authority boundaries.
The first MCP slice should focus on local stdio servers because they are concrete enough to implement and debug while keeping remote auth, OAuth, Streamable HTTP, registry distribution, sampling, and elicitation out of the initial trust boundary.
A configured local MCP server runs as a local executable. Yoi feature authority does not sandbox that executable's OS-level side effects, so command/env/secret handling and explicit local trust policy are MCP-layer responsibilities rather than generic `pod::feature` grants.
## Strategy / design direction
- Baseline the initial implementation on MCP specification `2025-11-25`.
- Start with local stdio MCP servers only.
- Treat MCP server metadata, tools, resources, prompts, and results as untrusted content.
- Do not allow MCP resources/prompts to become hidden context injection.
- They must be explicit tool operations with history records.
- Use the normal Yoi ToolRegistry, PreToolCall permission, history, and bounded result paths.
- Do not add private MCP-only bypasses around Worker/tool invariants.
- Keep sampling and elicitation fail-closed initially.
- Keep Streamable HTTP, remote auth, OAuth, and MCP Registry/distribution out of the first slice.
- Treat local stdio server execution as an explicit MCP config/trust decision, not as a `pod::feature` authority grant.
- Document clearly that a configured local MCP server runs as a local executable; Yoi feature authority does not sandbox its OS-level side effects.
### Layering decisions
- `pod::feature` is an API/contribution substrate.
- It owns contribution declarations, provider/service lifecycle hooks, diagnostics, runtime-discovered registration plumbing, and integration with normal Worker/ToolRegistry paths.
- It does not own Plugin permission policy or MCP server trust policy.
- Plugin is a user-facing package/config/runtime layer over `pod::feature`.
- Plugin permissions are Plugin-layer policy.
- Plugin package discovery/enablement must not be conflated with MCP local server execution.
- MCP is a separate feature-backed integration layer.
- MCP enablement, command/env/secret handling, server trust, and MCP-specific permission decisions live in MCP config/implementation.
- MCP provider-discovered tools/resources/prompts are exposed through the feature API and ordinary Yoi tool paths.
### Concrete implementation tickets
Completed prerequisites:
- `00001KTR81P9X` — Extend `pod::feature` API for external protocol-backed capability providers.
- `00001KV0SP0TY` — Remove feature-layer HostAuthority model.
Concrete MCP implementation sequence:
1. `00001KVHR3WRF` — MCP local stdio server config and trust policy.
- explicit config, command/env/secret redaction, local executable trust boundary, no auto-start.
2. `00001KVHR3WRY` — MCP stdio JSON-RPC lifecycle client.
- subprocess lifecycle, initialize/capability negotiation, diagnostics, shutdown.
3. `00001KVHR3WS6` — MCP tools/list registration into ToolRegistry.
- provider-discovered tools, stable namespacing, schema validation, untrusted metadata normalization, no tools/call yet.
4. `00001KVHR3WSD` — MCP tools/call execution through ordinary Tool path.
- PreToolCall gate before server call, bounded result serialization, history path.
5. `00001KVHR3WSN` — MCP resources/prompts as explicit tool operations.
- resources/list/read and prompts/list/get without hidden context injection.
6. `00001KVHR3WSW` — MCP list_changed notification handling.
- deterministic safe refresh/diagnostic behavior without breaking tool schema or prompt-cache invariants.
The old broad implementation Ticket `00001KTR82RB7` is superseded by this sequence and should not be used as an implementation work item.
### Terminology
Use `runtime-discovered` or `provider-discovered` for MCP tools/resources/prompts discovered from `tools/list`, `resources/list`, or `prompts/list`. Avoid `dynamic tools` / `dynamic registry` in new MCP design prose because those phrases imply that model-visible tool schemas may change during an active LLM run.
The intended invariant is:
```text
provider-discovered at startup / provider initialization;
registered into the ordinary ToolRegistry before model exposure;
run-stable for the duration of a model request/run;
refreshed only at a safe boundary or reported as a diagnostic.
```
### Later follow-ups
- Richer MCP task/task-support integration if ordinary tool-call fallback is insufficient.
- Streamable HTTP transport.
- OAuth / remote auth.
- Registry/package distribution.
- Explicit MCP/Plugin bridge only if separately approved; do not conflate Plugin packages with MCP local server execution.
## Success criteria / exit conditions
- A local mock MCP server can be configured explicitly and initialized.
- Discovered MCP tools appear as ordinary Yoi tools with stable namespacing.
- Tool calls go through ordinary permission and history paths.
- MCP resources/prompts are explicit operations, not hidden context injections.
- MCP result forms are bounded and safely serialized.
- Secret values, command/env details, and server diagnostics are redacted where required.
- Local server trust boundary is documented: Yoi does not sandbox the configured executable through feature authority.
- Feature, Plugin, and MCP permission/trust responsibilities are documented as separate layers.
## Decision context
- MCP is not the Plugin model; it is a protocol-backed integration layer using `pod::feature` substrate.
- `pod::feature` should provide contribution/lifecycle/runtime-discovered registration plumbing, not MCP server trust policy or Plugin package permission policy.
- MCP resources and prompts must never be hidden context injection. They are explicit operations recorded through ordinary history/tool paths.
- Provider-discovered tools are discovered at startup/provider initialization and registered before model exposure; model-visible schemas remain run-stable during a request/run.
- Local stdio server execution is a user/config trust decision. Yoi does not sandbox the local executable merely because it is configured through MCP.
+101
View File
@@ -0,0 +1,101 @@
---
title: "Plugin platform roadmap"
state: "active"
created_at: "2026-06-19T13:18:58Z"
updated_at: "2026-06-24T19:55:00Z"
linked_tickets: ["00001KV5R5V2S", "00001KV5W3PHA", "00001KV5W3PHW", "00001KV5W3PJ3", "00001KVFD3YSV", "00001KVFDX9AF", "00001KVFDX9AY", "00001KVG0HR96", "00001KVXHVCR5", "00001KVXK0WD3", "00001KVXK0WDH", "00001KVXK0WDQ", "00001KVXK0WDX", "00001KVXK0WE4", "00001KVXK0WEA"]
---
## Goal
Build Yoi's Plugin platform as a coherent extension system: packages are discovered and inspected safely, enabled explicitly, registered through typed Plugin surfaces, executed in a sandboxed runtime, constrained by Plugin-layer grants, and authored through SDK/templates rather than raw runtime ABI details.
The long-term platform goal is not merely to run Wasm. It is to make Plugin packages a durable, inspectable, permissioned, and authorable extension layer for Tools first, then host APIs (`https`, `fs`), and later Service / Ingress surfaces when concrete needs justify them.
## Motivation / background
The current Plugin foundation is already substantial:
- package discovery and explicit enablement resolver;
- Tool surface registration through the ordinary ToolRegistry/model-visible schema path;
- minimal sandboxed WASM Tool execution;
- Plugin permission grant enforcement;
- follow-up Tickets for read-only inspection CLI, `https`, `fs`, and Component Model migration.
The remaining work must be kept as one roadmap because the pieces constrain each other:
- Plugin authoring needs an SDK/PDK and examples, not raw pointer/length Wasm ABI hand-coding.
- `https` and `fs` host APIs must be grant-gated and shaped so they can move cleanly to typed Component Model interfaces.
- Diagnostics (`yoi plugin list/show`) are needed before the system becomes harder to debug.
- Component Model adoption should guide new host API design before a custom raw ABI becomes entrenched.
- Service / Ingress are useful for bridge-style integrations, but should come after Tool runtime, diagnostics, and host API policy are stable.
Research of common Wasm extension systems points to the same pattern: mature systems combine a package manifest, explicit capabilities, a sandbox runtime, host-provided capability APIs, language SDK/PDK bindings, templates/examples, inspection/check tooling, and versioned interfaces.
## Strategy / design direction
- Keep Plugin as a user-facing package/config/runtime layer above lower-level `pod::feature` substrate.
- `pod::feature` provides contribution/registration substrate.
- Plugin owns package discovery, enablement, grant policy, runtime selection, authoring UX, and user-facing diagnostics.
- Preserve authority boundaries.
- Package discovery is read-only inventory.
- Package presence never registers a Tool/Hook, executes Wasm, starts a Service, reads files, opens network, or injects context.
- Explicit enablement and Plugin grants are required before registration/execution/host API use.
- Tool calls/results continue through ordinary ToolRegistry and Worker history paths.
- Treat Component Model as the active Plugin runtime shape before public release.
- New typed Plugin host APIs should be designed in WIT-compatible terms.
- `runtime.kind = "wasm-component"` is the current Plugin runtime authority for new work.
- The earlier `yoi-plugin-wasm-1` raw core-Wasm compatibility bridge is retired from the active roadmap because Plugin has not been publicly released and compatibility would preserve the wrong boundary.
- Sequence the platform in usable layers:
1. Package discovery / explicit enablement / digest-pinned restore. Completed foundation.
2. Tool surface registration. Completed foundation.
3. Minimal WASM Tool execution. Completed foundation.
4. Permission grants. Completed foundation.
5. Read-only Plugin CLI inspection (`yoi plugin list/show`) for debugging discovery/enablement/grants/runtime metadata.
6. `https` and `fs` host APIs for Tool Plugins, grant-gated and WIT-compatible.
7. Remove the raw core-Wasm compatibility bridge and reject legacy runtime manifests.
8. Component Model runtime and authoring model become the only active Plugin runtime path.
9. Guest SDK/PDK, examples, `check`/`pack`/`new` authoring tooling target Component Model only.
10. Service / Ingress runtime is developed as host-managed lifecycle, event queue, output command, and diagnostics slices.
11. WebSocket support for long-lived integrations is host-owned connection driver + ingress event delivery + output command, not Plugin-owned polling with `recv(timeout)`.
- Keep Discord-style bridge goals split into two stages.
- Outbound Discord/webhook Tool is possible after `https`.
- Bidirectional Discord bridge requires Service + Ingress + WebSocket or inbound HTTP and host routing policy.
## Current implementation split
The broad Plugin runtime redesign is tracked by `00001KVXHVCR5` as context only; implementation should proceed through concrete Tickets instead of routing that umbrella as a single coding task.
1. `00001KVXK0WD3` Remove legacy raw WASM Plugin runtime.
- Deletes the active `LegacyToolAdapter` / raw-Wasm execution path.
2. `00001KVXK0WDH` Reject legacy Plugin runtime in manifest and CLI diagnostics.
- Makes `plugin.toml`, `yoi plugin check/list/show`, docs, and fixtures reflect Component Model only runtime authority.
3. `00001KVXK0WDQ` Define Plugin Service lifecycle and ingress queue runtime.
- Adds host-managed lifecycle, bounded queue, serial dispatch, backpressure, timeout, and diagnostics.
4. `00001KVXK0WDX` Add Plugin service output command model.
- Lets service handlers request side effects as grant-checked commands rather than ambient authority.
5. `00001KVXK0WE4` Add host-owned WebSocket driver for Plugin services.
- Converts incoming WS frames into ingress events and sends outbound frames through output commands.
6. `00001KVXK0WEA` Update Plugin WIT PDK templates for service event runtime.
- Aligns authoring API, WIT, PDK, templates, and docs with the new event/command execution model.
## Success criteria / exit conditions
- Users can inspect Plugin discovery/enablement/grant/runtime state through a read-only CLI without executing Plugin code.
- Plugin authors can build a Tool Plugin without writing raw memory/pointer ABI plumbing.
- Tool Plugins can safely call grant-gated `https` and `fs` host APIs.
- Component Model is the only active Plugin runtime path, with WIT-compatible host API types and measured packaging/runtime impact.
- Plugin grants remain authoritative over registration, execution, and host API calls.
- Plugin diagnostics explain missing package, invalid manifest, digest/version mismatch, missing grant, rejected schema, runtime mismatch, legacy runtime rejection, and unsupported host API cases safely.
- Raw core-Wasm Plugin compatibility is removed before public release; tests and docs no longer treat it as a current runtime.
- Documentation covers package format, Component Model runtime, host API authority, authoring SDK/templates, Service/Ingress event runtime, and operational debugging.
- Service/Ingress work is host-managed: services have lifecycle/status, ingress uses bounded queues, side effects are output commands, and WebSocket integrations use host-owned connection drivers.
## Decision context
- This Objective is roadmap context, not Ticket authority. Implementation still requires reading concrete Ticket bodies, threads, artifacts, and relations.
- Component Model direction supersedes Yoi's custom raw ABI as both long-term and current active Plugin runtime authority before public release.
- `https` / `fs` work should avoid choices that conflict with later WIT typed interfaces.
- Guest SDK work targets Component Model directly; raw ABI wrappers are not a supported transitional authoring path.
- Plugin and MCP remain separate. Component Model adoption for Plugin does not imply MCP server execution, MCP prompt/resource injection, or MCP trust policy changes.
- Plugin surfaces remain Tool / Hook / Service / Ingress; outbound side effects are Tool metadata and host API grants, not a separate surface.
+249
View File
@@ -0,0 +1,249 @@
---
title: "Team workspace control plane and runner architecture"
state: "active"
created_at: "2026-06-20T14:26:29Z"
updated_at: "2026-06-21T18:10:00Z"
linked_tickets: ["00001KVMFFYVX"]
---
## Goal
Yoi を、単一のローカル開発ディレクトリで動くエージェント実行ツールから、チームで作業・判断・実行結果を管理できるワークスペース基盤へ発展させる。
この Objective の中心は、Web から扱える管理システムを作り、その管理システムにローカル実行環境・リモート実行環境・将来のクラウド実行環境を接続できるようにすることである。管理システムは Ticket、Objective、Memory、Knowledge、Run、Artifact、Runner の正本を持つ。実行環境はその管理システムから仕事を受け取り、コード取得、作業用ディレクトリ作成、エージェント実行、検証、結果報告を行う。
この Objective は Git ホスティングサービスを作るものではない。Git は重要な Repository provider として扱うが、Yoi の Workspace は Git Repository root と同じものにしない。Yoi が作るべきものは、コード・ドキュメント・データ・成果物などの Repository と実行環境を接続しながら、人間とエージェントの作業、Ticket lifecycle、Memory/Knowledge、検証証跡、実行環境配置を管理するチームワークスペースである。
## Glossary
この Objective では、以下の語をこの意味で使う。
- Workspace: チームまたはプロジェクトの管理単位。Ticket、Objective、Memory、Knowledge、Run、Artifact、Policy、Actor、Repository を持つ。Git Repository root ではない。
- Control plane: Workspace の正本を持ち、Web UI / API / CLI から操作される管理システム。
- Runner: Control plane から仕事を受け取り、実際にエージェントやツールを動かす実行環境。最初はローカルマシン上の runner、後でリモート runner やクラウド runner を追加する。
- Repository: Workspace に接続される source/storage。コード、ドキュメント、local directory、object storage、artifact store、dataset などを含む。Git Repository も Repository の一種であり、基本的には filesystem path ではなく URI / URL で識別する。
- Repository provider: Repository の種類ごとの実装。Git、local filesystem、object store、artifact store、将来の non-Git VCS など。
- RepositoryPoint: Repository 内の特定地点。Git commit/ref/path、object store version/prefix、file snapshot/path など、provider ごとの revision/ref/snapshot/path を表す。
- Execution Workspace: Runner が Run のために作る作業用ディレクトリや container filesystem。1 つ以上の RepositoryPoint から materialize される。Git worktree、clone、sparse checkout などはこれを作る手段である。
- Ticket: チームで扱う作業単位。目的、要件、判断、議論、完了条件、関係、証跡を持つ。
- Objective: 複数の Ticket を束ねる長期目標や設計方針。
- Run: Ticket や Objective に対して行われた具体的な実行試行。どの Runner が、どの Execution Workspace で、何を実行し、どんな結果になったかを持つ。
- Artifact: Run や Ticket に紐づく成果物や証跡。diff、log、validation result、review result、report など。
- Memory: エージェントやユーザーが再利用するための要約された文脈。Ticket や Run の正本ではない。
- Knowledge: 保守された知識や設計判断。Memory より人間が維持する資料に近い。
- Actor: 人間、エージェント、システム、外部サービスなど、Workspace 上で操作や発言を行う主体。
## Motivation / background
現在の Yoi は、ローカルの `.yoi` ディレクトリ、ローカルプロセス、Ticket ファイル、ワークツリー運用によって、自分自身の開発に使えるエージェント実行環境になっている。しかし、チーム利用、Web UI、リモート実行、クラウド実行、最終的な SaaS 提供を考えると、次の前提を変える必要がある。
- Workspace を Git Repository root と同一視しない。
- ローカル filesystem 上の `.yoi` を、長期的なチーム用正本 store にしない。
- Ticket をローカル作業メモではなく、チームの作業調整 record にする。
- Ticket と実行試行を分ける。実行試行は Run として記録する。
- 管理システムと実行環境を分ける。
- まず Web から Ticket、Objective、Memory、Knowledge、Run、Artifact、Runner state を見られるようにする。
- 最初はローカルマシンを Runner として使い、後でリモート Runner、クラウド Runner、runner pool、resource allocation、quota、billing、sandboxing に拡張する。
- Git ホスティング機能を取り込むのではなく、Git Repository / worktree / clone は Repository provider と Execution Workspace materialization の手段として扱う。
OSS として Control plane、Runner、Web frontend、protocol を公開しつつ、managed service では hosted control plane、runner fleet、リソース柔軟性、team auth、backup、audit、availability、multi-tenant operations で価値を出す。
## Strategy / design direction
### 1. Control plane を先に作る
Team Workspace の正本は server-side control plane に置く。`.yoi` は local backend、single-user/self-hosted compatibility、offline/export/import、runner-local projection、migration bridge として残せるが、multi-user SaaS の正本とはみなさない。
Control plane は Ticket、Objective、Memory、Knowledge、Run、Artifact、Actor、Permission、Audit、Runner state を管理する。Web UI、CLI、TUI、将来の desktop client は、この Control plane を操作する client であり、別の正本 store を持たない。
### 2. Workspace と Repository を同一視しない
Workspace はチームまたはプロジェクトの作業管理単位である。Repository は Workspace に接続される source/storage である。Git Repository は Repository の一種にすぎない。
1 つの Workspace は複数の Repository を持てる。Repository は filesystem path ではなく URI / URL で識別する。例として `git+https://...``file://...``s3://...``artifact://...`、将来の VCS provider URI などを扱えるようにする。
Ticket と Objective は Repository 配下に置かず、Workspace 配下に平たく持つ。Ticket は必要に応じて対象 Repository、ref selector、path、必要 capability を持つ。Objective は複数 Ticket にまたがる target default / scope hint を持てるが、Repository の所有物にはしない。
Run は Ticket の target selector を具体的な RepositoryPoint に解決し、その RepositoryPoint から Execution Workspace を materialize する。Git worktree 相当の機能は、この Execution Workspace を作るための実装戦略として扱う。
短期的には Git を主な Repository provider とする。ただし Yoi の authority model を Git object、Git branch、Git Repository root、worktree path に固定しない。Orchestration は Git そのものではなく、`resolve_ref``materialize``diff``patch``commit``merge` などの Repository capability に依存する。
### 3. Ticket を team coordination record にする
Ticket は実行そのものではない。Ticket は「何を、なぜ、どの条件で完了とみなすか」を持つ。Ticket は Workspace に平たく所属し、Repository には所属しない。コードやドキュメントを対象にする Ticket は、対象 Repository / ref selector / path / intent を target として持つ。
Ticket target は intent/selector であり、実行再現性のための immutable point ではない。Run が target selector を concrete RepositoryPoint に解決し、実際にどの revision/snapshot を materialize したかを記録する。
```text
Ticket
-> target selectors: Repository + ref selector + path + intent
-> Run / Attempt
-> resolved RepositoryPoint
-> Execution Workspace
-> Artifact / Evidence
-> Review / Decision
-> Audit / Notification
```
Target 例:
```text
Ticket targets:
- repository: main-code
role: primary
ref: develop
paths: ["crates/pod/"]
intent: change
- repository: docs
role: related
ref: main
paths: ["docs/development/"]
intent: read
Run inputs:
- repository: main-code
requested_ref: develop
resolved_point: git commit abc123
mount: /workspace/main-code
```
Ticket には次の概念が必要になる。
- Actor identity: human / agent / system / service account.
- Assignment / owner / reviewer / watcher.
- Typed thread events: comment, decision, plan, review, implementation report, state transition.
- Linked Objective / Artifact / Run / Repository / RepositoryPoint / Execution Workspace.
- Permission / visibility.
- Audit trail.
- Notification / mention.
- Board / queue / planning / review / done / archived views.
- Conflict handling and concurrent editing policy.
### 4. Memory / Knowledge の本格再設計は後回しにする
Memory / Knowledge は Ticket / Run / Artifact のコピーではない。再利用可能な文脈、方針、学習された制約、保守された知識として扱う。ただし、Memory の意味論・抽出・承認・検索・staleness 処理を今この Objective で先に作り込まない。
理由は、Memory の正しい設計が Workspace control plane の record model、Actor / visibility / permission、Ticket と Run の分離、Artifact / evidence、RepositoryPoint、Runner に渡す context の監査方法に依存するためである。これらが固まる前に Memory schema だけを作ると、local `.yoi` 前提や現行 agent runtime 前提に引っ張られ、後で再設計が必要になる。
この Objective では、Memory / Knowledge について以下の platform contract だけを維持する。
- Memory / Knowledge は Control plane が扱う record だが、Ticket / Run / Artifact の authority を置き換えない。
- 将来、Memory / Knowledge の canonical storage は Workspace control plane 側に置く。
- local `.yoi` memory は compatibility、offline/export/import、runner-local projection、migration bridge として扱う。
- Personal Memory、Workspace Memory、Run Summary、Maintained Knowledge は分離が必要である。
- Generated Memory には provenance、visibility、approval、audit が必要である。
- Runner / agent に渡した Memory/Knowledge context は、将来 ContextPack などとして Run に記録できる必要がある。
本格的な Memory 再設計は、Memory の保存先を Workspace backend / control plane record に移すタイミングで回収する。それまでは低リスクな観察、問題例の収集、既存 local memory の互換維持に留める。
### 5. 管理システムと実行環境を弱結合にする
Control plane は正本と調整を持つ。Runner は実行を担当する。
初期形:
```text
Web UI / Control Plane
-> Runner connection
-> Local machine runner
-> Existing Yoi runtime, tools, working copy, build/test commands
```
この段階では、現在ローカル管理画面が行っている Ticket 選択、エージェント起動、レビュー起動、作業用 checkout 作成、検証実行、結果表示を、Web/control plane から local runner に対して実行できるようにする。
その後で、remote runner、self-hosted runner、hosted cloud runner、runner pool、resource allocation、quota、billing、sandbox、network policy、secret distribution を追加する。
```text
Phase 1: Web control plane + local runner
Phase 2: Remote/self-hosted runner
Phase 3: Hosted cloud runner fleet
Phase 4: Resource allocation / scheduling / quotas / billing / isolation
```
### 6. Web frontend を先に作る
Desktop app は対応コストが高いので、まず Web frontend を primary UI とする。
- Web: チームで使う主要 UI。
- CLI: automation、scripting、local operations。
- TUI/local panel: local runner cockpit、fallback、dogfooding surface。
- Future desktop: Web/control-plane model が安定した後に検討する optional client。
Web UI は Ticket、Objective、Memory、Knowledge、Run、Runner、Artifact を扱う。UI の都合で正本を二重化しない。
### 7. 多重起動コストと runtime placement を見直す
Cloud/remote execution を成立させるには、多数のエージェント実行を安く管理できる必要がある。logical agent session と runtime process/resource placement を分ける。
初期 Workspace DB では、Worker を canonical table として永続化しない。Host / Worker 一覧は backend-local runtime inspection や将来の Host protocol から逐次取得する live view とし、Ticket に関わった Worker は Ticket thread events と WorkerRef snapshot / TicketWorkerLink として記録する。
Worker の一元管理、データ永続化、アーカイブは将来的には必要になる。これは Host protocol、remote/self-hosted/hosted worker lifecycle、worker identity、retention policy、audit requirements が固まった後に、dedicated Worker registry / archive model として追加する。v0 で Pod metadata の代替として Worker table を作らない。
検討対象:
- Agent identity と process/runtime placement の分離。
- Provider client、tool registry、resource cache の共有可能性。
- Prompt/resource/profile resolution cache。
- Model call multiplexing and scheduling。
- Tool execution sandbox reuse。
- Plugin instance / Service runtime との統合。
- Session/event stream と runtime lifecycle の分離。
- Runner-local cache、checkout reuse、build cache、dependency cache。
## Initial phases / candidate tickets
1. **Vocabulary / architecture record**
- Workspace / Repository / RepositoryPoint / Execution Workspace / Runner / Control Plane / Run / Ticket / Memory / Knowledge の用語と境界を固める。
2. **Team-space canonical data model**
- Ticket / Objective / Target / Run / Artifact / Actor / Permission / Audit / Memory / Knowledge の entity/event model を設計する。
3. **Ticket and Run separation**
- Ticket lifecycle と execution attempt / orchestration run / validation run を分離し、Ticket thread と Run evidence の責務を明確化する。
4. **Memory storage migration boundary**
- Memory / Knowledge の本格再設計は後回しにし、まずは Workspace backend に移す時の platform contract、compatibility/cache/export 方針、将来の provenance / visibility / approval 要件だけを固定する。
5. **Control plane backend architecture**
- local `.yoi` backend と server-side canonical backend の境界、migration/export/import、compatibility mode を設計する。
6. **Web control plane MVP design**
- read-only Ticket / Objective / Memory / Knowledge / Runner state UI/API の範囲を決める。
7. **Local runner protocol design**
- Web/control plane から local runner に安全な操作を送る protocol と authority boundary を設計する。
8. **Repository and Execution Workspace materialization model**
- Repository URI、Repository provider capability、RepositoryPoint resolution、Git worktree / clone / sparse checkout / future source backend を runner-side strategy として抽象化する。
9. **Remote/hosted runner foundation**
- runner registration, heartbeat, capability advertisement, job assignment, logs/events, secrets, sandbox/resource policy を設計する。
## Non-goals
- Git hosting service を作ること。
- `.yoi` filesystem をそのまま SaaS canonical store にすること。
- 最初から full hosted cloud execution を作ること。
- local execution / CLI / TUI / local panel を捨てること。
- Ticket を単なる issue tracker clone にすること。
- Memory を Ticket/Run audit log の代替にすること。
- Web UI のために core authority を二重化すること。
- hidden server state を LLM context に直接注入すること。
- multi-tenant auth/billing/secret/security を shortcut して実装すること。
## Success criteria / exit conditions
- Workspace / Repository / RepositoryPoint / Execution Workspace / Runner / Control Plane / Run / Ticket / Memory / Knowledge の境界が文書化されている。
- Ticket が team coordination record として、target selector / Run / Artifact / Actor / Permission / Audit と分離された model を持つ。
- `.yoi` local backend は compatibility/local backend として整理され、server-side canonical backend の設計を阻害しない。
- Web UI/API が Ticket / Objective / Runner state を中心とした read-only view を提供できる設計または MVP を持つ。Memory / Knowledge は既存 record の表示または将来 placeholder に留め、本格再設計をこの段階の必須条件にしない。
- Control plane から local runner に対して、現在のローカル管理画面相当の安全な操作を実行できる design/protocol がある。
- Git Repository root に依存しない Workspace model があり、Git Repository は Repository provider の一種として扱われている。
- Ticket と Objective は Workspace 配下に平たく存在し、Repository への所属ではなく target selector / scope hint で対象を表現する。
- Git worktree 相当は Execution Workspace materialization strategy として扱われ、Run が immutable な RepositoryPoint を記録する。
- Memory / Knowledge は Ticket / Run / Artifact の authority を置き換えない record として platform contract だけを持つ。本格的な意味論・抽出・承認・検索・staleness 処理は、Memory の保存先を Workspace backend / control plane record に移すタイミングで回収する。
- Hosted runner / resource allocation / SaaS offering に進むための後続 Ticket が切れる状態になっている。
- 既存 local dogfooding runtime を壊さず、local use と remote-capable architecture が両立している。
## Decision context
- Yoi は hosted Git tool ではなく、team workspace control plane + execution environment として設計する。
- Team-space の長期 canonical authority は server-side control plane に置く。local `.yoi` は互換/local/offline/export/import surface だが、multi-user SaaS の正本ではない。
- 実行環境と管理システムは弱結合にする。まず管理システムを独立させ、local runner を実行環境として接続する。その後に remote/self-hosted/hosted runner fleet へ進む。
- Web frontend を最初の primary team UI とする。Desktop app は web/control-plane model が安定した後に検討する。
- Git は重要な Repository provider / materialization backend として使うが、Workspace identity と authority を Git Repository root に固定しない。
- Ticket と Objective は Workspace 配下に平たく持つ。対象コードベースや ref は Repository target selector として表現し、Run が concrete RepositoryPoint に解決する。
- Memory の本格再設計は後回しにする。先に Workspace / Ticket / Repository / Host/Worker live view / Control plane の基盤を固め、Memory の保存先を Workspace backend に移すタイミングで、意味論・抽出・承認・検索・staleness 処理をまとめて回収する。
- Worker の一元管理・データ永続化・アーカイブも後続設計に回す。初期 DB では Worker を Pod metadata の代替として永続化せず、live view と Ticket-linked WorkerRef 記録に留める。
+268
View File
@@ -0,0 +1,268 @@
---
title: "効果的な Memory システム設計・検証"
state: "active"
created_at: "2026-06-20T15:16:00Z"
updated_at: "2026-06-20T15:16:00Z"
linked_tickets: ["00001KSKBPHRG", "00001KT02TCCG", "00001KTGCAFXG", "00001KSKBPTHR"]
---
## Goal
Yoi の Memory / Knowledge / generated memory / resident context / retrieval / usage metrics を、実際の開発・設計・レビュー・オーケストレーションに効く sensemaking substrate として再設計・検証する。
この Objective でいう「効果的な Memory システム」は、単に多く保存する仕組みではなく、作業中の問いに対して relevant material を集め、根拠を検証可能にし、再表現・仮説形成・反証探索・意思決定・成果物への反映を低コストにする仕組みである。
暫定的な定義:
- foraging cost を下げる: Ticket / Objective / current question に対して、関連する memory / docs / tickets / session evidence / code references を探しやすい。
- evidence を失わない: Memory が authority そのものにならず、Ticket / docs / git history / session logs / user instruction への検証可能な入口になる。
- schema 化を支援する: raw summary ではなく、subsystem、invariant、risk、authority boundary、open question、rejected alternative、hypothesis など推論しやすい形へ再表現できる。
- hypothesis loop を支援する: 支持証拠だけでなく、代替仮説・棄却理由・反証 evidence・stale assumption を扱える。
- product に戻る: Memory に保存して終わりではなく、Ticket、review、docs、implementation、decision、report に影響を戻せる。
- stale / contradiction を扱う: 古い前提、矛盾、適用範囲外の memory を検出・降格・更新できる。
- usage を成果基準で測る: resident exposure や read count ではなく、判断・レビュー・実装・docs に効いたかを観測できる。
## Motivation / background
現在の Memory システムは「墓場化」している。保存された情報はあるが、後続の作業で自然に使われにくく、使われたとしても根拠・適用範囲・鮮度・反証可能性が弱い。結果として Memory は、作業場ではなく古い結論の倉庫になりやすい。
Pirolli & Card 2005 の sensemaking model では、分析作業は単なる保存ではなく、次の変換として捉えられる。
```text
external data sources
-> shoebox
-> evidence file
-> schema / representation
-> hypotheses
-> presentation / product
```
Yoi の現行 Memory は、この流れのうち「保存」と「一部の検索」には対応しているが、少なくとも以下が弱い。
- Ticket / task / question ごとの shoebox がない。
- shoebox から evidence snippets を切り出し、source / provenance / applicability / confidence と共に扱う evidence file がない。
- `summary`, `decision`, `request`, `knowledge` は storage taxonomy であり、sensemaking 用 schema としては粗い。
- decision は残るが、hypothesis space、alternative、rejected reason、disconfirming evidence が残りにくい。
- reviewer / orchestrator が confirmation bias を避けるための反証探索導線が弱い。
- resident exposure と explicit retrieval は観測できても、Memory が product に効いたかは測りにくい。
この Objective は、Memory 関連の設計・検証・検討・考察を一元化し、個別 Ticket がばらばらに storage、prompt、retrieval、metrics を改善して再び墓場を増やすことを防ぐための判断背景である。
## Strategy / design direction
Memory を「長期保存領域」ではなく、Yoi の multi-agent 開発における sensemaking loop の支援機構として設計する。
### 1. Pirolli & Card の stage に合わせて責務を分ける
- external data sources: Tickets、docs、git history、session logs、reports、code、user instructions。
- shoebox: 特定 Ticket / Objective / design question に対して関連しそうな材料を集めた task-bound working set。
- evidence file: shoebox から抜き出した根拠 snippet。source anchor、支持/反証、適用範囲、confidence、staleness を持つ。
- schema / representation: subsystem、invariant、risk、authority boundary、open question、hypothesis、alternative、contradiction など、推論しやすい再表現。
- hypotheses: 採用前の設計仮説、代替案、棄却条件、反証 evidence。
- product: Ticket、review、docs、implementation、decision、report、orchestration plan などの成果物。
### 2. 最初の重点は task-bound shoebox と evidence file
Memory 墓場化の最初の原因は、保存情報が現在の問いに集まらないことである。まずは Orchestrator / Intake / Reviewer が Ticket を扱う時に、関連 memory / docs / tickets / reports / prior decisions を shoebox として束ねる導線を作る。
この段階では大きな永続 schema 追加に飛びつかず、report / Ticket artifact / bounded generated context として検証してよい。
### 3. Memory を authority にしない
Memory は Ticket、docs、git history、session logs、user instruction の代替ではない。Memory は authority record への evidence index / schema / reasoning aid として扱う。
したがって、改善案は次の性質を持つべきである。
- source / provenance を辿れる。
- stale / superseded / contradicted を扱える。
- Memory の断定をそのまま authority として使わない。
- Ticket body/thread/artifacts を読まずに Objective や Memory だけで実装判断できる状態を作らない。
### 4. 反証探索を first-class にする
より効果的な Memory は、過去方針を思い出すだけでなく、現在案を疑うために使える必要がある。
Reviewer / Orchestrator / Intake の導線では、次を探せるようにする。
- supporting evidence
- contradicting evidence
- stale decisions
- rejected alternatives
- unresolved questions
- authority boundary risks
- prior failures / reports
### 5. Metrics は exposure から product impact へ寄せる
Memory が prompt に入った、または query されたことは成功ではない。評価は次を区別する。
- resident exposure
- explicit retrieval
- cited in response
- cited in Ticket / review / report
- changed requirement
- changed implementation
- contradicted / invalidated
- led to docs or decision update
### 6. 後続 Ticket は concrete slice に分割する
この Objective は中期的な設計・検証の一元化 record であり、umbrella Ticket ではない。実装や調査は、単独で実装・レビュー・close できる concrete Ticket に分割する。
候補 slice:
- Memory sensemaking 分析 report を `docs/report/` に作る。
- Ticket routing 用 Memory shoebox artifact を試作する。
- evidence snippet schema / source resolver を設計する。
- hypothesis / rejected alternative / disconfirming evidence の表現を追加する。
- Reviewer workflow に反証探索を入れる。
- Memory usage metrics を product impact oriented に拡張する。
- stale / contradiction / renewal の検出・表示を設計する。
## Success criteria / exit conditions
- Memory システムの目的が「保存」ではなく「sensemaking loop 支援」として project records / docs / prompts / workflows で一貫して説明されている。
- Pirolli & Card の `shoebox -> evidence file -> schema -> hypotheses -> product` に対応する Yoi 内の責務と非責務が整理されている。
- Ticket / Objective / docs / session logs / Memory / Knowledge の authority boundary が明確で、Memory が authority を僭称しない。
- 少なくとも一つの実作業 routing / review / design analysis で、task-bound shoebox または evidence file が生成・利用され、作業品質にどう効いたかが確認されている。
- Memory records または関連 artifacts が source / provenance / applicability / staleness / supports-or-refutes のいずれかを扱えるようになっている。
- Reviewer / Orchestrator が supporting evidence だけでなく、contradicting evidence / stale assumptions / rejected alternatives を探す導線を持っている。
- Memory usage metrics が resident exposure と product impact を区別している。
- 古い Memory が放置されるのではなく、stale / superseded / contradicted / needs-review として扱える方針がある。
- 後続の実装 Ticket が concrete slice として分割され、Objective が Ticket dependency や進捗 container として使われていない。
この Objective は、Memory が少なくとも一つの中規模設計・実装・レビュー作業で「関連情報を見つける」「根拠を確認する」「代替案/反証を検討する」「成果物へ反映する」流れを実証し、その設計方針が docs / workflows / metrics に反映された時点で `done` を検討できる。
## Decision context
- ユーザー指摘: 「Memoryシステムが完全に墓場化している」。これは保存量不足ではなく、保存情報が現在の問い・根拠・仮説・成果物に接続されない問題として扱う。
- ユーザー指示: Memory システムの設計・検証・検討・考察を Objective にまとめ、より効果的な Memory システムを作成する目標のもとで情報を一元化する。
- 「効果的」の定義は未確定だが、当面は Pirolli & Card の sensemaking process に沿って、foraging cost、evidence quality、schema usefulness、hypothesis/disconfirmation support、product impact、staleness handling を評価軸にする。
- Memory は durable project authority ではない。Ticket、docs、git history、session logs、明示 user instruction の代替として使わない。
- Objective context は判断背景であり、個別実装の authority は各 Ticket body/thread/artifacts と明示的な Ticket relations / OrchestrationPlan records にある。
- `history` に残らない context-only injection を改善案にしない。新しい context input は history に commit する原則を守る。
- Knowledge は単なる長期保存ではなく、再利用可能な schema / model / procedure / invariant として再検討する余地がある。
- Generated memory / curated Knowledge / Ticket / docs / report の境界を再定義する場合は、authority boundary と migration/staleness を明示する。
- 関連する既存 Ticket:
- `00001KSKBPHRG` — Prompt / Workflow 評価メトリクスと改善 Offer
- `00001KT02TCCG` — Memory prompt: conditional guidance and proactive lookup
- `00001KTGCAFXG` — Use .yoi/memory marker for repo-local memory root
- `00001KSKBPTHR` — ワークスペースのメモリーをLintするヘッドレスCLI
## Historical references / prior design sources
現在の Memory システムの初期設計時には、Codex Memories / Chronicle と HermesAgent を明示的な参考事例として調査していた。関連する調査・設計記録は、現在は主に以下に退避されている。
- `docs/.local/old-docs/ref/memory-systems.md`
- `docs/.local/old-docs/plan/memory.md`
- 初期設計 commit: `ca5a3d11``2026-04-21 メモリシステムの設計`
- 関連 commit:
- `0c1276b7``Memoryシステムの整理・Promptカタログチケット`
- `3d04f793``memoryを抽出する仕組みの実装`
- `f1b7af62``docs: memoryシステムの仕様変更と、動的Tool・VCSの話`
- `a2aecbf0``update: memoryシステムの"Phase"表記を撤廃`
### Codex Memories / Chronicle から得た設計要素
旧設計では、Codex Memories / Chronicle を `extract -> staging -> consolidation -> durable Markdown memory` の非同期パイプラインとして捉えていた。
主な参照点:
- extract と consolidation の 2 段構成。
- extract は JSON schema / structured output で分類ブレを抑える。
- consolidation は reasoning model / agentic rewrite によって、既存 memory と staging entries を統合・整理する。
- staging と durable memory を分ける。
- `MEMORY.md` は retrieval-oriented handbook として扱う。
- `memory_summary.md` は prompt-loaded high-signal context として扱う。
- `raw_memories.md` は routing layer / task inventory 的な中間層として扱う。
- workspace diff や usage 情報を使い、stale / deleted evidence / noisy entries を整理する。
- consolidation は append だけでなく、rewrite / merge / split / trim / drop / cleanup を担う。
Yoi 初期設計では、これを参考に以下を意図していた。
- activity token 閾値で extract を発火する。
- compact より前に session log range を抽出する。
- extract は `decisions`, `discussions`, `attempts`, `requests` などの候補を staging に保存する。
- 抽出時点では Knowledge 化せず、純粋な「起きたこと」に寄せる。
- consolidation が summary / decisions / requests / knowledge candidates を整理する。
- consolidation 入力に linter warnings / usage metrics / Knowledge 化候補を含める。
- stale / superseded / unused / noisy な情報を整理する。
この Objective での再解釈:
- Codex の `raw_memories.md` は、Pirolli & Card の sensemaking model では `shoebox` または `evidence file` に近い。
- Yoi は extract / consolidation という pipeline だけを継承しても不十分であり、task-bound shoebox / evidence file / hypothesis loop / product feedback がなければ Memory は再び墓場化する。
- 特に、staging を consolidation の一時入力としてだけ扱うと、後続 Ticket / Objective / review が使う探索入口にならない。
- Yoi では `raw memories` 相当の中間層を、現在の問いに紐づく working set / evidence index として再設計する必要がある。
### HermesAgent から得た設計要素
旧設計では、Nous Research HermesAgent を 3 層の memory system として整理していた。
- Persistent Memory:
- `MEMORY.md` / `USER.md`
- Markdown + SQLite / FTS5 session search
- 起動時 system prompt snapshot
- bounded character limits
- Skill Library:
- procedural memory
- `~/.hermes/skills/<name>/SKILL.md`
- `skill_manage` tool による agentic CRUD
- User Model / Honcho:
- dialectic user modeling
- 外部 service 連携
HermesAgent で特に重要だった点:
- memory / skill review は一定 turn / tool iteration ごとに background agent として起動する。
- 保存すべきものがなければ `Nothing to save.` で NOP として終了する。
- Yoi extract の「空配列許容」はこの設計からも影響を受けている。
- memory は session start 時の frozen snapshot として system prompt に入り、mid-session write で prompt cache を壊さない。
- persistent memory は bounded で、limit 超過時は deterministic eviction ではなく、agent に replace / remove を促す。
- procedural memory / skills は一般 memory から分離されている。
- SQLite FTS5 + LLM summarization による cross-session recall がある。
この Objective での再解釈:
- HermesAgent の `MEMORY.md` / `USER.md` / `skills` の分離は、Yoi の Knowledge / Workflow / prompt resource / docs / Ticket decision / generated memory の責務再整理に使える。
- reusable procedure, reviewer focus, orchestration tactic, project preference, user preference, design invariant を同じ Memory bucket に入れると墓場化しやすい。
- `Nothing to save.` / empty extraction allowed は重要だが、保存抑制だけでは効果的な Memory にはならない。保存されたものが task-bound shoebox / evidence / schema / hypothesis / product に接続される必要がある。
- frozen snapshot / prompt cache 配慮は Yoi の history/context 加工原則と整合するが、それだけでは retrieval / resurfacing / disconfirmation は解決しない。
### Lessons for the next design iteration
Codex と HermesAgent の調査から、Yoi が継承すべきものと、継承するだけでは足りないものを分ける。
継承すべきもの:
- structured extract と agentic consolidation の分離。
- staging / raw memories / durable memory の分離。
- 保存対象がなければ NOP にする発火設計。
- prompt-loaded summary と durable retrieval-oriented memory の分離。
- stale / noisy / unused entries の cleanup。
- procedural memory と declarative memory の分離。
- session search / usage metrics / linter feedback を consolidation に入れる設計。
足りないもの:
- Pirolli & Card の sensemaking stage における各 record の役割定義。
- Ticket / Objective / current question に紐づく task-bound shoebox。
- authority record へ戻れる evidence file / provenance / source anchor。
- hypothesis, alternative hypothesis, rejected reason, disconfirming evidence の first-class 表現。
- reviewer / orchestrator が confirmation bias を避けるための反証探索導線。
- resident exposure や read count ではなく product impact を測る metrics。
- stale / contradiction / renewal を作業中に resurfacing する導線。
したがって、次の Memory 設計は Codex / HermesAgent の単純なコピーではなく、以下を満たす必要がある。
```text
external data / sessions / tickets / docs / code
-> task-bound shoebox
-> evidence file with provenance
-> schema / representation
-> hypotheses and disconfirmation
-> Ticket / review / docs / implementation / decision product
-> product impact and stale-feedback metrics
```
この Objective では、以後の Memory 関連 Ticket / report / implementation をこの historical reference と sensemaking model の両方に照らして判断する。
+1
View File
@@ -0,0 +1 @@
default = "builtin:companion"
+22
View File
@@ -0,0 +1,22 @@
[backend]
provider = "builtin:yoi_local"
root = ".yoi/tickets"
[ticket]
language = "Japanese"
[roles.intake]
profile = "builtin:intake"
workflow = "ticket-intake-workflow"
[roles.orchestrator]
profile = "builtin:orchestrator"
workflow = "ticket-orchestrator-routing"
[roles.coder]
profile = "builtin:coder"
workflow = "multi-agent-workflow"
[roles.reviewer]
profile = "builtin:reviewer"
workflow = "multi-agent-workflow"
@@ -1,15 +1,8 @@
---
id: 20260527-000001-auto-maintain-workflow
slug: auto-maintain-workflow
title: 半自動開発運用 Workflow
status: open
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:01Z
updated_at: 2026-05-27T00:00:01Z
assignee: null
legacy_ticket: tickets/auto-maintain-workflow.md
title: "半自動開発運用 Workflow"
state: "closed"
created_at: "2026-05-27T00:00:01Z"
updated_at: "2026-06-05T15:56:29Z"
---
## Migration reference
+25
View File
@@ -0,0 +1,25 @@
The old Auto Maintain workflow is retired and removed.
Resolution:
- Deleted `.yoi/workflow/auto-maintain.md`.
- Closed this Ticket as superseded by the newer Ticket-based orchestration workflow split:
- `ticket-intake-workflow`
- `ticket-orchestrator-routing`
- `ticket-preflight-workflow`
- `multi-agent-workflow`
- Updated `multi-agent-workflow` to point to Ticket Intake / Orchestrator Routing / Preflight instead of `$user/auto-maintain`.
- Updated `ticket-intake-workflow` to remove the obsolete auto-maintain connection.
- Updated `prompt-eval-metrics` so future prompt/workflow evaluation targets the current Ticket workflows or worktree workflow instead of `/auto-maintain`.
Rationale:
`auto-maintain` had become a broad and unstable WIP workflow with old assumptions around TODO/tickets and maintenance loops. Keeping it resident risks encouraging large implicit automation and bypassing the clearer gates now provided by Ticket Intake, Ticket Orchestrator Routing, Ticket Preflight, and Multi-agent Worktree Workflow.
Future maintainer/scheduler/lease behavior should be designed as explicit follow-up work, not revived through the deleted auto-maintain workflow.
Validation:
- `git diff --check`
- `./tickets.sh doctor`
- open workflow/docs search no longer finds `auto-maintain` references outside this closed historical Ticket context.
+40
View File
@@ -0,0 +1,40 @@
<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:01Z -->
## Migrated
Migrated from tickets/auto-maintain-workflow.md. No legacy review file was present at migration time.
---
<!-- event: close author: hare at: 2026-06-05T15:56:29Z status: closed -->
## Closed
The old Auto Maintain workflow is retired and removed.
Resolution:
- Deleted `.yoi/workflow/auto-maintain.md`.
- Closed this Ticket as superseded by the newer Ticket-based orchestration workflow split:
- `ticket-intake-workflow`
- `ticket-orchestrator-routing`
- `ticket-preflight-workflow`
- `multi-agent-workflow`
- Updated `multi-agent-workflow` to point to Ticket Intake / Orchestrator Routing / Preflight instead of `$user/auto-maintain`.
- Updated `ticket-intake-workflow` to remove the obsolete auto-maintain connection.
- Updated `prompt-eval-metrics` so future prompt/workflow evaluation targets the current Ticket workflows or worktree workflow instead of `/auto-maintain`.
Rationale:
`auto-maintain` had become a broad and unstable WIP workflow with old assumptions around TODO/tickets and maintenance loops. Keeping it resident risks encouraging large implicit automation and bypassing the clearer gates now provided by Ticket Intake, Ticket Orchestrator Routing, Ticket Preflight, and Multi-agent Worktree Workflow.
Future maintainer/scheduler/lease behavior should be designed as explicit follow-up work, not revived through the deleted auto-maintain workflow.
Validation:
- `git diff --check`
- `./tickets.sh doctor`
- open workflow/docs search no longer finds `auto-maintain` references outside this closed historical Ticket context.
---
@@ -0,0 +1 @@
{"id":"orch-plan-20260613-141646-1","ticket_id":"00001KSKBP9YG","kind":"accepted_plan","accepted_plan":{"summary":"E2E harness Ticket を inprogress 受理する。Playwright-like declarative API、independent opt-in crate、read-only structured TUI test events、PTY input、failure artifacts、Panel mouse selection / quit latency regression scenario を最小 vertical slice として実装する。root/original workspace では作業しない。","branch":"ticket-00001KSKBP9YG-e2e-harness","worktree":"/home/hare/Projects/yoi/.worktree/e2e-harness","role_plan":"Orchestrator が dedicated child worktree を作成し、Coder Pod に E2E harness / TUI observability / CLI test hook に必要な限定 write scope を渡す。Coder は first slice として declarative PTY Panel harness と mouse/quit regression scenarios を優先し、Reviewer は production contamination と read-only observability invariant を重点確認する。"},"author":"orchestrator","at":"2026-06-13T14:16:46Z"}
@@ -0,0 +1,21 @@
{
"version": 1,
"relations": [
{
"ticket_id": "00001KSKBP9YG",
"kind": "related",
"target": "00001KV0723PC",
"note": "Panel quit latency regression exposed need for measured PTY E2E, ready/barrier synchronization, and failure artifacts.",
"author": "orchestrator",
"at": "2026-06-13T13:56:37Z"
},
{
"ticket_id": "00001KSKBP9YG",
"kind": "related",
"target": "00001KV072V89",
"note": "Panel mouse selection regression exposed need for TUI/Panel PTY E2E with structured UI feedback and mouse input assertions.",
"author": "orchestrator",
"at": "2026-06-13T13:56:37Z"
}
]
}
@@ -0,0 +1,27 @@
Approve.
Delta reviewed:
- Re-reviewed the fix commit `b30b43b9 test: cfg-gate e2e observer payloads` after the earlier request-changes review.
- Inspected the updated observer module boundary and call sites in `crates/tui/src/lib.rs` and `crates/tui/src/multi_pod.rs`, plus the unchanged harness/tests in `tests/e2e`.
Evidence:
- `e2e_observer` is now only compiled from `crates/tui/src/lib.rs` under `#[cfg(feature = "e2e-test")]`; the previous normal-build no-op facade was removed.
- Observer payload construction is gated at call sites with `#[cfg(feature = "e2e-test")]`, including `panel_ready`, `selection_changed`, `action_requested`, `quit_requested`, and `emit_rows_rendered` calls.
- Panel E2E DTOs/helpers (`PanelE2eRowKey`, `PanelE2eRect`, `PanelE2eRenderedRow`, `PanelE2eRowsRendered`, `App::emit_rows_rendered`) are now behind `#[cfg(feature = "e2e-test")]`, so the normal panel render path no longer builds row snapshots or retains that runtime helper path.
- The background-task hold seam is still feature-gated: `check_background_task_hold` and `release_background_task_hold` calls are under `#[cfg(feature = "e2e-test")]`, and `YOI_TUI_TEST_HOLD_BACKGROUND_TASK` behavior lives in the gated observer module.
- Mouse capture tracking remains intact in the harness: it tracks `?1000h` and `?1006h`, `click(...)` requires both capture modes before injecting PTY bytes, the test waits for rendered rows, asserts `selection_changed`, and asserts no `action_requested` dispatch.
- Quit-latency coverage remains intact: the test waits for `panel_ready`, then verifies an actual pending `reload` background-task barrier before sending Ctrl+C through the PTY and asserting bounded exit.
- The production/non-production boundary now satisfies the Ticket intent: the harness remains opt-in, observability is read-only and feature-gated, and no UI input/action path is bypassed.
Validation run in `/home/hare/Projects/yoi/.worktree/e2e-harness`:
- `git diff --check 134e8b8b..HEAD` — passed.
- `cargo fmt --check` — passed.
- `cargo check -p tui --all-targets` — passed.
- `cargo check -p yoi --all-targets` — passed.
- `cargo check -p tui --all-targets --features e2e-test` — passed.
- `cargo check -p yoi --all-targets --features e2e-test` — passed.
- `cargo build -p yoi --features e2e-test` — passed.
- `YOI_E2E_BIN=/home/hare/Projects/yoi/.worktree/e2e-harness/target/debug/yoi cargo test -p yoi-e2e --features e2e --test panel -- --nocapture` — passed; 2 tests passed.
- `cargo check -p yoi-e2e --all-targets --features e2e` — passed.
No source changes were made during re-review.
@@ -0,0 +1,25 @@
Request changes.
Evidence reviewed:
- Inspected Ticket record and `git diff 134e8b8b..HEAD` for commits `96561897` and `10a1c383`.
- `tests/e2e` provides a credible first declarative harness (`PanelHarness::spawn`, `wait_for`, `wait_for_rows`, `click`, `press`, `expect_selection`, `expect_exit_within`, artifacts/metadata/input/output/event logs). This is not merely a fixed-sleep shell script.
- Mouse-selection scenario waits for rendered rows, verifies both normal mouse and SGR mouse capture before `click`, sends the click through PTY bytes, waits for `selection_changed`, and asserts no `action_requested` dispatch.
- Quit-latency scenario creates a real feature-gated background-task hold barrier, waits until the task is actually waiting before sending Ctrl+C through the PTY, and measures bounded exit latency.
- `yoi-e2e` is opt-in via package feature/test `required-features = ["e2e"]`; e2e tests are outside default members. `YOI_TUI_TEST_EVENTS` and `YOI_TUI_TEST_HOLD_BACKGROUND_TASK` env behavior is behind `tui/e2e-test` / `yoi/e2e-test` feature gates, and the hook is observability-only.
Required change:
- The normal production build still contains/evaluates too much e2e harness glue. In non-`e2e-test` builds, `crates/tui/src/e2e_observer.rs` exposes no-op `emit`/hold functions, but call sites still execute test-specific data construction. In particular `App::emit_rows_rendered` and its panel row key/rect DTOs are compiled unconditionally and `app.emit_rows_rendered()` is called from the panel render path, causing row snapshots to be built every draw even though emission is a no-op. Selection/action/quit call sites also construct `serde_json::json!` payloads before the no-op facade. This violates the recorded boundary that production binaries should not contain harness logic and production-side hooks must be feature-gated/compiled out for normal builds.
- Please cfg-gate the call sites/helpers/DTOs, or use a lazy cfg-gated macro/helper so normal builds do not evaluate or retain e2e event payload construction. A tiny compile-only facade is acceptable only if it does not execute or allocate e2e-specific work and does not keep harness DTO logic in the normal runtime path.
Validation run in `/home/hare/Projects/yoi/.worktree/e2e-harness`:
- `git diff --check 134e8b8b..HEAD` — passed.
- `cargo fmt --check` — passed.
- `cargo check -p tui --all-targets` — passed.
- `cargo check -p yoi --all-targets` — passed.
- `cargo build -p yoi --features e2e-test` — passed.
- `YOI_E2E_BIN=/home/hare/Projects/yoi/.worktree/e2e-harness/target/debug/yoi cargo test -p yoi-e2e --features e2e --test panel -- --nocapture` — passed.
- `cargo check -p tui --all-targets --features e2e-test` — passed.
- `cargo check -p yoi --all-targets --features e2e-test` — passed.
- `cargo check -p yoi-e2e --all-targets --features e2e` — passed.
No source changes were made during review.
@@ -1,15 +1,10 @@
---
id: 20260527-000002-e2e-harness
slug: e2e-harness
title: E2E テストハーネス
status: open
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:02Z
updated_at: 2026-05-27T00:00:02Z
assignee: null
legacy_ticket: tickets/e2e-harness.md
title: "E2E テストハーネス"
state: 'closed'
created_at: "2026-05-27T00:00:02Z"
updated_at: '2026-06-13T16:34:06Z'
queued_by: 'yoi ticket'
queued_at: '2026-06-13T14:17:34Z'
---
## Migration reference
+1
View File
@@ -0,0 +1 @@
Closed after prior done-state completion.
+550
View File
@@ -0,0 +1,550 @@
<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:02Z -->
## Migrated
Migrated from tickets/e2e-harness.md. No legacy review file was present at migration time.
---
<!-- event: decision author: orchestrator at: 2026-06-13T13:56:37Z -->
## Decision
E2E scope refinement: TUI/Panel PTY 自動化もこの Ticket の範囲に含める。
背景:
- Panel mouse selection / Panel Quit latency の直近不具合では、focused unit test と code-path review だけで `done` 判定し、実端末経路の positive validation / measured validation が不足していた。
- 既存本文の「TUI バイナリを PTY で叩く方針は採らない」は、blind な固定入力スクリプトや GUI 代替としての ad hoc 操作を避ける意図として扱い、TUI/Panel の実プロセス・実端末入力を検証する automated PTY harness は本 Ticket に含める。
- Pod protocol/subprocess E2E と TUI/Panel PTY E2E は harness の部品は違うが、どちらも「実プロセスを spawn して user-visible boundary を検証する」ため、別 umbrella に分けず、この E2E harness Ticket の phase として扱う。
方針:
- 固定 sleep + 固定 input だけの PTY script は採用しない。Harness は UI からの structured feedback を待ってから入力を送る。
- TUI/Panel には test-only / opt-in の observability route を追加する。これは UI action を bypass する command channel ではなく、状態観測・同期・失敗診断のための read-only probe とする。
- 実際の keyboard / mouse / Ctrl+C 入力は PTY 経由で送る。Probe は `first_draw``panel_snapshot_ready``rows_rendered``selection_changed``actionbar_changed``background_task_started/finished/aborted``quit_requested``terminal_cleanup_started/finished``exit` などの structured event を JSONL 等で吐く。
- Mouse E2E は `rows_rendered` の row key と screen rect を待ち、SGR mouse sequence を PTY に送って、`selection_changed` と screen/actionbar/detail の変化を確認する。
- Quit latency E2E は `panel_ready` / background work pending などの barrier event を待ってから `Ctrl+C` / `Ctrl+D` を送り、`quit_requested -> exit` の elapsed を測る。非本質 background work が abort/drop され、terminal cleanup が行われることも event で確認する。
- Screen output は `vt100`/`vte` 等の terminal parser で secondary oracle / artifact として保存する。主要同期は structured event に寄せる。
- Test probe は `--tui-test-events <path>` 等の明示的な hidden/dev/test flag か `e2e` feature 配下の構成で有効化し、通常実行・model context・Ticket authority・Pod protocol には影響させない。
- Failure artifact として event JSONL、input log、screen dump、stdout/stderr、runtime/data/workspace tmpdir の relevant tree、timing summary を保存する。
受け入れ条件の追加案:
- `cargo test -p e2e --features e2e`(または同等の opt-in command)で実 `yoi panel` を PTY 上で起動し、structured probe feedback を待ってから入力する harness が動く。
- Panel row click E2E: rendered row rect を使って SGR mouse click を送り、selected row が変わることを assertion する。
- Panel quit latency E2E: ready/pending background work barrier 後に Quit 入力を送り、exit latency が閾値内で、nonessential background work が quit を block しないことを assertion する。
- Fixed sleep だけに依存する test は不可。ready/barrier event が来なければ screen dump と event log を artifact として失敗する。
- Probe は read-only observability であり、input/action path を bypass しないことを reviewer が確認する。
---
<!-- event: decision author: orchestrator at: 2026-06-13T14:03:56Z -->
## Decision
E2E design decision: Playwright-like declarative test API と production binary 非混入を前提にする。
Decision:
- E2E は ad hoc shell / fixed sleep script ではなく、Rust の独立 crate から宣言的に scenario を書ける構造にする。
- 例: `PanelHarness::spawn(...)``panel.wait_for(PanelReady)``panel.click(row("ticket", id))``panel.expect_selection(...)``panel.press(CtrlC)``panel.expect_exit_within(...)` のように、Playwright 的な wait/action/assertion API を提供する。
- Harness crate は production binary / normal library API から独立させる。想定配置は `tests/e2e/` または `crates/e2e_harness` + integration tests で、通常 build / release package / normal `yoi` binary に test harness logic を混ぜない。
- 本番 binary に混ぜる必要があるものは、原則として「既存 TUI state から read-only diagnostic event を emit するための最小 test hook」に限定する。その hook も normal runtime では無効で、明示 feature / hidden dev flag / cfg(test/e2e) 等でしか有効化しない。
- E2E harness は production code の内部関数を直接呼んで state mutation しない。入力は PTY、観測は structured test events / terminal screen parser、assertion は harness 側で行う。
- Structured events は protocol authority ではなく test observability artifact として扱う。Ticket/Pod authority や user-visible semantics を変えない。
Rationale:
- 今回の Panel mouse / Quit latency の失敗は、unit/focused tests と code-path review だけでは user-visible terminal behavior を保証できないことを示した。
- 一方で fixed sleep + input script は再現性・診断性が低く、ready 状態や background work barrier を確認できない。
- Playwright-like API なら、test は「何を待ち、何を入力し、何を観測するか」を宣言的に表現でき、失敗時に event log / screen dump / timing artifact を残せる。
- Production binary への混入を避けることで、release behavior / binary size / authority surface / model-visible surfaces を汚さない。
Acceptance refinement:
- E2E test author が fixed sleep ではなく `wait_for` / `expect` / `within` を使って Panel/TUI scenario を書ける。
- Mouse selection と Quit latency の regression は、この declarative harness API 上の scenario として表現される。
- Test-only observability route は opt-in であり、release/normal execution では無効または到達不能であることを reviewer が確認する。
- Failure artifact に scenario step、last observed events、screen snapshot、timing、binary path、workspace/runtime dirs が含まれる。
---
<!-- event: decision author: orchestrator at: 2026-06-13T14:16:24Z -->
## Decision
Routing decision: implementation_ready
Reason:
- ユーザーが E2E harness を 1 Ticket として扱い、Playwright-like declarative API、structured feedback、production binary 非混入を前提に進めることを明示した。
- Ticket body は旧名/旧構成を含むが、thread decisions により現在の binding direction は明確化済み: Pod subprocess/protocol E2E と TUI/Panel PTY E2E を同じ harness Ticket の phase として扱う。
- 直近の Panel mouse selection / Panel Quit latency の regression から、実プロセス・実 PTY・structured event feedback・failure artifact を最小スライスに含める必要がある。
- `TicketRelationQuery` では durable blocker はなく、関連 Ticket は context link のみ。
- Orchestrator worktree は clean。implementation side effect は state acceptance 後に dedicated child worktree で行う。
Evidence checked:
- Ticket body / thread decisions。
- relation records: `00001KV072V89` / `00001KV0723PC` への related links。
- orchestration plan records: なし。
- current workspace state: Orchestrator worktree clean、queued/inprogress work なし、implementation child Pods なし。
- project context: AGENTS guidance の E2E 未設計、prompt/resource boundary、production binary contamination 回避方針、直近 Panel validation failure records。
IntentPacket:
Intent:
- Yoi の E2E testing foundation を、実プロセス spawn と TUI/Panel PTY automation の両方を扱える opt-in harness として導入する。
- 最初の vertical slice は、Playwright-like declarative API、structured UI feedback、failure artifact、Panel mouse selection / Panel quit latency の regression scenario を実装できる形にする。
Binding decisions / invariants:
- E2E harness は independent crate / test surface とし、normal release / normal `yoi` binary に harness logic を混ぜない。
- 本番 binary 側に必要な変更は opt-in read-only observability hook に限定する。UI action/state mutation を test hook で bypass しない。
- 実入力は PTY 経由で送る。structured event は synchronization / assertion / artifact のための観測情報であり、authority channel ではない。
- fixed sleep + fixed input だけの blind script を acceptance にしない。
- Pod/Ticket authority、prompt/resource boundary、public runtime behavior を E2E 都合で歪めない。
Requirements / acceptance criteria:
- E2E author が Rust code で `spawn` / `wait_for` / `click` / `press` / `expect_*` / `within` を使って scenario を宣言的に書ける。
- Opt-in command(例: `cargo test -p e2e --features e2e` または同等)で通常 CI 既定から分離される。
- TUI/Panel test は panel ready / rows rendered / selection changed / background task / quit events など structured feedback を待ってから PTY input を送る。
- Panel mouse selection regression と Panel quit latency regression の少なくとも skeleton または minimal passing scenario が declarative harness 上で表現される。
- Failure artifact として event log、input log、screen dump、timing、binary path、workspace/runtime dirs が残る。
- Production binary contamination がないこと、または opt-in hook が normal runtime で無効/到達不能であることを reviewer が確認できる。
Implementation latitude:
- `tests/e2e/` crate か `crates/e2e_harness` + integration tests のどちらに置くかは Coder が codebase constraints を見て選んでよい。ただし normal build/release contamination は避ける。
- PTY crate、terminal parser、event JSONL format、fixture workspace builder の具体設計は Coder が選んでよい。
- 最初の slice は full provider E2E ではなく、Panel/TUI harness と minimal process lifecycle / artifact foundation を優先してよい。
- 既存旧名 `INSOMNIA_*` / `pod` references は現在の `yoi` / config surface に合わせて整理してよい。
Escalate if:
- read-only observability hook では足りず、production UI action path を test-only command channel で直接操作したくなる場合。
- normal release binary / normal CLI surface に test-only options を露出させる必要がある場合。
- workspace structure、Cargo package layout、Nix/package source filter に大きな変更が必要になる場合。
- Provider stub / Pod protocol E2E まで同時に広げないと Panel slice が進められない場合。
Validation:
- focused E2E harness tests / example scenarios。
- `cargo fmt --check`
- `git diff --check`
- 変更範囲に応じて `cargo check --workspace --all-targets` または narrower package checks。
- 新 E2E command が opt-in で実行可能であることを report する。
Current code map:
- `crates/yoi` / CLI launch path: hidden/test-only flag injection の候補。
- `crates/tui/src/multi_pod.rs`: Panel events / observable state emission の候補。
- `tests/e2e/` or new harness crate: declarative scenario API / PTY runner / artifact collector。
- root `Cargo.toml` / package metadata: opt-in package registration と release contamination check。
Critical risks / reviewer focus:
- Harness code が production binary に混ざっていないこと。
- Observability hook が read-only で、input/action path を bypass していないこと。
- Test が fixed sleep 依存ではなく structured feedback / timeouts / artifacts を持つこと。
- Panel mouse / quit latency regression が今後「unit test だけで done」にならない程度の user-visible path を cover すること。
---
<!-- event: intake_summary author: orchestrator at: 2026-06-13T14:16:54Z -->
## Intake summary
ユーザー確認により、既存 E2E harness Ticket は Pod subprocess E2E と TUI/Panel PTY E2E を一つの実装対象として扱う。Playwright-like declarative API、independent opt-in crate、production binary 非混入、read-only structured observability、PTY input、failure artifact、Panel mouse / quit latency regression scenario が受け入れ方向として明確化済み。
---
<!-- event: state_changed author: orchestrator at: 2026-06-13T14:16:54Z from: planning to: ready reason: user_authorized_e2e_harness_implementation field: state -->
## State changed
Ticket planning が完了しました。state planning -> ready。
---
<!-- event: state_changed author: "yoi ticket" at: 2026-06-13T14:17:34Z from: ready to: queued reason: queued field: state -->
## State changed
Ticket を `yoi ticket` が queued にしました。
---
<!-- event: state_changed author: orchestrator at: 2026-06-13T14:17:40Z from: queued to: inprogress reason: orchestrator_acceptance_after_user_authorization field: state -->
## State changed
ユーザーが明示的に inprogress 化して進めることを承認した。Ticket evidence / relation records / OrchestrationPlan accepted plan / Orchestrator worktree clean state を確認済みで、blocking relation はない。Implementation side effect の前に state を inprogress として記録する。
---
<!-- event: implementation_report author: orchestrator at: 2026-06-13T14:18:55Z -->
## Implementation report
Implementation handoff started.
- Worktree: `/home/hare/Projects/yoi/.worktree/e2e-harness`
- Branch: `ticket-00001KSKBP9YG-e2e-harness`
- Coder Pod: `coder-00001KSKBP9YG-e2e`
- Scope: child worktree read、root `Cargo.toml` / `Cargo.lock` write、`tests/e2e` write、selected crates (`crates/tui`, `crates/yoi`, `crates/pod`, `crates/protocol`) write、`target` write、this Ticket record write。`.yoi/memory` や local/runtime/log/lock/secret-like `.yoi` paths は write scope に含めていない。
- Note: runtime launch validation のため `/home/hare/Projects/yoi` に非再帰 read grant を付けたが、Coder には root/original workspace を inspect/write/git/validate/merge/cleanup しないよう明示済み。
Next:
- Coder は Playwright-like declarative E2E harness、read-only structured observability、PTY input、Panel mouse / quit latency regression scenario の first slice を実装する。
- Coder の commit / implementation_report / validation evidence を確認後、Reviewer を read-only 基本で起動する。
---
<!-- event: decision author: orchestrator at: 2026-06-13T14:31:31Z -->
## Decision
Design note: Panel mouse E2E は raw SGR sequence を固定送信するだけでは不十分。
Rationale:
- Harness が PTY に直接 `ESC [ < ... M` を書くと、実端末が mouse capture 有効時だけ mouse sequence を生成するという条件を bypass してしまい、今回のような「実端末ではイベントが来ない」系の不具合を見逃す可能性がある。
- Mouse E2E は locator/row rect を使って coordinate を決めるだけでなく、TUI が mouse capture mode を有効化したことも検証する必要がある。
追加すべき test harness 要件:
- virtual terminal / screen parser は app output の terminal mode sequence(例: normal mouse + SGR mouse mode, `?1000h` / `?1006h` 相当)を tracking し、click helper は capture enabled が観測されていない場合に fail する。
- もしくは explicit read-only structured event と terminal output assertion の両方で `mouse_capture_enabled` を確認する。
- `click(row_selector)``rows_rendered` の rect から座標を選ぶが、raw SGR injection だけで成功扱いにしない。
- assertion は `selection_changed` event、screen/actionbar/detail の secondary oracle、そして workflow action が発火していないことを組み合わせる。
- これにより mouse selection E2E は面倒になるが、capture setup / coordinate mapping / event handling の user-visible path を分離して検証できる。
---
<!-- event: decision author: orchestrator at: 2026-06-13T14:40:42Z -->
## Decision
Coder first-slice review: changes requested before external review.
The initial E2E harness direction is promising, but it does not yet satisfy the regression-prevention bar from this Ticket.
Required changes sent to Coder:
1. Mouse E2E must not pass solely by injecting raw SGR mouse bytes. Harness must track terminal mouse capture enable output (`?1000h` / `?1006h` equivalent) and fail `click(...)` / expose `expect_mouse_capture_enabled()` when capture was not observed.
2. Production binary contamination must be reduced. The TUI JSONL observer currently appears to be available in normal builds via `YOI_TUI_TEST_EVENTS`; prefer explicit `e2e-test` feature/cfg gating so release/normal binary has the hook compiled out. Report if feature gating is too large.
3. Quit latency E2E must wait for a real pending/background-work barrier at the moment of quit, not merely assert that `background_task_started` happened sometime earlier. Strengthen the scenario to prove Ctrl+C while pending work exists exits promptly.
4. Update implementation_report and validation evidence after changes.
Reason:
- The mouse selection regression specifically needs to catch missing terminal mouse capture, which raw SGR injection can bypass.
- The user explicitly requested a structure where E2E harness logic does not mix into the production binary.
- The quit latency regression needs measured user-visible behavior under a synchronized pending-work condition, not a loose startup smoke test.
---
<!-- event: implementation_report author: hare at: 2026-06-13T14:38:03Z -->
## Implementation report
Implemented an opt-in E2E testing foundation for real `yoi panel` process automation.
API / harness shape:
- Added workspace package `tests/e2e` (`yoi-e2e`) with required feature `e2e`, so scenarios are opt-in.
- Added `PanelHarness::spawn(...)`, `wait_for(...)`, `wait_for_rows(...)`, `click(...)`, `press(...)`, `expect_selection(...)`, `expect_exit_within(...)`, and `artifacts()`.
- Harness drives the real `yoi panel` binary through a Unix PTY and sends SGR mouse / keyboard bytes through that PTY only.
- Harness captures artifacts under a per-run artifact directory: `events.jsonl`, `input.log`, `pty-output.log`, and `run.json`.
Production / non-production boundary:
- Harness logic stays in `tests/e2e` and is not mixed into production crates.
- Production-side change is limited to an opt-in read-only TUI JSONL observer enabled only by `YOI_TUI_TEST_EVENTS`.
- Observer records Panel/TUI synchronization and assertion events (`panel_ready`, `rows_rendered`, `selection_changed`, `mouse_click`, `action_requested`, `quit_requested`, background task lifecycle, terminal cleanup, exit).
- The observer does not mutate UI state, inject input, bypass actions, or grant authority; real input remains PTY-only.
Scenarios added:
- Panel mouse selection regression: waits for rendered rows, sends an SGR mouse click through PTY, asserts selection changed, and asserts no panel action was dispatched.
- Panel quit latency regression: waits for Panel ready plus background-task barrier, sends Ctrl+C through PTY, asserts clean exit within the threshold, and verifies the quit event.
Files changed:
- `Cargo.toml`, `Cargo.lock`
- `crates/tui/src/lib.rs`
- `crates/tui/src/multi_pod.rs`
- `crates/tui/src/e2e_observer.rs`
- `tests/e2e/Cargo.toml`
- `tests/e2e/src/lib.rs`
- `tests/e2e/tests/panel.rs`
Validation:
- `cargo build -p yoi` — passed.
- `YOI_E2E_BIN=/home/hare/Projects/yoi/.worktree/e2e-harness/target/debug/yoi cargo test -p yoi-e2e --features e2e --test panel -- --nocapture` — passed (2 tests).
- `cargo fmt --check` — passed.
- `cargo check -p tui --all-targets` — passed.
- `cargo check -p yoi --all-targets` — passed.
- `cargo check -p yoi-e2e --all-targets --features e2e` — passed.
- `git diff --check` — passed.
Remaining gaps / risks:
- The first slice is Unix PTY-based; cross-platform PTY support is not implemented.
- The screen artifact is currently raw PTY output rather than a parsed terminal snapshot.
- Fixture setup blocks Companion/Orchestrator role auto-spawn by placing intentionally invalid isolated test pod metadata in the fixture data dir; this avoids leaking live background Pods but should be replaced by a cleaner fixture strategy if the Panel gains an explicit test fixture mode.
---
<!-- event: implementation_report author: hare at: 2026-06-13T15:00:29Z -->
## Implementation report
Follow-up implementation update for review-required changes:
Mouse E2E false-positive prevention:
- `PanelHarness` now tracks the PTY output for terminal mouse mode enable/disable escape sequences.
- It requires both normal mouse tracking (`ESC[?1000h`, with disable `ESC[?1000l`) and SGR mouse mode (`ESC[?1006h`, with disable `ESC[?1006l`) to have been observed as currently enabled.
- Added `PanelHarness::expect_mouse_capture_enabled()` and the Panel mouse E2E calls it before clicking.
- `PanelHarness::click(...)` also fails with `MouseCaptureNotEnabled` if mouse capture has not been observed, so raw SGR mouse injection alone cannot make the test pass.
Production binary contamination reduction:
- Added explicit feature gates:
- `tui/e2e-test`
- `yoi/e2e-test = ["tui/e2e-test"]`
- The `YOI_TUI_TEST_EVENTS` JSONL event path and the background-task hold seam are compiled only under `tui/e2e-test`.
- Normal builds still type-check a no-op facade so call sites stay simple, but env-var observability/hold behavior is compiled out unless the feature is enabled.
- E2E binary build command is now: `cargo build -p yoi --features e2e-test`.
Quit latency barrier strengthening:
- Added a feature-gated test-only seam `YOI_TUI_TEST_HOLD_BACKGROUND_TASK=reload` that holds the Panel reload task pending in the E2E binary until quit aborts it.
- Added `PanelHarness::expect_background_task_pending("reload")`, which verifies that a `background_task_started` event exists and no matching `background_task_finished` or `background_task_aborted` event has superseded it.
- The quit latency test now uses the hold seam and asserts pending reload work immediately before sending Ctrl+C through the PTY.
Harness/artifact adjustment:
- E2E fixture artifacts now persist under workspace `target/e2e-artifacts/...` instead of package-local temporary dirs, so failure artifacts remain inspectable.
Validation after update:
- `cargo fmt --check` — passed.
- `cargo build -p yoi --features e2e-test` — passed.
- `YOI_E2E_BIN=/home/hare/Projects/yoi/.worktree/e2e-harness/target/debug/yoi cargo test -p yoi-e2e --features e2e --test panel -- --nocapture` — passed (2 tests).
- `git diff --check` — passed.
- `cargo check -p tui --all-targets` — passed.
- `cargo check -p yoi --all-targets` — passed.
- `cargo check -p tui --all-targets --features e2e-test` — passed.
- `cargo check -p yoi --all-targets --features e2e-test` — passed.
- `cargo check -p yoi-e2e --all-targets --features e2e` — passed.
Remaining gaps / risks:
- The E2E harness remains Unix PTY based.
- The screen artifact remains raw PTY output, not a parsed terminal snapshot.
- The test-only pending-task hold intentionally changes timing only for the `e2e-test` binary; it is not compiled into normal builds.
---
<!-- event: review author: hare at: 2026-06-13T15:05:52Z status: request_changes -->
## Review: request changes
Request changes.
Evidence reviewed:
- Inspected Ticket record and `git diff 134e8b8b..HEAD` for commits `96561897` and `10a1c383`.
- `tests/e2e` provides a credible first declarative harness (`PanelHarness::spawn`, `wait_for`, `wait_for_rows`, `click`, `press`, `expect_selection`, `expect_exit_within`, artifacts/metadata/input/output/event logs). This is not merely a fixed-sleep shell script.
- Mouse-selection scenario waits for rendered rows, verifies both normal mouse and SGR mouse capture before `click`, sends the click through PTY bytes, waits for `selection_changed`, and asserts no `action_requested` dispatch.
- Quit-latency scenario creates a real feature-gated background-task hold barrier, waits until the task is actually waiting before sending Ctrl+C through the PTY, and measures bounded exit latency.
- `yoi-e2e` is opt-in via package feature/test `required-features = ["e2e"]`; e2e tests are outside default members. `YOI_TUI_TEST_EVENTS` and `YOI_TUI_TEST_HOLD_BACKGROUND_TASK` env behavior is behind `tui/e2e-test` / `yoi/e2e-test` feature gates, and the hook is observability-only.
Required change:
- The normal production build still contains/evaluates too much e2e harness glue. In non-`e2e-test` builds, `crates/tui/src/e2e_observer.rs` exposes no-op `emit`/hold functions, but call sites still execute test-specific data construction. In particular `App::emit_rows_rendered` and its panel row key/rect DTOs are compiled unconditionally and `app.emit_rows_rendered()` is called from the panel render path, causing row snapshots to be built every draw even though emission is a no-op. Selection/action/quit call sites also construct `serde_json::json!` payloads before the no-op facade. This violates the recorded boundary that production binaries should not contain harness logic and production-side hooks must be feature-gated/compiled out for normal builds.
- Please cfg-gate the call sites/helpers/DTOs, or use a lazy cfg-gated macro/helper so normal builds do not evaluate or retain e2e event payload construction. A tiny compile-only facade is acceptable only if it does not execute or allocate e2e-specific work and does not keep harness DTO logic in the normal runtime path.
Validation run in `/home/hare/Projects/yoi/.worktree/e2e-harness`:
- `git diff --check 134e8b8b..HEAD` — passed.
- `cargo fmt --check` — passed.
- `cargo check -p tui --all-targets` — passed.
- `cargo check -p yoi --all-targets` — passed.
- `cargo build -p yoi --features e2e-test` — passed.
- `YOI_E2E_BIN=/home/hare/Projects/yoi/.worktree/e2e-harness/target/debug/yoi cargo test -p yoi-e2e --features e2e --test panel -- --nocapture` — passed.
- `cargo check -p tui --all-targets --features e2e-test` — passed.
- `cargo check -p yoi --all-targets --features e2e-test` — passed.
- `cargo check -p yoi-e2e --all-targets --features e2e` — passed.
No source changes were made during review.
---
<!-- event: implementation_report author: hare at: 2026-06-13T15:18:21Z -->
## Implementation report
Follow-up implementation update for reviewer request `559adb9a ticket: request e2e harness changes`:
Production/non-production boundary fix:
- Removed the normal-build no-op `e2e_observer` module path and now compile the observer module only behind `tui/e2e-test` via `#[cfg(feature = "e2e-test")] mod e2e_observer;`.
- Added `#[cfg(feature = "e2e-test")]` to all Panel/TUI observability call sites that build JSON payloads, including terminal cleanup/exit, panel ready, rows-rendered, mouse click, selection changes, action requests, quit request, and background task lifecycle events.
- `App::emit_rows_rendered`, `PanelE2eRowKey`, `PanelE2eRect`, `PanelE2eRenderedRow`, `PanelE2eRowsRendered`, and the conversion helpers are now compiled only with `tui/e2e-test`.
- Normal builds no longer call `app.emit_rows_rendered()`, no longer evaluate `serde_json::json!` e2e payloads, and no longer retain the Panel E2E DTO/helper logic in the runtime path.
- The background reload hold seam remains compiled/called only under `tui/e2e-test`; `YOI_TUI_TEST_EVENTS` and `YOI_TUI_TEST_HOLD_BACKGROUND_TASK` behavior remains feature-gated.
Preserved E2E behavior:
- Mouse E2E still verifies PTY output for normal mouse tracking + SGR mouse enable sequences before any raw SGR click can be sent.
- `PanelHarness::click(...)` still fails if mouse capture was not observed.
- Quit latency E2E still uses the feature-gated pending reload hold barrier and asserts the reload task is pending before Ctrl+C.
Validation:
- `cargo fmt --check` — passed.
- `cargo check -p tui --all-targets` — passed.
- `cargo check -p yoi --all-targets` — passed.
- `cargo check -p tui --all-targets --features e2e-test` — passed.
- `cargo check -p yoi --all-targets --features e2e-test` — passed.
- `cargo build -p yoi --features e2e-test` — passed.
- `YOI_E2E_BIN=/home/hare/Projects/yoi/.worktree/e2e-harness/target/debug/yoi cargo test -p yoi-e2e --features e2e --test panel -- --nocapture` — passed (2 tests).
- `cargo check -p yoi-e2e --all-targets --features e2e` — passed.
- `git diff --check` — passed.
Remaining gaps / risks unchanged:
- The E2E harness remains Unix PTY based.
- The screen artifact remains raw PTY output rather than a parsed terminal snapshot.
---
<!-- event: review author: hare at: 2026-06-13T15:21:30Z status: approve -->
## Review: approve
Approve.
Delta reviewed:
- Re-reviewed the fix commit `b30b43b9 test: cfg-gate e2e observer payloads` after the earlier request-changes review.
- Inspected the updated observer module boundary and call sites in `crates/tui/src/lib.rs` and `crates/tui/src/multi_pod.rs`, plus the unchanged harness/tests in `tests/e2e`.
Evidence:
- `e2e_observer` is now only compiled from `crates/tui/src/lib.rs` under `#[cfg(feature = "e2e-test")]`; the previous normal-build no-op facade was removed.
- Observer payload construction is gated at call sites with `#[cfg(feature = "e2e-test")]`, including `panel_ready`, `selection_changed`, `action_requested`, `quit_requested`, and `emit_rows_rendered` calls.
- Panel E2E DTOs/helpers (`PanelE2eRowKey`, `PanelE2eRect`, `PanelE2eRenderedRow`, `PanelE2eRowsRendered`, `App::emit_rows_rendered`) are now behind `#[cfg(feature = "e2e-test")]`, so the normal panel render path no longer builds row snapshots or retains that runtime helper path.
- The background-task hold seam is still feature-gated: `check_background_task_hold` and `release_background_task_hold` calls are under `#[cfg(feature = "e2e-test")]`, and `YOI_TUI_TEST_HOLD_BACKGROUND_TASK` behavior lives in the gated observer module.
- Mouse capture tracking remains intact in the harness: it tracks `?1000h` and `?1006h`, `click(...)` requires both capture modes before injecting PTY bytes, the test waits for rendered rows, asserts `selection_changed`, and asserts no `action_requested` dispatch.
- Quit-latency coverage remains intact: the test waits for `panel_ready`, then verifies an actual pending `reload` background-task barrier before sending Ctrl+C through the PTY and asserting bounded exit.
- The production/non-production boundary now satisfies the Ticket intent: the harness remains opt-in, observability is read-only and feature-gated, and no UI input/action path is bypassed.
Validation run in `/home/hare/Projects/yoi/.worktree/e2e-harness`:
- `git diff --check 134e8b8b..HEAD` — passed.
- `cargo fmt --check` — passed.
- `cargo check -p tui --all-targets` — passed.
- `cargo check -p yoi --all-targets` — passed.
- `cargo check -p tui --all-targets --features e2e-test` — passed.
- `cargo check -p yoi --all-targets --features e2e-test` — passed.
- `cargo build -p yoi --features e2e-test` — passed.
- `YOI_E2E_BIN=/home/hare/Projects/yoi/.worktree/e2e-harness/target/debug/yoi cargo test -p yoi-e2e --features e2e --test panel -- --nocapture` — passed; 2 tests passed.
- `cargo check -p yoi-e2e --all-targets --features e2e` — passed.
No source changes were made during re-review.
---
<!-- event: implementation_report author: orchestrator at: 2026-06-13T15:23:35Z -->
## Implementation report
Integration outcome: merged and validated.
- Implementation branch: `ticket-00001KSKBP9YG-e2e-harness`
- Implementation commits: `96561897 test: add opt-in panel e2e harness`, `10a1c383 test: harden panel e2e harness`, `b30b43b9 test: cfg-gate e2e observer payloads`
- Review commits/events: initial `request_changes` for production-boundary leakage, then `approve` after `e2e-test` cfg gating。
- Orchestrator merge commit: `b3bd6b11 merge: e2e harness`
Implemented first vertical slice:
- Added opt-in `tests/e2e` package `yoi-e2e` with Playwright-like `PanelHarness` API for real `yoi panel` process automation through PTY.
- Added feature-gated read-only TUI observer behind `tui/e2e-test` / `yoi/e2e-test`; normal builds do not compile observer module, event payload construction, row DTOs, or background hold seam.
- Added Panel mouse selection E2E that waits for rendered rows, verifies terminal mouse capture output (`?1000h` and `?1006h`), sends click through PTY, asserts selection change, and asserts no action dispatch.
- Added Panel quit latency E2E that creates a feature-gated pending reload barrier, sends Ctrl+C through PTY, and asserts bounded exit.
- Artifacts include event log, input log, raw PTY output, and run metadata under `target/e2e-artifacts`.
Orchestrator validation after merge:
- `cargo fmt --check`: PASS
- `cargo check -p tui --all-targets`: PASS
- `cargo check -p yoi --all-targets`: PASS
- `cargo check -p tui --all-targets --features e2e-test`: PASS
- `cargo check -p yoi --all-targets --features e2e-test`: PASS
- `cargo build -p yoi --features e2e-test`: PASS
- `YOI_E2E_BIN=/home/hare/Projects/yoi/.worktree/orchestration/yoi-orchestrator/target/debug/yoi cargo test -p yoi-e2e --features e2e --test panel -- --nocapture`: PASS2 tests
- `cargo check -p yoi-e2e --all-targets --features e2e`: PASS
- `git diff --check`: PASS
Remaining gaps / risks:
- Harness is Unix PTY based。
- Screen artifact is raw PTY output rather than parsed terminal snapshot。
- This is a first vertical slice for Panel/TUI PTY E2E; broader Pod protocol/provider stub scenarios remain future work under this E2E harness direction。
Next:
- Mark Ticket `done` and clean up child coder/reviewer Pods plus implementation worktree/branch. Closure remains separate.
---
<!-- event: state_changed author: orchestrator at: 2026-06-13T15:23:44Z from: inprogress to: done reason: merged_and_validated field: state -->
## State changed
E2E harness implementation branch was reviewed, approved after requested production-boundary changes, merged into the Orchestrator branch as `b3bd6b11`, and validated in the Orchestrator worktree. Opt-in Panel PTY E2E tests for mouse selection and quit latency passed, along with formatting, diff check, normal/e2e feature package checks, and E2E package check. Ticket implementation work is done; closure remains separate.
---
<!-- event: comment author: orchestrator at: 2026-06-13T15:27:18Z -->
## Comment
Post-merge design gap: E2E harness の `yoi` binary freshness はまだ自動保証されていない。
Current behavior:
- `tests/e2e/src/lib.rs::yoi_binary()``YOI_E2E_BIN` があればその path を使う。
- `YOI_E2E_BIN` が無い場合は E2E test binary の `current_exe()` から `target/{debug,release}/yoi` を推測し、最後に `target/debug/yoi` へ fallback する。
- Harness は `PanelHarness::spawn` と fixture setup commands の両方でその binary path を使い、`YOI_POD_RUNTIME_COMMAND` も同じ binary に向ける。
- しかし harness 自身は `cargo build -p yoi --features e2e-test` を実行しない。したがって任意タイミングの `cargo test -p yoi-e2e --features e2e` だけでは、最新 source から rebuild された binary が使われる保証はない。
Gap:
- 今回の validation は Orchestrator が事前に `cargo build -p yoi --features e2e-test` を実行したため正しい binary を使った。
- ただし harness design としては freshness が runner/manual discipline に依存しており、stale `target/debug/yoi` や別 path の `YOI_E2E_BIN` を使っても test が走り得る。
Follow-up direction:
- `cargo xtask e2e` / `yoi-e2e-runner` / documented `just e2e` など、必ず `cargo build -p yoi --features e2e-test` を実行してから `YOI_E2E_BIN=<fresh target binary> cargo test -p yoi-e2e --features e2e ...` する single entrypoint が必要。
- さらに harness は起動 binary が `e2e-test` feature 有効であることを handshake/event/version で検証し、可能なら source commit/build timestamp/path metadata を artifact に残して stale/mismatched binary を diagnostic にするべき。
---
<!-- event: decision author: orchestrator at: 2026-06-13T15:43:37Z -->
## Decision
Follow-up design note: E2E の `yoi` binary freshness は `cargo run` 直起動より、harness 内 `cargo build` + built binary spawn を標準にする。
Decision candidate:
- `cargo test -p yoi-e2e --features e2e` の test setup から `cargo build -p yoi --features e2e-test --bin yoi` を実行することは可能で、opt-in E2E では許容する。
- ただし PTY scenario の process-under-test を `cargo run ... -- panel` にするのは避ける。Cargo wrapper の build output、process tree、signal forwarding、exit timing が混ざり、Panel quit latency の測定対象が曖昧になるため。
- Harness には `BinaryProvider::CargoBuild` のような起動経路を持たせ、test 開始時に current workspace source から `yoi` を build し、得られた `target/{profile}/yoi` path を PTY で直接 spawn する。
- これにより「任意タイミングの E2E 実行で最新 source から作った binary を使う」ことを起動経路として保証しつつ、実際の UI/latency 測定は Cargo wrapper ではなく `yoi` binary 本体を対象にできる。
- 複数 test の重複 build は `OnceLock`/suite setup 等で 1 回にまとめる。parallel test 実行時の cargo target lock 待ちは opt-in E2E では許容し、必要なら serial 化する。
Rationale:
- 起動後 handshake で正しさを検証するより、起動経路として build step を harness に内蔵する方が単純。
- `cargo run` は可能だが、`run` は build + wrapper spawn を同時に行うため、PTY/Signal/timing の被測定経路に Cargo が入ってしまう。`cargo build` と direct binary spawn に分ける方が E2E の oracle が明確。
---
<!-- event: decision author: orchestrator at: 2026-06-13T15:45:26Z -->
## Decision
Follow-up requested by user: E2E harness should build the current `yoi` binary itself instead of relying on a prebuilt `YOI_E2E_BIN` / inferred `target/debug/yoi`.
Required correction:
- Default E2E binary provider should run `cargo build -p yoi --features e2e-test --bin yoi` from the workspace root at test time, then spawn the resulting `target/{profile}/yoi` directly through PTY.
- `YOI_E2E_BIN` may remain as an explicit override, but normal arbitrary `cargo test -p yoi-e2e --features e2e ...` should use a freshly built binary without requiring a separate manual build step.
- Do not use `cargo run` as the process-under-test because that would put Cargo in the PTY/signal/quit-latency measurement path.
- Preserve the existing production/non-production boundary and E2E feature gating.
---
<!-- event: state_changed author: hare at: 2026-06-13T16:34:06Z from: done to: closed reason: closed field: state -->
## State changed
Ticket を closed にしました。
---
<!-- event: close author: hare at: 2026-06-13T16:34:06Z status: closed -->
## 完了
Closed after prior done-state completion.
---
@@ -1,15 +1,8 @@
---
id: 20260527-000003-internal-worker-workflow
slug: internal-worker-workflow
title: 内部 Worker / 内部 Pod の Workflow 化
status: open
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:03Z
updated_at: 2026-05-27T00:00:03Z
assignee: null
legacy_ticket: tickets/internal-worker-workflow.md
title: "内部 Worker / 内部 Pod の Workflow 化"
state: 'closed'
created_at: "2026-05-27T00:00:03Z"
updated_at: '2026-06-13T09:56:34Z'
---
## Migration reference
+11
View File
@@ -0,0 +1,11 @@
## Resolution
ユーザー指示により close する。
この Ticket は legacy migration 由来の「内部 Worker / 内部 Pod を Workflow と同一仕様で扱う」構想だったが、現在の設計では Workflow と Prompt resource / internal prompt は別 boundary として整理されている。
- public builtin workflow / Yoi dogfood workflow の分離、`resources/workflows/<slug>.md`、workspace override、builtin provenance は関連 Ticket で対応済み。
- internal prompt は `resources/prompts/internal/*``PromptCatalog` / `resources/prompts/internal.toml` 側の責務として扱う。
- 元の要件に残る `INSOMNIA``.insomnia/workflow`、旧 `tickets/*.md` 前提は current Yoi 設計と一致しない。
したがって、この Ticket は実装 routing せず、退役 / superseded として完了扱いにする。将来、internal prompt の remaining gap や internal Workflow substrate が必要になった場合は、現在の Prompt resource / Workflow boundary を前提にした別の concrete Ticket として作成する。
+85
View File
@@ -0,0 +1,85 @@
<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:03Z -->
## Migrated
Migrated from tickets/internal-worker-workflow.md. No legacy review file was present at migration time.
---
<!-- event: plan author: ticket-intake at: 2026-06-13T09:25:59Z -->
## Plan
## Intake refinement
既存 Ticket `00001KSKBPAXR` の body / thread / artifacts を確認した。artifacts は `.gitkeep` のみで、thread は migration 記録のみだった。重複 Ticket は作成しない。
### 現状整理
この Ticket は legacy migration 時点の前提を多く含んでいる。
- 旧名 `INSOMNIA`、旧 path `.insomnia/workflow/<slug>.md`、旧 `tickets/*.md` 参照が残っている。
- その後、Workflow / prompt resource 境界の設計は更新されている。
- `00001KTRKZ14C` は closed。public builtin workflow と Yoi dogfood workflow の分離、`resources/workflows/<slug>.md``WorkflowSource::Builtin`、workspace override、resident core/optional 方針を記録済み。
- `00001KTGFMW70` は closed。embedded builtin Workflow resources、Workflow-required builtin Knowledge fallback/provenance、workspace override を実装済み。
- 現在の internal prompt は `resources/prompts/internal/{memory_extract_system,memory_consolidation_system,compact_system}.md``PromptCatalog` / `resources/prompts/internal.toml` 側で扱われている。
### Intake 判断
現時点で、この Ticket を元のまま「内部 Worker / 内部 Pod を Workflow と同一仕様で実行する」実装 Ticket として route するのは危険。現在の設計では、Workflow は手続き・procedural flow、Prompt resources は system prompt / role behavior / internal worker prompt を所有する別 boundary であり、両者を混ぜると prompt-context / workflow-boundary / tool authority の責務が曖昧になる。
したがって readiness は `requirements_sync_needed`。Orchestrator に渡す前に、人間/maintainer が次のいずれかを選ぶ必要がある。
1. **退役 / superseded 扱い**: この legacy Ticket は `00001KTRKZ14C``00001KTGFMW70`、および現在の `PromptCatalog` internal prompt resource 化で実質的に置き換えられたとして、Orchestrator/human が close する。
2. **PromptCatalog follow-up へ retarget**: Workflow 化ではなく、internal worker prompt の remaining gap を concrete に切り直す。例: extract / consolidation / compact の workspace/user/prompt-pack override、provenance diagnostics、test coverage、docs の不足確認。
3. **真の internal Workflow 呼び出し substrate を新設**: 既存の Prompt resource / Workflow boundary を変更する設計 Ticket として再定義する。この場合は、なぜ PromptCatalog では不足か、tool surface 表明を workflow frontmatter に載せる authority model をどう安全にするか、`user_invocable: false` と resident/launch provenance をどう扱うかを先に設計判断する必要がある。
### Binding decisions / invariants for any refinement
- Workflow prose、Prompt fragments/internal prompts、Knowledge records は別 resource boundary として扱う。混ぜる場合は明示的な設計判断が必要。
- 内部 Worker prompt を model-visible context に載せる場合も、turn を跨ぐ volatile hidden injection にならないよう、既存の history / prompt context 原則に従う。
- `resources/prompts` にある internal prompt は PromptCatalog の責務であり、Workflow loader の責務へ silently 移さない。
- `resources/workflows` の builtin workflow は procedural flow の resource であり、Yoi dogfood semantics を public builtin slug に隠さない。
- `INSOMNIA` / `.insomnia` / legacy `tickets/*.md` 参照は current Ticket routing 前に Yoi / `.yoi` / canonical Ticket ID へ読み替えまたは整理する。
### Risk flags / reviewer focus
- `prompt-context`
- `workflow-boundary`
- `runtime-resource`
- `tool-authority`
- `memory-prompt`
- `migration-compat`
### Open question
この Ticket は退役させるか、PromptCatalog follow-up に切り直すか、internal Workflow substrate の新設設計として再定義するか。現時点ではこの人間判断がないため、`ready` にはしない。
---
<!-- event: state_changed author: hare at: 2026-06-13T09:56:34Z from: planning to: closed reason: closed field: state -->
## State changed
Ticket を closed にしました。
---
<!-- event: close author: hare at: 2026-06-13T09:56:34Z status: closed -->
## 完了
## Resolution
ユーザー指示により close する。
この Ticket は legacy migration 由来の「内部 Worker / 内部 Pod を Workflow と同一仕様で扱う」構想だったが、現在の設計では Workflow と Prompt resource / internal prompt は別 boundary として整理されている。
- public builtin workflow / Yoi dogfood workflow の分離、`resources/workflows/<slug>.md`、workspace override、builtin provenance は関連 Ticket で対応済み。
- internal prompt は `resources/prompts/internal/*``PromptCatalog` / `resources/prompts/internal.toml` 側の責務として扱う。
- 元の要件に残る `INSOMNIA``.insomnia/workflow`、旧 `tickets/*.md` 前提は current Yoi 設計と一致しない。
したがって、この Ticket は実装 routing せず、退役 / superseded として完了扱いにする。将来、internal prompt の remaining gap や internal Workflow substrate が必要になった場合は、現在の Prompt resource / Workflow boundary を前提にした別の concrete Ticket として作成する。
---
@@ -1,15 +1,8 @@
---
id: 20260527-000004-manual-turn-rollback
slug: manual-turn-rollback
title: Pod/TUI: 手動 rewind 導線
status: closed
kind: task
priority: P2
labels: [tui, pod, ux]
created_at: 2026-05-27T00:00:04Z
updated_at: 2026-05-29T03:09:22Z
assignee: null
legacy_ticket: tickets/manual-turn-rollback.md
title: "Pod/TUI: 手動 rewind 導線"
state: "closed"
created_at: "2026-05-27T00:00:04Z"
updated_at: "2026-05-29T03:09:22Z"
---
## Background
@@ -1,15 +1,8 @@
---
id: 20260527-000005-memory-tool-guidance-prompt
slug: memory-tool-guidance-prompt
title: プロンプト: memory / knowledge tool 利用タイミングのガイダンス
status: closed
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:05Z
updated_at: 2026-05-28T23:59:06Z
assignee: null
legacy_ticket: tickets/memory-tool-guidance-prompt.md
title: "プロンプト: memory / knowledge tool 利用タイミングのガイダンス"
state: "closed"
created_at: "2026-05-27T00:00:05Z"
updated_at: "2026-05-28T23:59:06Z"
---
## Migration reference
@@ -1,15 +1,8 @@
---
id: 20260527-000006-permission-default-policy
slug: permission-default-policy
title: Permission: allow-all 既定 policy への整理
status: open
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:06Z
updated_at: 2026-05-27T00:00:06Z
assignee: null
legacy_ticket: tickets/permission-default-policy.md
title: "Permission: allow-all 既定 policy への整理"
state: "planning"
created_at: "2026-05-27T00:00:06Z"
updated_at: "2026-05-27T00:00:06Z"
---
## Migration reference
@@ -1,15 +1,8 @@
---
id: 20260527-000007-pod-inbound-pod-event-dedup
slug: pod-inbound-pod-event-dedup
title: Inbound PodEvent ハンドリングの重複を統合する
status: closed
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:07Z
updated_at: 2026-05-30T05:37:00Z
assignee: null
legacy_ticket: tickets/pod-inbound-pod-event-dedup.md
title: "Inbound PodEvent ハンドリングの重複を統合する"
state: "closed"
created_at: "2026-05-27T00:00:07Z"
updated_at: "2026-05-30T05:37:00Z"
---
## Migration reference
@@ -1,15 +1,8 @@
---
id: 20260527-000008-pod-scope-persistence-authority
slug: pod-scope-persistence-authority
title: Pod: scope 永続化 authority の整理
status: closed
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:08Z
updated_at: 2026-05-30T05:57:16Z
assignee: null
legacy_ticket: tickets/pod-scope-persistence-authority.md
title: "Pod: scope 永続化 authority の整理"
state: "closed"
created_at: "2026-05-27T00:00:08Z"
updated_at: "2026-05-30T05:57:16Z"
---
## Migration reference
@@ -1,15 +1,8 @@
---
id: 20260527-000009-pod-session-fork
slug: pod-session-fork
title: Pod: 任意ターンからの Fork(複数ターン巻き戻し)
status: open
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:09Z
updated_at: 2026-05-27T00:00:09Z
assignee: null
legacy_ticket: tickets/pod-session-fork.md
title: "Pod: 任意ターンからの Fork(複数ターン巻き戻し)"
state: 'closed'
created_at: "2026-05-27T00:00:09Z"
updated_at: '2026-06-20T16:31:29Z'
---
## Migration reference
+1
View File
@@ -0,0 +1 @@
Closed as no longer needed. Arbitrary-turn Pod/session fork and multi-turn rewind are not part of the current desired workflow; current restore/rewind/fork behavior is sufficient for active use, and future history editing should be reopened as a narrower current-runtime design if needed.
+25
View File
@@ -0,0 +1,25 @@
<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:09Z -->
## Migrated
Migrated from tickets/pod-session-fork.md. No legacy review file was present at migration time.
---
<!-- event: state_changed author: hare at: 2026-06-20T16:31:28Z from: planning to: closed reason: closed field: state -->
## State changed
Ticket を closed にしました。
---
<!-- event: close author: hare at: 2026-06-20T16:31:29Z status: closed -->
## 完了
Closed as no longer needed. Arbitrary-turn Pod/session fork and multi-turn rewind are not part of the current desired workflow; current restore/rewind/fork behavior is sufficient for active use, and future history editing should be reopened as a narrower current-runtime design if needed.
---
@@ -1,15 +1,8 @@
---
id: 20260527-000010-prompt-eval-metrics
slug: prompt-eval-metrics
title: Prompt / Workflow 評価メトリクスと改善 Offer
status: open
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:10Z
updated_at: 2026-05-27T00:00:10Z
assignee: null
legacy_ticket: tickets/prompt-eval-metrics.md
title: "Prompt / Workflow 評価メトリクスと改善 Offer"
state: 'closed'
created_at: "2026-05-27T00:00:10Z"
updated_at: '2026-06-20T16:31:29Z'
---
## Migration reference
@@ -155,7 +148,7 @@ Claude Code 版の `tool_uses` を、insomnia では tool 種別ごとの偏り
- 評価 event schema が docs または ticket 内で定義されている
- eval event を memory consolidation / usage metrics / Workflow improvement offer / `model_invokation` 判断へ接続する方針が文書化されている
- 既存の Workflow 自動生成禁止・history に commit されない context input 禁止・memory consolidation 方針に反していない
- `/auto-maintain` または `/worktree-workflow`どちらか 1 件を対象に、構造審査または小規模 evaluator Pod 試走を行い、結果を記録している
- `ticket-intake-workflow` / `ticket-orchestrator-routing` / `worktree-workflow`いずれか 1 件を対象に、構造審査または小規模 evaluator Pod 試走を行い、結果を記録している
## 参照
@@ -163,4 +156,4 @@ Claude Code 版の `tool_uses` を、insomnia では tool 種別ごとの偏り
- `docs/plan/workflow.md`
- `docs/plan/memory.md`
- `tickets/memory-usage-metrics.md`
- `tickets/auto-maintain-workflow.md`
- `ticket-intake-workflow.md` / `ticket-orchestrator-routing.md`
+1
View File
@@ -0,0 +1 @@
Closed as superseded/no longer needed. Workflow evaluation metrics and improvement planning have moved under the newer Memory redesign / team-workspace memory objectives, so this old prompt/workflow metrics ticket should not remain as a standalone planning item.
+25
View File
@@ -0,0 +1,25 @@
<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:10Z -->
## Migrated
Migrated from tickets/prompt-eval-metrics.md. No legacy review file was present at migration time.
---
<!-- event: state_changed author: hare at: 2026-06-20T16:31:29Z from: planning to: closed reason: closed field: state -->
## State changed
Ticket を closed にしました。
---
<!-- event: close author: hare at: 2026-06-20T16:31:29Z status: closed -->
## 完了
Closed as superseded/no longer needed. Workflow evaluation metrics and improvement planning have moved under the newer Memory redesign / team-workspace memory objectives, so this old prompt/workflow metrics ticket should not remain as a standalone planning item.
---
@@ -1,15 +1,8 @@
---
id: 20260527-000011-session-todo-reminder
slug: session-todo-reminder
title: セッション内 Task ツールの注意機構
status: closed
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:11Z
updated_at: 2026-05-29T04:31:10Z
assignee: null
legacy_ticket: tickets/session-todo-reminder.md
title: "セッション内 Task ツールの注意機構"
state: "closed"
created_at: "2026-05-27T00:00:11Z"
updated_at: "2026-05-29T04:31:10Z"
---
## Migration reference
@@ -1,15 +1,8 @@
---
id: 20260527-000012-spawnpod-initial-run-confirmation
slug: spawnpod-initial-run-confirmation
title: SpawnPod: initial Run delivery confirmation
status: closed
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:12Z
updated_at: 2026-05-28T13:24:48Z
assignee: null
legacy_ticket: tickets/spawnpod-initial-run-confirmation.md
title: "SpawnPod: initial Run delivery confirmation"
state: "closed"
created_at: "2026-05-27T00:00:12Z"
updated_at: "2026-05-28T13:24:48Z"
---
## Migration reference
@@ -1,15 +1,8 @@
---
id: 20260527-000013-tickets-sh-workitem-thread-mvp
slug: tickets-sh-workitem-thread-mvp
title: Ticket 管理: tickets.sh による WorkItem / Thread MVP
status: closed
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:13Z
updated_at: 2026-05-27T19:28:41Z
assignee: null
legacy_ticket: tickets/tickets-sh-workitem-thread-mvp.md
title: "Ticket 管理: tickets.sh による WorkItem / Thread MVP"
state: "closed"
created_at: "2026-05-27T00:00:13Z"
updated_at: "2026-05-27T19:28:41Z"
---
## Migration reference
@@ -74,7 +67,6 @@ labels: [maintainer, workflow]
created_at: 2026-05-26T12:34:56Z
updated_at: 2026-05-26T12:34:56Z
assignee: null
legacy_ticket: tickets/foo.md
---
## Background
@@ -1,15 +1,8 @@
---
id: 20260527-000014-tui-actionbar-transient-notice-api
slug: tui-actionbar-transient-notice-api
title: TUI: actionbar transient notice API
status: closed
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:14Z
updated_at: 2026-05-29T03:57:35Z
assignee: null
legacy_ticket: tickets/tui-actionbar-transient-notice-api.md
title: "TUI: actionbar transient notice API"
state: "closed"
created_at: "2026-05-27T00:00:14Z"
updated_at: "2026-05-29T03:57:35Z"
---
## Migration reference
@@ -1,15 +1,8 @@
---
id: 20260527-000015-tui-navigation-mode-design
slug: tui-navigation-mode-design
title: TUI: navigation mode / block focus の設計
status: open
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:15Z
updated_at: 2026-05-27T00:00:15Z
assignee: null
legacy_ticket: tickets/tui-navigation-mode-design.md
title: "TUI: navigation mode / block focus の設計"
state: 'closed'
created_at: "2026-05-27T00:00:15Z"
updated_at: '2026-06-20T16:31:29Z'
---
## Migration reference
+1
View File
@@ -0,0 +1 @@
Closed as no longer needed. The current TUI navigation/block-focus behavior is satisfactory, so the older navigation-mode design ticket is obsolete.
+25
View File
@@ -0,0 +1,25 @@
<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:15Z -->
## Migrated
Migrated from tickets/tui-navigation-mode-design.md. No legacy review file was present at migration time.
---
<!-- event: state_changed author: hare at: 2026-06-20T16:31:29Z from: planning to: closed reason: closed field: state -->
## State changed
Ticket を closed にしました。
---
<!-- event: close author: hare at: 2026-06-20T16:31:29Z status: closed -->
## 完了
Closed as no longer needed. The current TUI navigation/block-focus behavior is satisfactory, so the older navigation-mode design ticket is obsolete.
---
@@ -1,15 +1,8 @@
---
id: 20260527-000016-tui-picker-live-pending-pods
slug: tui-picker-live-pending-pods
title: TUI picker: live pending Pod の表示優先と状態補完
status: closed
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:16Z
updated_at: 2026-05-30T05:00:56Z
assignee: null
legacy_ticket: tickets/tui-picker-live-pending-pods.md
title: "TUI picker: live pending Pod の表示優先と状態補完"
state: "closed"
created_at: "2026-05-27T00:00:16Z"
updated_at: "2026-05-30T05:00:56Z"
---
## Migration reference
@@ -1,15 +1,8 @@
---
id: 20260527-000017-tui-spawned-pod-panel
slug: tui-spawned-pod-panel
title: TUI: spawned child Pod の一覧と一時 attach
status: open
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:17Z
updated_at: 2026-05-28T14:16:02Z
assignee: null
legacy_ticket: tickets/tui-spawned-pod-panel.md
title: "TUI: spawned child Pod の一覧と一時 attach"
state: "closed"
created_at: "2026-05-27T00:00:17Z"
updated_at: "2026-06-07T03:14:39Z"
---
## Migration reference
+3
View File
@@ -0,0 +1,3 @@
Closed as intentionally not planned.
The old migrated spawned-Pod panel idea has been superseded by the workspace panel, Pod list/open/attach behavior, Ticket role launching, and the local role session registry. The remaining direction is not to revive this standalone spawned-child panel ticket. Future panel work should be tracked through the newer workspace panel / orchestration tickets.
+39
View File
@@ -0,0 +1,39 @@
<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:17Z -->
## Migrated
Migrated from tickets/tui-spawned-pod-panel.md. No legacy review file was present at migration time.
---
<!-- event: decision author: hare at: 2026-06-05T04:03:38Z -->
## Decision
Decision: deprioritize this ticket for the current multi-agent system direction.
Current need is not a TUI panel for spawned Pods. The priority is Ticket-driven intake/routing: making Tickets a code-facing durable orchestration record, then exposing Ticket operations to Intake/Orchestrator through a typed backend/tool surface.
This ticket is not closed as technically invalid; it is moved out of the active multi-agent implementation path. Revisit only if direct child Pod visibility/attach UI becomes a concrete UX requirement.
---
<!-- event: state_changed author: hare at: 2026-06-07T03:14:39Z from: intake to: done reason: closed field: workflow_state -->
## State changed
Ticket closed; workflow_state set to done.
---
<!-- event: close author: hare at: 2026-06-07T03:14:39Z status: closed -->
## Closed
Closed as intentionally not planned.
The old migrated spawned-Pod panel idea has been superseded by the workspace panel, Pod list/open/attach behavior, Ticket role launching, and the local role session registry. The remaining direction is not to revive this standalone spawned-child panel ticket. Future panel work should be tracked through the newer workspace panel / orchestration tickets.
---
@@ -0,0 +1 @@
{"id":"orch-plan-20260610-090202-1","ticket_id":"00001KSKBPSJG","kind":"accepted_plan","accepted_plan":{"summary":"Implement the model setup wizard as an explicit one-shot CLI path, not normal Pod startup: add `yoi setup-model` that launches a setup TUI. The wizard should select a bundled model/provider entry, optionally accept an auth hint/reference when the provider requires one, and persist a user default Profile by updating the user Profile registry under the normal config root (`profiles.toml` plus a generated user Profile Lua file such as `profiles/default.lua`). It must not write workspace `.yoi`, session history, Ticket files, runtime/local/secret-like files, or start/attach a Pod during setup. Existing normal launch semantics remain unchanged except that subsequent default startup can use the persisted user default Profile.","branch":"tui-model-setup-wizard","worktree":"/home/hare/Projects/yoi/.worktree/tui-model-setup-wizard","role_plan":"Coder implements in `.worktree/tui-model-setup-wizard` with write scope limited to the child worktree. Orchestrator keeps Ticket/progress records in the main workspace. Reviewer will be delegated after coder report."},"author":"orchestrator","at":"2026-06-10T09:02:02Z"}
@@ -1,15 +1,10 @@
---
id: 20260527-000018-tui-user-model-setup
slug: tui-user-model-setup
title: TUI: ユーザーマニフェストのモデル設定 wizard
status: open
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:18Z
updated_at: 2026-05-27T00:00:18Z
assignee: null
legacy_ticket: tickets/tui-user-model-setup.md
title: "TUI: ユーザーマニフェストのモデル設定 wizard"
state: 'closed'
created_at: "2026-05-27T00:00:18Z"
updated_at: '2026-06-10T09:31:45Z'
queued_by: 'yoi ticket'
queued_at: '2026-06-10T07:59:32Z'
---
## Migration reference
+27
View File
@@ -0,0 +1,27 @@
完了しました。
実施内容:
- `yoi setup-model` を top-level command として追加しました。
- setup path は通常の Pod 起動/attach/session 復元とは分離され、選択した catalog-backed model を user config 配下の Profile 設定として保存します。
- `profiles.toml` の default selector と `[profile.default]`、および generated `profiles/default.lua` を deterministic に書きます。
- setup 実行中に workspace `.yoi`、Ticket、session、runtime/local/secret-like files は書きません。
- `yoi --help``yoi setup-model` を表示します。
- `package.nix` cargoHash も更新しました。
Merge:
- Branch: `tui-model-setup-wizard`
- Merge commit: `021661b5 merge: setup model wizard`
確認:
- Branch-local reviewer `reviewer-tui-model-setup-wizard` が approve。
- `cargo fmt --check` passed。
- `git diff --check` passed。
- `cargo test -p tui setup_model --lib` passed。
- `cargo test -p yoi setup_model --bin yoi` passed。
- `cargo check -p yoi` passed。
- `target/debug/yoi ticket doctor` passed。
- typed `TicketDoctor` は 0 errors / 3 pre-existing diagnostics。
- `nix build .#yoi` passed。
残作業:
- なし。将来的に richer alt-screen setup UI に発展させる余地はありますが、本 Ticket の one-shot setup command / Profile persistence 要件は満たしています。
+307
View File
@@ -0,0 +1,307 @@
<!-- event: migration author: tickets.sh-migration at: 2026-05-27T00:00:18Z -->
## Migrated
Migrated from tickets/tui-user-model-setup.md. No legacy review file was present at migration time.
---
<!-- event: decision author: ticket-intake at: 2026-06-08T07:29:01Z -->
## Decision
## Intake refinement: current Yoi context
This is an existing migrated Ticket; no duplicate Ticket was created. The original body remains useful for the desired wizard shape, but several migrated assumptions are stale and must be treated as superseded where they conflict with current Yoi code and project decisions.
### Current request snapshot
Add an interactive TUI setup flow that helps a first-time user choose a provider/model from the provider catalog and persist a user-level default model configuration so a normal fresh `yoi` spawn can resolve a model without manual TOML editing.
### Binding decisions / invariants
- Product entrypoint is the installed `yoi` binary, not an old standalone `tui`/`insomnia` binary. The CLI surface should be chosen under the `yoi` CLI owner boundary; the migrated `tui setup-model` spelling is only historical/placeholder text.
- Current config paths use `manifest::paths::config_dir()` with default `$XDG_CONFIG_HOME/yoi` / `$HOME/.config/yoi`, not `~/.config/insomnia`.
- Normal reusable runtime configuration is Profile-oriented. The implementation must decide, with preflight, whether this wizard writes/updates `profiles.toml`, a profile-local model fragment, or another explicit user config surface; it must not silently reintroduce the removed ambient manifest-cascade model.
- Current catalog auth hints are `AuthHint::None`, `AuthHint::ApiKey`, `AuthHint::SecretRef { ref_ }`, and `AuthHint::CodexOAuth`; the migrated `ApiKey { env: Option<String> }` flow is stale.
- Secret values must not be written into Ticket bodies, logs, diagnostics, or generated artifacts. Prefer the existing local secret-store / `yoi keys` boundary for normal provider credentials; raw `model.auth.file` remains a low-level explicit-file source, not the default UX if a safer secret-ref path is available.
- The wizard must be cancel-safe: no user config/secret writes before explicit confirmation, and failed parsing/writing must leave existing config usable.
### Implementation latitude
- The exact command name may be settled during preflight, but should fit existing `yoi` CLI semantics and help text.
- A simple vertical provider/model list is sufficient for the first implementation; search/filtering can be deferred unless preflight finds the catalog size makes it necessary.
- If only one model exists for the selected provider, skipping the model-choice step is acceptable.
- Preview may show the generated/surgical config change rather than a full diff, as long as overwrite of an existing model/default is explicit.
### Acceptance criteria
- A first-time user can launch the setup flow from the `yoi` CLI without entering normal Pod spawn by accident.
- The flow loads current `provider::catalog::load_providers()` and `load_models()` data, displays provider/model choices, and handles all current `AuthHint` variants.
- The confirmed result persists a user-level default model/profile configuration at the current Yoi config path, without storing plaintext secrets in config by default.
- Existing user config with an existing model/default is detected and requires overwrite confirmation; malformed config is reported and not rewritten.
- Esc/Ctrl-C cancel before confirmation leaves files unchanged.
- After setup, a normal fresh `yoi` spawn can resolve the selected model/profile without a model-resolve error.
- Validation includes focused Rust tests for CLI parsing/config rendering/update behavior and `nix build .#yoi` because this changes CLI/TUI/runtime resources/packaging-visible code.
### Readiness / routing signal
- readiness: spike_needed
- needs_preflight: true
- risk_flags: [cli-ux, profiles-config, secrets, auth-boundary, migration-staleness, tui]
This Ticket is ready for Orchestrator routing to preflight/spike, not direct implementation. Preflight should first settle the current user-config write target and command spelling, then either update the Ticket body or record a concise binding decision before implementation.
---
<!-- event: intake_summary author: ticket-intake at: 2026-06-08T07:29:10Z -->
## Intake summary
Updated existing Ticket 20260527-000018-tui-user-model-setup in place; no duplicate was created. The migrated request is now clarified as a Yoi CLI/TUI first-run model setup flow, with stale `tui`/`insomnia`/old AuthHint assumptions explicitly superseded in the thread. Routing readiness is spike/preflight, not direct implementation: first settle current `yoi` command spelling and the user-level config write target for Profile-oriented model defaults, then implement the wizard. needs_preflight=true; risk_flags=[cli-ux, profiles-config, secrets, auth-boundary, migration-staleness, tui].
---
<!-- event: state_changed author: ticket-intake at: 2026-06-08T07:29:10Z from: intake to: ready reason: intake_ready field: workflow_state -->
## State changed
Intake clarification completed for the existing Ticket. The Ticket is ready for Orchestrator routing to preflight/spike; implementation should not begin until the preflight decisions called out in the intake summary are recorded.
---
<!-- event: state_changed author: "yoi ticket" at: 2026-06-10T07:59:32Z from: ready to: queued reason: queued field: state -->
## State changed
Ticket を `yoi ticket` が queued にしました。
---
<!-- event: decision author: hare at: 2026-06-10T07:59:32Z -->
## Decision
Human authorized Queue from workspace panel notification; Orchestrator read the Ticket and will accept before implementation side effects.
---
<!-- event: state_changed author: "yoi ticket" at: 2026-06-10T07:59:32Z from: queued to: inprogress reason: cli_state field: state -->
## State changed
State changed to `inprogress`.
---
<!-- event: decision author: hare at: 2026-06-10T07:59:32Z -->
## Decision
Accepting implementation after workspace inspection. Expected overlap with prompt-resource cleanup is low, so route in parallel in a dedicated worktree.
---
<!-- event: plan author: orchestrator at: 2026-06-10T09:02:02Z -->
## Plan
Routing decision: implementation_ready
Reason:
- Ticket is already `inprogress`; relation query and orchestration-plan query show no blockers.
- Existing thread marked this as needing a small preflight. Bounded code/context check resolved the implementation-shaping decisions without needing another planning round.
Evidence checked:
- Ticket body/thread/artifacts for `00001KSKBPSJG`.
- Relation records: none.
- Orchestration plan records: none before this routing pass.
- Current worktree/branch state: `.worktree/tui-model-setup-wizard` exists and has no implementation commit yet.
- Current CLI surface in `crates/yoi/src/main.rs` includes top-level `panel`, `keys`, `pod`, `ticket`, `objective`, `session`, `memory lint`; setup is not yet present.
- Profile/config surface in `crates/manifest/src/paths.rs` and `crates/manifest/src/profile.rs`; active reusable Profiles are Lua-first with user registry/config under the normal config root.
- Provider/model catalog resources under `resources/providers` and `resources/models`.
Binding decisions / invariants:
- Add an explicit one-shot setup entry point `yoi setup-model`; it must not run normal Pod startup, create sessions, attach sockets, or spawn Pods while configuring.
- Persist the result as a user default Profile through normal Profile mechanisms: user `profiles.toml` plus a generated user Profile Lua file (for example `profiles/default.lua`) under the normal config root. Do not write workspace `.yoi`, Ticket records, session history, runtime/local/secret-like files, or project records from the setup wizard.
- Do not introduce legacy manifest authority or new environment-variable configuration surfaces.
- Keep existing startup/profile semantics intact; the setup wizard only creates/updates config that normal startup already knows how to consume.
- If provider credential handling needs more than selecting/recording an existing auth hint/ref, escalate rather than inventing a new secret store flow.
Implementation latitude:
- Exact TUI layout and internal state machine organization are up to coder, bounded by the one-shot setup and persistence invariants.
- Coder may choose the generated profile name/path if it is deterministic, user-config scoped, and unambiguous from the default selector.
- Coder may keep the catalog/model choice set modest and testable for the first implementation.
Validation:
- Focused CLI/parser and setup persistence tests.
- Focused TUI/setup module tests where practical.
- `cargo fmt --check` or `cargo fmt`, `git diff --check`, focused cargo tests, and broader `cargo check`/`nix build .#yoi` before merge because this touches CLI/TUI/config/package source surfaces.
Escalate if:
- The implementation requires changing Profile registry semantics, secret-store behavior, normal Pod launch behavior, or workspace `.yoi` authority.
- Credential entry/storage cannot be limited to an existing explicit auth reference/hint.
---
<!-- event: plan author: orchestrator at: 2026-06-10T09:08:59Z -->
## Plan
Routing update: blocked_by_dependency_or_missing_authority
Reason:
- This Ticket remains `inprogress` and has an accepted implementation plan for `.worktree/tui-model-setup-wizard`, but the current Orchestrator process cannot delegate write scope to the child worktree.
- Attempted `SpawnPod` for `coder-tui-model-setup-wizard` with write scope limited to the child worktree failed: requested scope `/home/hare/Projects/yoi/.worktree/tui-model-setup-wizard` is not within the spawner effective scope.
- Retrying with broader `/home/hare/Projects/yoi` write scope also failed for the same effective-scope reason.
- Direct file write to the child worktree through the available tool scope is read-only, so the Orchestrator cannot safely implement the Ticket in this session either.
Evidence checked:
- Ticket body/thread/artifacts and relation/orchestration-plan records.
- Current CLI/profile/provider code map was boundedly inspected and the accepted plan was recorded.
- Worktree `.worktree/tui-model-setup-wizard` exists, but no coder was spawned and no implementation files were changed.
Next action:
- Continue this Ticket from a Pod/session with delegated write scope for `.worktree/tui-model-setup-wizard`, or explicitly re-route/clean up the existing inprogress worktree.
- Do not treat this as planning uncertainty; the current blocker is write/delegation authority for implementation side effects.
---
<!-- event: implementation_report author: orchestrator at: 2026-06-10T09:16:45Z -->
## Implementation report
Implementation report
Branch/worktree: `tui-model-setup-wizard` / `.worktree/tui-model-setup-wizard`
Commits:
- `6bb023e9 merge develop into setup wizard worktree` (brought branch up to current `develop` before implementation)
- `32be6075 feat: add setup model command`
Summary:
- Added a top-level `yoi setup-model` command that enters a one-shot setup path separate from normal Pod startup.
- Added `tui::setup_model` to list catalog-backed models/providers, prompt for a default selection, and persist user Profile config under the normal user config directory.
- Persistence writes `profiles.toml` with `default = "user:default"` and `[profile.default] path = "profiles/default.lua"`, plus generated `profiles/default.lua` using the selected model ref.
- The setup path does not start/attach a Pod, create sessions, or write workspace `.yoi` records.
- Added CLI parser tests for `setup-model` and persistence tests for generated profile config.
Validation run in branch:
- `cargo fmt`
- `cargo test -p tui setup_model --lib` passed.
- `cargo test -p yoi parse_setup_model --bin yoi` passed.
- `cargo check -p yoi` passed.
- `git diff --check` passed.
Notes:
- `nix build .#yoi` was not run in the branch yet; Orchestrator should run it before merge because this touches CLI/TUI/config/package source surfaces.
- The implementation uses a simple bounded terminal setup flow rather than broad TUI refactoring.
---
<!-- event: review author: reviewer-tui-model-setup-wizard at: 2026-06-10T09:29:42Z status: approve -->
## Review: approve
Branch-local review verdict: approve
Blockers: none.
Reviewer confirmed after fixes:
- `package.nix` cargoHash was updated and `nix build .#yoi` passed.
- Top-level help now lists `yoi setup-model`.
- Tracked worktree is clean.
Validation run by reviewer:
- `cargo test -p tui setup_model --lib` passed.
- `cargo test -p yoi setup_model --bin yoi` passed.
- `cargo check -p yoi` passed.
- `git diff --check $(git merge-base HEAD develop)..HEAD` passed.
- `nix build .#yoi` passed.
This is branch-local review evidence; final main-branch approval/close belongs to merge-completion.
---
<!-- event: review author: orchestrator at: 2026-06-10T09:31:33Z status: approve -->
## Review: approve
Main-branch review/merge-completion approval.
Verified before merge:
- Branch-local reviewer approved after blocker fix.
- Merge target matched branch `tui-model-setup-wizard` / worktree `.worktree/tui-model-setup-wizard` and commits `6bb023e9`, `32be6075`, `66d6bf2e`, `c06817b4`.
- Packaging blocker was fixed by updating `package.nix` cargoHash; top-level help lists `yoi setup-model`.
Merged:
- `git merge --no-ff tui-model-setup-wizard -m "merge: setup model wizard"`
- Merge commit: `021661b5 merge: setup model wizard`
Post-merge validation:
- `cargo fmt --check` passed.
- `git diff --check` passed.
- `cargo test -p tui setup_model --lib` passed.
- `cargo test -p yoi setup_model --bin yoi` passed.
- `cargo check -p yoi` passed.
- `target/debug/yoi ticket doctor` passed.
- typed `TicketDoctor` reported 0 errors and 3 pre-existing diagnostics.
- `nix build .#yoi` passed.
Result: approve.
---
<!-- event: state_changed author: orchestrator at: 2026-06-10T09:31:33Z from: inprogress to: done reason: merged_and_validated field: state -->
## State changed
Merged branch `tui-model-setup-wizard` with merge commit `021661b5`; branch-local review approved after fixes and post-merge validation passed (`cargo fmt --check`, `git diff --check`, `cargo test -p tui setup_model --lib`, `cargo test -p yoi setup_model --bin yoi`, `cargo check -p yoi`, `target/debug/yoi ticket doctor`, `nix build .#yoi`).
---
<!-- event: state_changed author: hare at: 2026-06-10T09:31:45Z from: done to: closed reason: closed field: state -->
## State changed
Ticket を closed にしました。
---
<!-- event: close author: hare at: 2026-06-10T09:31:45Z status: closed -->
## 完了
完了しました。
実施内容:
- `yoi setup-model` を top-level command として追加しました。
- setup path は通常の Pod 起動/attach/session 復元とは分離され、選択した catalog-backed model を user config 配下の Profile 設定として保存します。
- `profiles.toml` の default selector と `[profile.default]`、および generated `profiles/default.lua` を deterministic に書きます。
- setup 実行中に workspace `.yoi`、Ticket、session、runtime/local/secret-like files は書きません。
- `yoi --help``yoi setup-model` を表示します。
- `package.nix` cargoHash も更新しました。
Merge:
- Branch: `tui-model-setup-wizard`
- Merge commit: `021661b5 merge: setup model wizard`
確認:
- Branch-local reviewer `reviewer-tui-model-setup-wizard` が approve。
- `cargo fmt --check` passed。
- `git diff --check` passed。
- `cargo test -p tui setup_model --lib` passed。
- `cargo test -p yoi setup_model --bin yoi` passed。
- `cargo check -p yoi` passed。
- `target/debug/yoi ticket doctor` passed。
- typed `TicketDoctor` は 0 errors / 3 pre-existing diagnostics。
- `nix build .#yoi` passed。
残作業:
- なし。将来的に richer alt-screen setup UI に発展させる余地はありますが、本 Ticket の one-shot setup command / Profile persistence 要件は満たしています。
---
@@ -1,15 +1,8 @@
---
id: 20260527-000019-workspace-memory-lint-cli
slug: workspace-memory-lint-cli
title: ワークスペースのメモリーをLintするヘッドレスCLI
status: closed
kind: task
priority: P2
labels: [migrated, memory, cli]
created_at: 2026-05-27T00:00:19Z
updated_at: 2026-05-31T02:15:17Z
assignee: null
legacy_ticket: null
title: "ワークスペースのメモリーをLintするヘッドレスCLI"
state: "closed"
created_at: "2026-05-27T00:00:19Z"
updated_at: "2026-05-31T02:15:17Z"
---
## Background
@@ -1,15 +1,8 @@
---
id: 20260527-000020-system-reminder-injection-generalization
slug: system-reminder-injection-generalization
title: Generalize system-reminder history append lane
status: closed
kind: task
priority: P2
labels: [pod, llm-worker, history, system-reminder]
created_at: 2026-05-27T00:00:20Z
updated_at: 2026-05-29T05:05:43Z
assignee: null
legacy_ticket: null
title: "Generalize system-reminder history append lane"
state: "closed"
created_at: "2026-05-27T00:00:20Z"
updated_at: "2026-05-29T05:05:43Z"
---
## Background

Some files were not shown because too many files have changed in this diff Show More