@howaboua/pi-extensions 0.0.58 → 0.0.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/CHANGELOG.md +933 -0
  2. package/changelog.ts +327 -0
  3. package/package.json +8 -4
package/CHANGELOG.md ADDED
@@ -0,0 +1,933 @@
1
+ # @howaboua/pi-extensions
2
+
3
+ ## 0.0.59
4
+
5
+ ### Changes
6
+
7
+ - Include bundled package updates:
8
+
9
+ - @howaboua/pi-subagent-review: Preserve the review findings UI while restoring the `before_agent_start` lifecycle when `/review` is the first session message. - Keep findings custom-rendered, then use a normal user turn for verification and disposition. - Direct the agent to verify findings against the cited code, request user dispositions, and begin agreed work without resummarizing. - End cleanly without a disposition turn when the reviewer finds no actionable issues. - Show this package’s unseen release notes in the shared startup card, with a global suppression setting.
10
+
11
+ - Updated dependencies [[`8456135`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/8456135c54113c01541c8ee8874baa1bd9eefa59)]:
12
+ - @howaboua/pi-subagent-review@0.2.17
13
+
14
+ ## 0.0.58
15
+
16
+ ### Changes
17
+
18
+ - Include bundled package updates:
19
+
20
+ - @howaboua/pi-shepherdr: Orchestrate Pi agents across named remote Herdr machines with automatic SSH bridge deployment and explicit reconnect controls.
21
+
22
+ - Updated dependencies [[`b20e7de`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/b20e7de137fe89344bc15b06c7e7e0bf02a896b3)]:
23
+ - @howaboua/pi-shepherdr@0.1.2
24
+
25
+ ## 0.0.57
26
+
27
+ ### Changes
28
+
29
+ - Include bundled package updates:
30
+
31
+ - @howaboua/pi-unicode-charts: Add terminal-native Unicode bar, line, scatter, sparkline, and heatmap rendering for explicit `chart` Markdown blocks.
32
+
33
+ ## 0.0.56
34
+
35
+ ### Changes
36
+
37
+ - Include bundled package updates:
38
+
39
+ - @howaboua/pi-gippity-control:
40
+ - Route `/gippity create` through Pi's ordinary user-prompt lifecycle while preserving its transcript card.
41
+ - Condense settings details and show the effective LAN port.
42
+ - Document custom web-app paths and port configuration.
43
+
44
+ - Updated dependencies [[`439c7f0`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/439c7f05c5e5c8a1d8a69ae133167e56289af555)]:
45
+ - @howaboua/pi-gippity-control@0.0.12
46
+
47
+ ## 0.0.55
48
+
49
+ ### Changes
50
+
51
+ - Include bundled package updates:
52
+
53
+ - @howaboua/pi-gippity-control:
54
+ - Allow the LAN control server port to be set through lan.port and keep discovery available while a custom app is incomplete.
55
+
56
+ - Updated dependencies [[`0e4e876`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/0e4e87648c8612253b3e0758652077f1c8f4ef57)]:
57
+ - @howaboua/pi-gippity-control@0.0.11
58
+
59
+ ## 0.0.54
60
+
61
+ ### Changes
62
+
63
+ - Include bundled package updates:
64
+
65
+ - @howaboua/pi-gippity-control:
66
+ - Add hosted custom remote apps and guided frontend creation.
67
+ - Provide a browser client with agent-readable discovery.
68
+ - Stream Pi events and generic Pi/context RPC through bounded realtime context frames.
69
+
70
+ - Updated dependencies [[`adfe989`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/adfe989598cab149c483a595e0108f917b7c40fa)]:
71
+ - @howaboua/pi-gippity-control@0.0.10
72
+
73
+ ## 0.0.53
74
+
75
+ ### Changes
76
+
77
+ - Include bundled package updates:
78
+
79
+ - @howaboua/pi-ask:
80
+ - Add shared realtime voice prompts for ask prompts, Auto Trees, Shepherdr settlements, and review progress.
81
+ - Announce compaction and stream conversational Pi updates after two sentences.
82
+ - Keep silent tool-step summaries compatible without exposing Chat Completions thinking content.
83
+ - Configure delegation acknowledgements and deliver V3 delegations immediately.
84
+ - Preserve late delegations, calls after data-channel closure, prepared Code Mode prompts, and Codex cache continuity.
85
+ - Reduce LAN playback dropouts with one more jitter-buffer frame.
86
+ - @howaboua/pi-auto-trees:
87
+ - Add shared realtime voice prompts for ask prompts, Auto Trees, Shepherdr settlements, and review progress.
88
+ - Announce compaction and stream conversational Pi updates after two sentences.
89
+ - Keep silent tool-step summaries compatible without exposing Chat Completions thinking content.
90
+ - Configure delegation acknowledgements and deliver V3 delegations immediately.
91
+ - Preserve late delegations, calls after data-channel closure, prepared Code Mode prompts, and Codex cache continuity.
92
+ - Reduce LAN playback dropouts with one more jitter-buffer frame.
93
+ - @howaboua/pi-gippity-control:
94
+ - Follow system audio defaults unless an endpoint is pinned.
95
+ - Keep successfully rerouted output streams active.
96
+ - Share guided first-run and manual audio setup.
97
+ - @howaboua/pi-gippity-control:
98
+ - Show voice-context summarization progress.
99
+ - Greet users through the V3 speakable context channel when realtime sessions are ready.
100
+ - Warn in Pi and the LAN controller when microphone input is too quiet.
101
+ - @howaboua/pi-gippity-control:
102
+ - Add shared realtime voice prompts for ask prompts, Auto Trees, Shepherdr settlements, and review progress.
103
+ - Announce compaction and stream conversational Pi updates after two sentences.
104
+ - Keep silent tool-step summaries compatible without exposing Chat Completions thinking content.
105
+ - Configure delegation acknowledgements and deliver V3 delegations immediately.
106
+ - Preserve late delegations, calls after data-channel closure, prepared Code Mode prompts, and Codex cache continuity.
107
+ - Reduce LAN playback dropouts with one more jitter-buffer frame.
108
+ - @howaboua/pi-shepherdr:
109
+ - Add shared realtime voice prompts for ask prompts, Auto Trees, Shepherdr settlements, and review progress.
110
+ - Announce compaction and stream conversational Pi updates after two sentences.
111
+ - Keep silent tool-step summaries compatible without exposing Chat Completions thinking content.
112
+ - Configure delegation acknowledgements and deliver V3 delegations immediately.
113
+ - Preserve late delegations, calls after data-channel closure, prepared Code Mode prompts, and Codex cache continuity.
114
+ - Reduce LAN playback dropouts with one more jitter-buffer frame.
115
+ - @howaboua/pi-subagent-review:
116
+ - Add shared realtime voice prompts for ask prompts, Auto Trees, Shepherdr settlements, and review progress.
117
+ - Announce compaction and stream conversational Pi updates after two sentences.
118
+ - Keep silent tool-step summaries compatible without exposing Chat Completions thinking content.
119
+ - Configure delegation acknowledgements and deliver V3 delegations immediately.
120
+ - Preserve late delegations, calls after data-channel closure, prepared Code Mode prompts, and Codex cache continuity.
121
+ - Reduce LAN playback dropouts with one more jitter-buffer frame.
122
+
123
+ - Updated dependencies [[`85b0a1f`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/85b0a1f3f22a4e6f8c98211fefe8388c3be39d29), [`df747db`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/df747dbc74520d11f7e56e3d85e2df81f5facba2), [`6138ffd`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/6138ffd735bb4f7f80e451320dbfd0933a4acaa7)]:
124
+ - @howaboua/pi-gippity-control@0.0.9
125
+ - @howaboua/pi-ask@0.0.5
126
+ - @howaboua/pi-auto-trees@0.1.13
127
+ - @howaboua/pi-shepherdr@0.1.1
128
+ - @howaboua/pi-subagent-review@0.2.16
129
+
130
+ ## 0.0.52
131
+
132
+ ### Changes
133
+
134
+ - Include bundled package updates:
135
+
136
+ - @howaboua/pi-shepherdr:
137
+ - Add Shepherdr, a Herdr-native Pi agent orchestrator with event-driven monitoring and a live fleet widget.
138
+
139
+ ## 0.0.51
140
+
141
+ ### Changes
142
+
143
+ - Include bundled package updates:
144
+
145
+ - @howaboua/pi-gippity-control:
146
+ - Add opt-in dropped realtime voice call auto-resume to GipPity Control and update Undici to its patched release.
147
+
148
+ - Updated dependencies [[`c9fcbf8`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/c9fcbf8a44adff914ed8c4a86703a35d503e4b0b)]:
149
+ - @howaboua/pi-gippity-control@0.0.8
150
+
151
+ ## 0.0.50
152
+
153
+ ### Changes
154
+
155
+ - Include bundled package updates:
156
+
157
+ - @howaboua/pi-semantic-grep:
158
+ - Make indexing non-blocking at session startup.
159
+ - Use a single writer with atomic, resumable rebuilds.
160
+ - Respect ignore rules and prioritize metadata, batching, and roles.
161
+ - Preserve usable prior indexes across interrupted rebuilds.
162
+
163
+ - Updated dependencies [[`7dbbfc8`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/7dbbfc8bc28746ec28b3142a73efc8e0b14d2ffa)]:
164
+ - @howaboua/pi-semantic-grep@0.1.19
165
+
166
+ ## 0.0.49
167
+
168
+ ### Changes
169
+
170
+ - Include bundled package updates:
171
+
172
+ - @howaboua/pi-auto-trees:
173
+ - Preserve Pi 0.84 credential-resolved endpoints and nullable auth headers in summaries.
174
+ - Assemble complete multi-block, delta-only RPC streaming updates.
175
+ - Remove retired Smart BTW shortcut-capture and voice-helper exports.
176
+ - @howaboua/pi-gippity-control:
177
+ - Preserve Pi 0.84 credential-resolved endpoints and nullable auth headers in summaries.
178
+ - Assemble complete multi-block, delta-only RPC streaming updates.
179
+ - Remove retired Smart BTW shortcut-capture and voice-helper exports.
180
+ - @howaboua/pi-smart-btw:
181
+ - Preserve Pi 0.84 credential-resolved endpoints and nullable auth headers in summaries.
182
+ - Assemble complete multi-block, delta-only RPC streaming updates.
183
+ - Remove retired Smart BTW shortcut-capture and voice-helper exports.
184
+ - @howaboua/pi-subagent-review:
185
+ - Preserve Pi 0.84 credential-resolved endpoints and nullable auth headers in summaries.
186
+ - Assemble complete multi-block, delta-only RPC streaming updates.
187
+ - Remove retired Smart BTW shortcut-capture and voice-helper exports.
188
+
189
+ - Updated dependencies [[`5657b77`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/5657b778f59ffa2eb86f10f7e949f060d95eb993)]:
190
+ - @howaboua/pi-auto-trees@0.1.12
191
+ - @howaboua/pi-gippity-control@0.0.7
192
+ - @howaboua/pi-smart-btw@0.2.6
193
+ - @howaboua/pi-subagent-review@0.2.15
194
+
195
+ ## 0.0.48
196
+
197
+ ### Changes
198
+
199
+ - Include bundled package updates:
200
+
201
+ - @howaboua/pi-gippity-control:
202
+ - Seed realtime voice with the selected session context model and reasoning level, using clean conversational summaries.
203
+ - Show the startup summary in a display-only Voice Context entry and preserve native Responses checkpoints without sharing the main cache lane.
204
+ - Guide spoken delegation lifecycle and restore normal interaction after exit or restart, including device handoff.
205
+ - Retain stopped-session transcript tails, keep muted calls alive, and show finalized spoken turns once without partial recognition.
206
+ - Route clean delegation envelopes with deduplicated history and map assistant messages to realtime commentary or speech at message boundaries.
207
+ - Display completed voice replies once and request delegation acknowledgement fillers.
208
+ - Tighten Code Mode, shell, session-resumption, Windows, prompt-path, and voice-context guidance.
209
+
210
+ - Updated dependencies [[`c42c408`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/c42c40800b53e23f6d3ef4d0af1f41e6179290a1)]:
211
+ - @howaboua/pi-gippity-control@0.0.6
212
+
213
+ ## 0.0.47
214
+
215
+ ### Changes
216
+
217
+ - Include bundled package updates:
218
+
219
+ - @howaboua/pi-gippity-control:
220
+ - Render voice and dictation cards immediately without adding them to model context.
221
+ - Carry conversation transcripts with actual delegations and preserve realtime audio cadence across coarse timers.
222
+ - Steer long Code Mode commands through exec/wait and report repeated native compaction usage.
223
+
224
+ - Updated dependencies [[`47bd29a`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/47bd29a9b89bb3e2a8d50d4a7b3d84e981d8a34c)]:
225
+ - @howaboua/pi-gippity-control@0.0.5
226
+
227
+ ## 0.0.46
228
+
229
+ ### Changes
230
+
231
+ - Include bundled package updates:
232
+
233
+ - @howaboua/pi-gippity-control:
234
+ - Make realtime voice more conversational with Codex voice, host-owned LAN WebRTC, device takeover, buffering, packet reordering, and loss concealment.
235
+ - Keep voice alive across Pi model changes and avoid unnecessary transport resets when saving settings.
236
+ - Ship prompt schemas as raw Markdown with agent-assisted migration.
237
+ - Reject incompatible voice helpers immediately and preserve LAN startup errors through cleanup.
238
+
239
+ - Updated dependencies [[`981e04a`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/981e04a6660e36131c81eb2cbaef105fcb94e5b0)]:
240
+ - @howaboua/pi-gippity-control@0.0.4
241
+
242
+ ## 0.0.45
243
+
244
+ ### Changes
245
+
246
+ - Include bundled package updates:
247
+
248
+ - @howaboua/pi-gippity-control:
249
+ - Add reconnect-safe realtime microphone mute controls and native input gating.
250
+ - @howaboua/pi-subagent-review:
251
+ - Replace the review subprocess transport with Pi's maintained RPC client, preserve failed-run diagnostics, prevent review-loop bookkeeping from creating empty summaries, and reissue guidance for each fresh review loop.
252
+
253
+ - Updated dependencies [[`05f2da3`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/05f2da3e7b540d30eaada94c527b6ecbef80f736), [`05f2da3`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/05f2da3e7b540d30eaada94c527b6ecbef80f736)]:
254
+ - @howaboua/pi-subagent-review@0.2.14
255
+ - @howaboua/pi-gippity-control@0.0.3
256
+
257
+ ## 0.0.44
258
+
259
+ ### Changes
260
+
261
+ - Include bundled package updates:
262
+
263
+ - @howaboua/pi-gippity-control:
264
+ - Add standalone GipPity voice and LAN control for any Pi model, including synchronized steering between active Pi and Realtime turns.
265
+ - Recover the browser when its upstream helper exits, serialize shutdown cleanup, support configured proxies on Node, and declare the required Node runtime.
266
+ - @howaboua/pi-dynamic-tools:
267
+ - Correct Herdr delivery failures to acknowledge that messages may already be queued.
268
+ - @howaboua/pi-codex-conversion-lite:
269
+ - Serve session-scoped Codex voice, editable dictation drafts, and Pi activity from the themed GipPity LAN remote with seamless audio takeover between devices.
270
+ - Add a configurable control-server shortcut and remove obsolete V2 conversation settings; realtime voice always uses V3 while dictation remains a separate action.
271
+ - Route Realtime delegations into active Pi turns as immediate steering and mirror direct Pi steering back to the owning voice delegation.
272
+ - Keep retries on WebSocket after mid-stream disconnects, route dictation through configured proxies on Node, recover the LAN remote when its upstream helper exits, and let cleared audio devices remain cleared.
273
+ - Preserve the active provider prompt during V2 compaction so prompt caches remain hot, pass V2 feature headers through prewarmed sockets, and reconcile tool calls with their outputs after every history rewrite.
274
+ - Refresh the disabled Herdr example and add a categorized lazy skill loader alongside the existing additive loader.
275
+ - Mark this as the final Lite release and show the remove-then-install migration commands on startup.
276
+
277
+ - Updated dependencies [[`dca7267`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/dca7267730098e7cfcdd068ae8f032008f2033d7)]:
278
+ - @howaboua/pi-dynamic-tools@0.0.8
279
+
280
+ ## 0.0.43
281
+
282
+ ### Changes
283
+
284
+ - Include bundled package updates:
285
+
286
+ - @howaboua/pi-codex-conversion-lite:
287
+ - Recover failed Codex WebSocket sessions through SSE until compaction restores cached sockets.
288
+ - Serialize patch mutations, retain partial patch errors, and accept model-style image paths.
289
+
290
+ ## 0.0.42
291
+
292
+ ### Changes
293
+
294
+ - Include bundled package updates:
295
+
296
+ - @howaboua/pi-codex-conversion-lite:
297
+ - Keep Codex WebSocket continuations alive through the backend cache window so delayed compaction can reuse the hot context.
298
+
299
+ ## 0.0.41
300
+
301
+ ### Changes
302
+
303
+ - Include bundled package updates:
304
+
305
+ - @howaboua/pi-codex-conversion-lite:
306
+ - Migrate legacy function-shaped exec history to native custom-tool IDs so existing Code Mode sessions resume across the tool-contract upgrade.
307
+
308
+ ## 0.0.40
309
+
310
+ ### Changes
311
+
312
+ - Include bundled package updates:
313
+
314
+ - @howaboua/pi-subagent-review:
315
+ - Use the configurable lightweight model for tree summaries.
316
+ - Clarify workflow, review-context, summary-session, and RPC protocol ownership.
317
+ - @howaboua/pi-auto-trees:
318
+ - Use the configurable lightweight model for tree summaries.
319
+ - Clarify workflow, review-context, summary-session, and RPC protocol ownership.
320
+ - @howaboua/pi-codex-conversion-lite:
321
+ - Clarify Code Mode tool exposure as configured tools change and limit `ALL_TOOLS` to deferred custom tools.
322
+ - Add an opt-in prompt overwrite that preserves chained extensions and refreshes cached transport state.
323
+ - Install the Code Mode host correctly under Bun and replay completed exec results with per-poll output caps.
324
+ - Keep selected extra tools in voice-only mode and support locally built Rust binaries.
325
+ - Preserve GPT-5.6 history to the compaction budget, report V2 cache usage, and identify Lite requests.
326
+
327
+ - Updated dependencies [[`18868c1`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/18868c1ba0257f7d6ddeeb7dfc51f3af467e4633)]:
328
+ - @howaboua/pi-auto-trees@0.1.11
329
+ - @howaboua/pi-subagent-review@0.2.13
330
+
331
+ ## 0.0.39
332
+
333
+ ### Changes
334
+
335
+ - Include bundled package updates:
336
+
337
+ - @howaboua/pi-codex-conversion-lite:
338
+ - Yield silent shell commands as sessions while active commands continue waiting.
339
+ - Encourage concise progress updates during longer realtime voice work.
340
+
341
+ ## 0.0.38
342
+
343
+ ### Changes
344
+
345
+ - Include bundled package updates:
346
+
347
+ - @howaboua/pi-auto-trees:
348
+ - Add /prime command with automatic settled-agent markers.
349
+
350
+ - Updated dependencies [[`bf58bdc`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/bf58bdce157ca9c3c7869b629ad148bd05a3a100)]:
351
+ - @howaboua/pi-auto-trees@0.1.10
352
+
353
+ ## 0.0.37
354
+
355
+ ### Changes
356
+
357
+ - Include bundled package updates:
358
+
359
+ - @howaboua/pi-codex-conversion-lite:
360
+ - Use bounded raw PTY output while preserving large pipe payloads and reporting omitted output in token counts.
361
+ - Clarify safe JavaScript quoting for multiline Code Mode commands.
362
+
363
+ ## 0.0.36
364
+
365
+ ### Changes
366
+
367
+ - Include bundled package updates:
368
+
369
+ - @howaboua/pi-codex-conversion-lite:
370
+ - Keep web_run requests isolated to explicit search and navigation arguments instead of leaking conversation context into search answers.
371
+
372
+ ## 0.0.35
373
+
374
+ ### Changes
375
+
376
+ - Include bundled package updates:
377
+
378
+ - @howaboua/pi-codex-conversion-lite:
379
+ - Prevent native dynamic imports from escaping Pi's loader aliases and verify every packed lazy module can load.
380
+
381
+ ## 0.0.34
382
+
383
+ ### Changes
384
+
385
+ - Include bundled package updates:
386
+
387
+ - @howaboua/pi-codex-conversion-lite:
388
+ - Make published Codex extension artifacts reuse Pi's provider streams and verify packed extensions load before release.
389
+
390
+ ## 0.0.33
391
+
392
+ ### Changes
393
+
394
+ - Include bundled package updates:
395
+
396
+ - @howaboua/pi-codex-conversion-lite:
397
+ - Add the Lite Codex adapter with structured Responses tools, GPT-5.6 Code Mode, routed settings, shared config, native helpers, compaction, and voice.
398
+ - Show active Code Mode executions immediately, keep foreground commands attached, and back off yielded shell sessions.
399
+ - Preserve transport policy, decode bounded terminal output, and install the Code Mode host in-process on Windows.
400
+ - Keep Lite out of aggregate bundles while preserving full-adapter config fields.
401
+
402
+ ## 0.0.32
403
+
404
+ ### Changes
405
+
406
+ - Include bundled package updates:
407
+
408
+ - @howaboua/pi-gpt-switcher:
409
+ - Add `/sol`, `/terra`, and `/luna` commands for switching GPT-5.6 Codex models and reasoning levels.
410
+
411
+ ## 0.0.31
412
+
413
+ ### Changes
414
+
415
+ - Include bundled package updates:
416
+
417
+ - @howaboua/pi-subagent-review:
418
+ - Reinjects the review advisory preface when compaction has removed the earlier preface from active session context.
419
+
420
+ - Updated dependencies [[`799a4b2`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/799a4b24e5b49a1020c95524209c01112625aa6b)]:
421
+ - @howaboua/pi-subagent-review@0.2.12
422
+
423
+ ## 0.0.30
424
+
425
+ ### Changes
426
+
427
+ - Include bundled package updates:
428
+
429
+ - @howaboua/pi-dynamic-tools:
430
+ - Preserve exec_command startup failures and recover confused process continuations.
431
+ - Avoid duplicate nested image rendering.
432
+ - Align Code Mode commands with forced yield times, project-local discovery, named configuration failures, and bundled examples.
433
+
434
+ - Updated dependencies [[`5fd1368`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/5fd13686f185d21782db8839ae0d798d32163874)]:
435
+ - @howaboua/pi-dynamic-tools@0.0.7
436
+
437
+ ## 0.0.29
438
+
439
+ ### Changes
440
+
441
+ - Include bundled package updates:
442
+
443
+ - @howaboua/pi-cache-hit-predictor:
444
+ - Show inline cache-hit predictions when switching models or reasoning lanes.
445
+ - Warn once that automatic reasoning changes can miss the prompt cache and affect costs or quotas.
446
+ - @howaboua/pi-auto-reasoning-tool:
447
+ - Show inline cache-hit predictions when switching models or reasoning lanes.
448
+ - Warn once that automatic reasoning changes can miss the prompt cache and affect costs or quotas.
449
+
450
+ - Updated dependencies [[`c95d68a`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/c95d68a21939860e4c6dcff9c58a6bf8a50044ff)]:
451
+ - @howaboua/pi-auto-reasoning-tool@0.1.11
452
+
453
+ ## 0.0.28
454
+
455
+ ### Changes
456
+
457
+ - Include bundled package updates:
458
+
459
+ - @howaboua/pi-subagent-review:
460
+ - Adds Pi 0.80.8 compatibility for Codex device login and review-session model runtime handling.
461
+ - @howaboua/pi-ask:
462
+ - Uses configured Pi keybindings for ask navigation and theme-native TUI colors.
463
+
464
+ - Updated dependencies [[`828f52e`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/828f52eff1291629d73c3058173cff2fa60e3b28), [`828f52e`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/828f52eff1291629d73c3058173cff2fa60e3b28)]:
465
+ - @howaboua/pi-subagent-review@0.2.11
466
+ - @howaboua/pi-ask@0.0.4
467
+
468
+ ## 0.0.27
469
+
470
+ ### Changes
471
+
472
+ - Include bundled package updates:
473
+
474
+ - @howaboua/pi-ask:
475
+ - Remove the duplicated ask tool name from the model-facing prompt inventory.
476
+
477
+ - Updated dependencies [[`9604ec3`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/9604ec3505eff2d9ee789f42ef45038bc00da02e)]:
478
+ - @howaboua/pi-ask@0.0.3
479
+
480
+ ## 0.0.26
481
+
482
+ ### Changes
483
+
484
+ - Include bundled package updates:
485
+
486
+ - @howaboua/pi-markdown-workflows:
487
+ - Make skill descriptions terse semantic indexes.
488
+ - Remove redundant purpose or job restatements.
489
+ - Distinguish operational from creative body language where applicable.
490
+
491
+ - Updated dependencies [[`8983df4`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/8983df436423fdc2933863611285946dd0319cf5)]:
492
+ - @howaboua/pi-markdown-workflows@0.2.20
493
+
494
+ ## 0.0.25
495
+
496
+ ### Changes
497
+
498
+ - Include bundled package updates:
499
+
500
+ - @howaboua/pi-ask:
501
+ - Report open ask panels as blocked to Herdr's Pi integration.
502
+
503
+ - Updated dependencies [[`8f82078`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/8f82078a8e733dbe770c7b5fd9ad1b20cd5a21af)]:
504
+ - @howaboua/pi-ask@0.0.2
505
+
506
+ ## 0.0.24
507
+
508
+ ### Changes
509
+
510
+ - Include bundled package updates:
511
+
512
+ - @howaboua/pi-ask:
513
+ - Add interactive human input, review triage, and handoff prompts through the `ask` tool, plus configurable `/fold` and `/grill` workflows.
514
+
515
+ - Updated dependencies [[`f516f97`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/f516f97c76ae27a354f80f85a5a34ecd56c4e9c4)]:
516
+ - @howaboua/pi-ask@0.0.1
517
+
518
+ ## 0.0.23
519
+
520
+ ### Changes
521
+
522
+ - Include bundled package updates:
523
+
524
+ - @howaboua/pi-markdown-workflows:
525
+ - Load nested AGENTS.md context from successful pi-codex Code Mode tool traces.
526
+ - @howaboua/pi-auto-reasoning-tool:
527
+ - Tighten the change_reasoning agent contract and clarify responses at the user's minimum.
528
+ - @howaboua/pi-auto-trees:
529
+ - Rewrite package documentation around current installation, configuration, usage, and behavior.
530
+ - @howaboua/pi-smart-btw:
531
+ - Rewrite package documentation around current installation, configuration, usage, and behavior.
532
+ - @howaboua/pi-subagent-review:
533
+ - Rewrite package documentation around current installation, configuration, usage, and behavior.
534
+ - @howaboua/pi-vent:
535
+ - Rewrite package documentation around current installation, configuration, usage, and behavior.
536
+ - @howaboua/pi-dynamic-tools:
537
+ - Rewrite package documentation around current installation, configuration, usage, and behavior.
538
+ - @howaboua/pi-memories:
539
+ - Rewrite package documentation around current installation, configuration, usage, and behavior.
540
+ - @howaboua/pi-explore-subagents:
541
+ - Rewrite package documentation around current installation, configuration, usage, and behavior.
542
+ - @howaboua/pi-semantic-grep:
543
+ - Rewrite package documentation around current installation, configuration, usage, and behavior.
544
+
545
+ - Updated dependencies [[`c423031`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/c4230312f24db0e49c95eafff959109d74017c3d), [`c423031`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/c4230312f24db0e49c95eafff959109d74017c3d), [`c423031`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/c4230312f24db0e49c95eafff959109d74017c3d)]:
546
+ - @howaboua/pi-markdown-workflows@0.2.19
547
+ - @howaboua/pi-auto-trees@0.1.9
548
+ - @howaboua/pi-dynamic-tools@0.0.6
549
+ - @howaboua/pi-explore-subagents@0.1.13
550
+ - @howaboua/pi-memories@0.1.4
551
+ - @howaboua/pi-semantic-grep@0.1.18
552
+ - @howaboua/pi-smart-btw@0.2.5
553
+ - @howaboua/pi-subagent-review@0.2.10
554
+ - @howaboua/pi-vent@0.2.10
555
+ - @howaboua/pi-auto-reasoning-tool@0.1.10
556
+
557
+ ## 0.0.22
558
+
559
+ ### Changes
560
+
561
+ - Include bundled package updates:
562
+
563
+ - @howaboua/pi-subagent-review:
564
+ - Uses Pi's compaction-aware active session entries when preparing review conversation summaries, preventing superseded history from overflowing the summary model.
565
+
566
+ - Updated dependencies [[`40ea35b`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/40ea35bbdb8c0437b57bd0dc7ddc41dbc21d2cf5)]:
567
+ - @howaboua/pi-subagent-review@0.2.9
568
+
569
+ ## 0.0.21
570
+
571
+ ### Changes
572
+
573
+ - Include bundled package updates:
574
+
575
+ - @howaboua/pi-markdown-workflows:
576
+ - Add a JSON `toolRegistration` setting that can hide the agent tool while keeping the rest of each extension active.
577
+ - @howaboua/pi-subagent-review:
578
+ - Add bundled promoted examples for subagents, vent logging, workflow creation, and semantic grep.
579
+ - Require each subagent to perform its assigned role without further delegation.
580
+ - @howaboua/pi-dynamic-tools:
581
+ - Add bundled promoted examples for subagents, vent logging, workflow creation, and semantic grep.
582
+ - Require each subagent to perform its assigned role without further delegation.
583
+ - @howaboua/pi-semantic-grep:
584
+ - Add a JSON `toolRegistration` setting that can hide the agent tool while keeping the rest of each extension active.
585
+
586
+ - Updated dependencies [[`68ceda7`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/68ceda7ee01203df93d181cd940dc1b64d93739d), [`68ceda7`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/68ceda7ee01203df93d181cd940dc1b64d93739d)]:
587
+ - @howaboua/pi-dynamic-tools@0.0.5
588
+ - @howaboua/pi-subagent-review@0.2.8
589
+ - @howaboua/pi-semantic-grep@0.1.17
590
+ - @howaboua/pi-markdown-workflows@0.2.18
591
+
592
+ ## 0.0.20
593
+
594
+ ### Changes
595
+
596
+ - Include bundled package updates:
597
+
598
+ - @howaboua/pi-dynamic-tools:
599
+ - Guide long-running cells away from frequent model-driven polling.
600
+
601
+ - Updated dependencies [[`3f6d93b`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/3f6d93b44a411ef75370f84069f35368e850ae17)]:
602
+ - @howaboua/pi-dynamic-tools@0.0.4
603
+
604
+ ## 0.0.19
605
+
606
+ ### Changes
607
+
608
+ - Include bundled package updates:
609
+
610
+ - @howaboua/pi-dynamic-tools:
611
+ - Require concise usage contracts for promoted and deferred dynamic tools.
612
+
613
+ - Updated dependencies [[`6c9509a`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/6c9509ac0f52fa6d5c59538dc763f8f61fd83e46)]:
614
+ - @howaboua/pi-dynamic-tools@0.0.3
615
+
616
+ ## 0.0.18
617
+
618
+ ### Changes
619
+
620
+ - Include bundled package updates:
621
+
622
+ - @howaboua/pi-dynamic-tools:
623
+ - Always register `exec` and `wait`, rediscover TOML definitions during live sessions, and avoid duplicate registration when loaded directly and through an aggregate package.
624
+
625
+ - Updated dependencies [[`c75e8ed`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/c75e8ed3696c4ba94b73ab91dfe9dfe3aea74c0f)]:
626
+ - @howaboua/pi-dynamic-tools@0.0.2
627
+
628
+ ## 0.0.17
629
+
630
+ ### Changes
631
+
632
+ - Include bundled package updates:
633
+
634
+ - @howaboua/pi-dynamic-tools:
635
+ - 0.0.1 initial release with TOML-defined dynamic tools, Codex code mode, and bundled `spawn_agent` and `port_info` examples.
636
+
637
+ ## 0.0.16
638
+
639
+ ### Changes
640
+
641
+ - Include bundled package updates:
642
+
643
+ - @howaboua/pi-smart-btw:
644
+ - Uses GPT-5.6 Luna for side-session questions by default.
645
+ - @howaboua/pi-subagent-review:
646
+ - Uses GPT-5.6 Sol for reviews and GPT-5.6 Luna for conversation summaries by default.
647
+ - @howaboua/pi-explore-subagents:
648
+ - Uses GPT-5.6 Luna for shallow discovery and GPT-5.6 Terra for deep discovery by default.
649
+
650
+ - Updated dependencies [[`dc0d253`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/dc0d25382e1b650e024cc235e23ea62117784e23), [`dc0d253`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/dc0d25382e1b650e024cc235e23ea62117784e23), [`dc0d253`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/dc0d25382e1b650e024cc235e23ea62117784e23)]:
651
+ - @howaboua/pi-explore-subagents@0.1.12
652
+ - @howaboua/pi-subagent-review@0.2.7
653
+ - @howaboua/pi-smart-btw@0.2.4
654
+
655
+ ## 0.0.15
656
+
657
+ ### Changes
658
+
659
+ - Include bundled package updates:
660
+
661
+ - @howaboua/pi-markdown-workflows:
662
+ - Pins compatibility checks to Pi 0.80.6 and verifies current session, TUI, tool, and file-mutation APIs.
663
+ - @howaboua/pi-auto-reasoning-tool:
664
+ - Preserves the user's reasoning floor through Pi 0.80.6 retries, compaction, and queued continuations while keeping autonomous choices capped at high.
665
+ - @howaboua/pi-auto-trees:
666
+ - Pins compatibility checks to Pi 0.80.6 and verifies current session, TUI, tool, and file-mutation APIs.
667
+ - @howaboua/pi-smart-btw:
668
+ - Persists display-only BTW results with Pi 0.80.6 entry renderers and waits for settled child runs without limiting active work time.
669
+ - @howaboua/pi-subagent-review:
670
+ - Runs review summaries through Pi's public session SDK and uses settled RPC completion with Pi 0.80.6 thinking levels.
671
+ - @howaboua/pi-vent:
672
+ - Pins compatibility checks to Pi 0.80.6 and verifies current session, TUI, tool, and file-mutation APIs.
673
+ - @howaboua/pi-memories:
674
+ - Runs memory distillation only when Pi quits and accepts the Pi 0.80.6 max thinking level.
675
+ - @howaboua/pi-explore-subagents:
676
+ - Use Pi 0.80.6 `agent_settled` completion.
677
+ - Accept maximum-thinking configurations.
678
+ - Keep active subagent work free of wall-clock limits.
679
+ - @howaboua/pi-semantic-grep:
680
+ - Compiles against Pi 0.80.6 extension and renderer types without local module shims and cleans up indexing state on shutdown.
681
+
682
+ - Updated dependencies [[`4be919f`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/4be919fea3c8ef6aba79f4a66907bc80d30908d4), [`4be919f`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/4be919fea3c8ef6aba79f4a66907bc80d30908d4), [`4be919f`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/4be919fea3c8ef6aba79f4a66907bc80d30908d4), [`4be919f`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/4be919fea3c8ef6aba79f4a66907bc80d30908d4), [`4be919f`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/4be919fea3c8ef6aba79f4a66907bc80d30908d4), [`4be919f`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/4be919fea3c8ef6aba79f4a66907bc80d30908d4), [`4be919f`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/4be919fea3c8ef6aba79f4a66907bc80d30908d4)]:
683
+ - @howaboua/pi-auto-reasoning-tool@0.1.9
684
+ - @howaboua/pi-explore-subagents@0.1.11
685
+ - @howaboua/pi-memories@0.1.3
686
+ - @howaboua/pi-semantic-grep@0.1.16
687
+ - @howaboua/pi-smart-btw@0.2.3
688
+ - @howaboua/pi-subagent-review@0.2.6
689
+ - @howaboua/pi-auto-trees@0.1.8
690
+ - @howaboua/pi-markdown-workflows@0.2.17
691
+ - @howaboua/pi-vent@0.2.9
692
+
693
+ ## 0.0.14
694
+
695
+ ### Changes
696
+
697
+ - Include bundled package updates:
698
+
699
+ - @howaboua/pi-markdown-workflows:
700
+ - Refine standalone and bundled skill-creation guidance.
701
+ - Harden the checker with Pi limits and supporting-file suggestions.
702
+
703
+ - Updated dependencies [[`ff8d5cf`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/ff8d5cf9412ec07fea8b613f0aadc906c6c398f9)]:
704
+ - @howaboua/pi-markdown-workflows@0.2.16
705
+
706
+ ## 0.0.13
707
+
708
+ ### Changes
709
+
710
+ - Include bundled package updates:
711
+
712
+ - @howaboua/pi-subagent-review:
713
+ - Fixes Pi 0.80 extension loading for review summary model calls.
714
+
715
+ - Updated dependencies [[`2a4371b`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/2a4371b67bcf69f5237152e087c6998b4810ab5a)]:
716
+ - @howaboua/pi-subagent-review@0.2.5
717
+
718
+ ## 0.0.12
719
+
720
+ ### Changes
721
+
722
+ - Include bundled package updates:
723
+
724
+ - @howaboua/pi-markdown-workflows:
725
+ - Updates Pi core package compatibility for Pi 0.80.1 and migrates summary model calls to the Pi 0.80 raw API entrypoints.
726
+ - @howaboua/pi-auto-reasoning-tool:
727
+ - Updates Pi core package compatibility for Pi 0.80.1 and migrates summary model calls to the Pi 0.80 raw API entrypoints.
728
+ - @howaboua/pi-auto-trees:
729
+ - Updates Pi core package compatibility for Pi 0.80.1 and migrates summary model calls to the Pi 0.80 raw API entrypoints.
730
+ - @howaboua/pi-smart-btw:
731
+ - Updates Pi core package compatibility for Pi 0.80.1 and migrates summary model calls to the Pi 0.80 raw API entrypoints.
732
+ - @howaboua/pi-subagent-review:
733
+ - Updates Pi core package compatibility for Pi 0.80.1 and migrates summary model calls to the Pi 0.80 raw API entrypoints.
734
+ - @howaboua/pi-vent:
735
+ - Updates Pi core package compatibility for Pi 0.80.1 and migrates summary model calls to the Pi 0.80 raw API entrypoints.
736
+ - @howaboua/pi-memories:
737
+ - Updates Pi core package compatibility for Pi 0.80.1 and migrates summary model calls to the Pi 0.80 raw API entrypoints.
738
+ - @howaboua/pi-explore-subagents:
739
+ - Updates Pi core package compatibility for Pi 0.80.1 and migrates summary model calls to the Pi 0.80 raw API entrypoints.
740
+ - @howaboua/pi-semantic-grep:
741
+ - Updates Pi core package compatibility for Pi 0.80.1 and migrates summary model calls to the Pi 0.80 raw API entrypoints.
742
+
743
+ - Updated dependencies [[`1a4302a`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/1a4302ad02a122480aeba29deacaa6f8925571ad)]:
744
+ - @howaboua/pi-auto-reasoning-tool@0.1.8
745
+ - @howaboua/pi-auto-trees@0.1.7
746
+ - @howaboua/pi-explore-subagents@0.1.10
747
+ - @howaboua/pi-markdown-workflows@0.2.15
748
+ - @howaboua/pi-memories@0.1.2
749
+ - @howaboua/pi-semantic-grep@0.1.15
750
+ - @howaboua/pi-smart-btw@0.2.2
751
+ - @howaboua/pi-subagent-review@0.2.4
752
+ - @howaboua/pi-vent@0.2.8
753
+
754
+ ## 0.0.11
755
+
756
+ ### Changes
757
+
758
+ - Include bundled package updates:
759
+
760
+ - @howaboua/pi-semantic-grep:
761
+ - Streams semantic search rows from SQLite and keeps only the best matches in memory, avoiding heap exhaustion on large indexes.
762
+
763
+ - Updated dependencies [[`f0aeb2a`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/f0aeb2ae53397a4adfd084911a8ef201dcf5d89e)]:
764
+ - @howaboua/pi-semantic-grep@0.1.14
765
+
766
+ ## 0.0.10
767
+
768
+ ### Changes
769
+
770
+ - Include bundled package updates:
771
+
772
+ - @howaboua/pi-subagent-review:
773
+ - Bump Pi peer and runtime dependencies to 0.79.0.
774
+ - Treat isolated review findings as advisory input, not automatic implementation work.
775
+ - @howaboua/pi-markdown-workflows:
776
+ - Bump Pi peer and runtime dependencies to 0.79.0.
777
+ - Treat isolated review findings as advisory input, not automatic implementation work.
778
+ - @howaboua/pi-auto-trees:
779
+ - Bump Pi peer and runtime dependencies to 0.79.0.
780
+ - Treat isolated review findings as advisory input, not automatic implementation work.
781
+ - @howaboua/pi-semantic-grep:
782
+ - Bump Pi peer and runtime dependencies to 0.79.0.
783
+ - Treat isolated review findings as advisory input, not automatic implementation work.
784
+ - @howaboua/pi-vent:
785
+ - Bump Pi peer and runtime dependencies to 0.79.0.
786
+ - Treat isolated review findings as advisory input, not automatic implementation work.
787
+ - @howaboua/pi-smart-btw:
788
+ - Bump Pi peer and runtime dependencies to 0.79.0.
789
+ - Treat isolated review findings as advisory input, not automatic implementation work.
790
+ - @howaboua/pi-explore-subagents:
791
+ - Bump Pi peer and runtime dependencies to 0.79.0.
792
+ - Treat isolated review findings as advisory input, not automatic implementation work.
793
+ - @howaboua/pi-auto-reasoning-tool:
794
+ - Bump Pi peer and runtime dependencies to 0.79.0.
795
+ - Treat isolated review findings as advisory input, not automatic implementation work.
796
+
797
+ - Updated dependencies [[`f380d72`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/f380d721c2fbd9956d730cae456aa7f38e4f0546)]:
798
+ - @howaboua/pi-auto-reasoning-tool@0.1.7
799
+ - @howaboua/pi-auto-trees@0.1.6
800
+ - @howaboua/pi-explore-subagents@0.1.9
801
+ - @howaboua/pi-markdown-workflows@0.2.14
802
+ - @howaboua/pi-semantic-grep@0.1.13
803
+ - @howaboua/pi-smart-btw@0.2.1
804
+ - @howaboua/pi-subagent-review@0.2.3
805
+ - @howaboua/pi-vent@0.2.7
806
+
807
+ ## 0.0.9
808
+
809
+ ### Changes
810
+
811
+ - Include bundled package updates:
812
+
813
+ - @howaboua/pi-markdown-workflows:
814
+ - Teach skill creation to quote frontmatter descriptions and make the efficiency checker flag unsafe unquoted YAML scalars with line and caret output.
815
+
816
+ - Updated dependencies [[`2f03bc0`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/2f03bc04bfac5d7c41db7d3f53280baefa3a5ccc)]:
817
+ - @howaboua/pi-markdown-workflows@0.2.13
818
+
819
+ ## 0.0.8
820
+
821
+ ### Changes
822
+
823
+ - Include bundled package updates:
824
+
825
+ - @howaboua/pi-explore-subagents:
826
+ - Persist only minimal explore subagent result metadata in parent sessions instead of the child subagent transcript.
827
+
828
+ - Updated dependencies [[`f852b3d`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/f852b3d94d3d7551e59f1dfa323d9978383b68d1)]:
829
+ - @howaboua/pi-explore-subagents@0.1.8
830
+
831
+ ## 0.0.7
832
+
833
+ ### Changes
834
+
835
+ - Include bundled package updates:
836
+
837
+ - @howaboua/pi-auto-reasoning-tool:
838
+ - Restore reasoning to the current agent turn's starting level instead of reusing the first level captured after extension load.
839
+
840
+ - Updated dependencies [[`008e017`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/008e01742bad5d743d23f6f445d8defb04610ee3)]:
841
+ - @howaboua/pi-auto-reasoning-tool@0.1.6
842
+
843
+ ## 0.0.6
844
+
845
+ ### Changes
846
+
847
+ - Include bundled package updates:
848
+
849
+ - @howaboua/pi-subagent-review:
850
+ - Keep the review-loop advisory preface in history during summarization.
851
+ - Send review findings as custom review messages on every path.
852
+ - Harden Smart BTW slot bounds and answer handling.
853
+ - Improve subdirectory context discovery from shell output.
854
+ - Remove the missing file from the skills aggregate manifest.
855
+ - @howaboua/pi-markdown-workflows:
856
+ - Keep the review-loop advisory preface in history during summarization.
857
+ - Send review findings as custom review messages on every path.
858
+ - Harden Smart BTW slot bounds and answer handling.
859
+ - Improve subdirectory context discovery from shell output.
860
+ - Remove the missing file from the skills aggregate manifest.
861
+ - @howaboua/pi-smart-btw:
862
+ - Multi-slot BTW sessions with JSONL restore, tombstones, inject-and-clear, and configurable alt shortcuts.
863
+
864
+ - Updated dependencies [[`cf0ca88`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/cf0ca88feee5175cebda37043b0a0bfb5ad913d2), [`cf0ca88`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/cf0ca88feee5175cebda37043b0a0bfb5ad913d2)]:
865
+ - @howaboua/pi-subagent-review@0.2.2
866
+ - @howaboua/pi-smart-btw@0.2.0
867
+ - @howaboua/pi-markdown-workflows@0.2.12
868
+
869
+ ## 0.0.5
870
+
871
+ ### Changes
872
+
873
+ - [#19](https://github.com/IgorWarzocha/howaboua-pi-stuff/pull/19) [`d312d81`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/d312d81f82e24645f7cc59f4b6ead1834afd19f9) Thanks [@IgorWarzocha](https://github.com/IgorWarzocha)!:
874
+
875
+ - Load aggregate extension entries through package-local shims so dependency resolution prefers the aggregate package's own installed dependency versions.
876
+
877
+ - Updated dependencies [[`d312d81`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/d312d81f82e24645f7cc59f4b6ead1834afd19f9), [`d312d81`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/d312d81f82e24645f7cc59f4b6ead1834afd19f9), [`d312d81`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/d312d81f82e24645f7cc59f4b6ead1834afd19f9)]:
878
+ - @howaboua/pi-markdown-workflows@0.2.11
879
+ - @howaboua/pi-auto-trees@0.1.5
880
+ - @howaboua/pi-explore-subagents@0.1.7
881
+ - @howaboua/pi-memories@0.1.1
882
+ - @howaboua/pi-semantic-grep@0.1.12
883
+ - @howaboua/pi-smart-btw@0.1.3
884
+ - @howaboua/pi-subagent-review@0.2.1
885
+ - @howaboua/pi-vent@0.2.6
886
+
887
+ ## 0.0.4
888
+
889
+ ### Changes
890
+
891
+ - Include bundled package updates:
892
+
893
+ - @howaboua/pi-subagent-review:
894
+ - Add `/review loop` markers that summarize completed review-fix increments before the next review pass.
895
+
896
+ - Updated dependencies [[`26d4e8b`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/26d4e8b89fb050463bf5cf3486ba1fa0ba84d8b3)]:
897
+ - @howaboua/pi-subagent-review@0.2.0
898
+
899
+ ## 0.0.3
900
+
901
+ ### Changes
902
+
903
+ - `@howaboua/pi-explore-subagents` now stores configuration in the user agent directory and migrates existing package-local config on first use.
904
+ - `@howaboua/pi-auto-trees` now shows temporary `/end` progress feedback while summarising back to the marker.
905
+
906
+ ### Updated bundled packages
907
+
908
+ - `@howaboua/pi-explore-subagents@0.1.6`
909
+ - `@howaboua/pi-auto-trees@0.1.4`
910
+
911
+ ## 0.0.2
912
+
913
+ ### Changes
914
+
915
+ - [#6](https://github.com/IgorWarzocha/howaboua-pi-stuff/pull/6) [`e793612`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/e793612fb32a4f7e418f5d28772e6de75a5c26ad) Thanks [@IgorWarzocha](https://github.com/IgorWarzocha)!:
916
+ - Fix aggregate package resource paths so Pi can load installed dependency extensions and skills.
917
+
918
+ ## 0.0.1
919
+
920
+ ### Changes
921
+
922
+ - [`3c8c222`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/3c8c2222bb8d907a85517dd2155f8ea77d2441fb) Thanks [@IgorWarzocha](https://github.com/IgorWarzocha)!:
923
+
924
+ - Initial public release from the Howaboua Pi Stuff monorepo.
925
+
926
+ - Updated dependencies [[`3c8c222`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/3c8c2222bb8d907a85517dd2155f8ea77d2441fb), [`d57f0cb`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/d57f0cbb5b92ce5cb7cf4736b6012c5ff0bebaae), [`9a7890b`](https://github.com/IgorWarzocha/howaboua-pi-stuff/commit/9a7890b63c7a9fb5be8ab2bdd16c41e78017a5b9)]:
927
+ - @howaboua/pi-memories@0.1.0
928
+ - @howaboua/pi-explore-subagents@0.1.5
929
+ - @howaboua/pi-markdown-workflows@0.2.10
930
+ - @howaboua/pi-semantic-grep@0.1.11
931
+ - @howaboua/pi-smart-btw@0.1.2
932
+ - @howaboua/pi-subagent-review@0.1.53
933
+ - @howaboua/pi-vent@0.2.5
package/changelog.ts ADDED
@@ -0,0 +1,327 @@
1
+ // Generated extension packages copy this file during changelog:extensions.
2
+
3
+ import { randomUUID } from "node:crypto";
4
+ import { readFileSync } from "node:fs";
5
+ import { mkdir, readFile, rename, rm, stat, writeFile } from "node:fs/promises";
6
+ import { dirname, join } from "node:path";
7
+ import { fileURLToPath } from "node:url";
8
+ import {
9
+ DynamicBorder,
10
+ type ExtensionAPI,
11
+ getAgentDir,
12
+ getMarkdownTheme,
13
+ } from "@earendil-works/pi-coding-agent";
14
+ import { Container, Markdown, Spacer, Text } from "@earendil-works/pi-tui";
15
+
16
+ const ENTRY_TYPE = "@howaboua/pi-stuff/changelog";
17
+ const REGISTRATION_CHANNEL = "@howaboua/pi-stuff/changelog/register/v1";
18
+ const STATE_FILENAME = "howaboua-pi-stuff-changelog.json";
19
+ const SUPPRESS_KEY = "suppress";
20
+ const LOCK_STALE_MS = 30_000;
21
+ const LOCK_TIMEOUT_MS = 2_000;
22
+
23
+ interface PackageMetadata {
24
+ name: string;
25
+ version: string;
26
+ }
27
+
28
+ interface PackageRegistration extends PackageMetadata {
29
+ changelogPath: string;
30
+ }
31
+
32
+ interface RegistrationEvent {
33
+ accept: () => void;
34
+ registration: PackageRegistration;
35
+ }
36
+
37
+ interface ChangelogEntry {
38
+ content: string;
39
+ version: string;
40
+ }
41
+
42
+ interface ChangelogEntryData {
43
+ markdown: string;
44
+ }
45
+
46
+ type ChangelogState = Record<string, boolean | string>;
47
+
48
+ function packageRegistration(): PackageRegistration {
49
+ const packageDirectory = fileURLToPath(new URL(".", import.meta.url));
50
+ const metadata = JSON.parse(
51
+ readFileSync(join(packageDirectory, "package.json"), "utf8"),
52
+ ) as Partial<PackageMetadata>;
53
+ if (typeof metadata.name !== "string" || typeof metadata.version !== "string")
54
+ throw new Error(`Invalid package metadata in ${packageDirectory}`);
55
+ return {
56
+ name: metadata.name,
57
+ version: metadata.version,
58
+ changelogPath: join(packageDirectory, "CHANGELOG.md"),
59
+ };
60
+ }
61
+
62
+ function isRegistrationEvent(value: unknown): value is RegistrationEvent {
63
+ if (!value || typeof value !== "object") return false;
64
+ const event = value as Partial<RegistrationEvent>;
65
+ return (
66
+ typeof event.accept === "function" &&
67
+ typeof event.registration?.name === "string" &&
68
+ typeof event.registration.version === "string" &&
69
+ typeof event.registration.changelogPath === "string"
70
+ );
71
+ }
72
+
73
+ function parseChangelog(markdown: string): ChangelogEntry[] {
74
+ const entries: ChangelogEntry[] = [];
75
+ let currentLines: string[] = [];
76
+ let currentVersion: string | undefined;
77
+
78
+ for (const line of markdown.split("\n")) {
79
+ const version = line.match(/^##\s+\[?(\d+\.\d+\.\d+)\]?(?:\s.*)?$/)?.[1];
80
+ if (version) {
81
+ if (currentVersion)
82
+ entries.push({
83
+ content: currentLines.join("\n").trim(),
84
+ version: currentVersion,
85
+ });
86
+ currentVersion = version;
87
+ currentLines = [line];
88
+ } else if (currentVersion) {
89
+ currentLines.push(line);
90
+ }
91
+ }
92
+
93
+ if (currentVersion)
94
+ entries.push({
95
+ content: currentLines.join("\n").trim(),
96
+ version: currentVersion,
97
+ });
98
+ return entries;
99
+ }
100
+
101
+ function compareVersions(left: string, right: string): number {
102
+ const leftParts = left.split(".").map(Number);
103
+ const rightParts = right.split(".").map(Number);
104
+ for (let index = 0; index < 3; index++) {
105
+ const difference = (leftParts[index] ?? 0) - (rightParts[index] ?? 0);
106
+ if (difference !== 0) return difference;
107
+ }
108
+ return 0;
109
+ }
110
+
111
+ function isStableVersion(version: string): boolean {
112
+ return /^\d+\.\d+\.\d+$/.test(version);
113
+ }
114
+
115
+ function statePath(): string {
116
+ return join(getAgentDir(), STATE_FILENAME);
117
+ }
118
+
119
+ async function readState(path: string): Promise<ChangelogState> {
120
+ let text: string;
121
+ try {
122
+ text = await readFile(path, "utf8");
123
+ } catch (error) {
124
+ if ((error as NodeJS.ErrnoException).code === "ENOENT") return {};
125
+ throw error;
126
+ }
127
+ const parsed = JSON.parse(text) as unknown;
128
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
129
+ throw new Error(`${path} must contain a JSON object`);
130
+ for (const [name, value] of Object.entries(parsed)) {
131
+ if (name === SUPPRESS_KEY) {
132
+ if (typeof value !== "boolean")
133
+ throw new Error(`${path} ${SUPPRESS_KEY} must be a boolean`);
134
+ } else if (typeof value !== "string") {
135
+ throw new Error(`${path} version for ${name} must be a string`);
136
+ }
137
+ }
138
+ return parsed as ChangelogState;
139
+ }
140
+
141
+ async function acquireLock(path: string): Promise<() => Promise<void>> {
142
+ const deadline = Date.now() + LOCK_TIMEOUT_MS;
143
+ while (true) {
144
+ try {
145
+ await mkdir(path);
146
+ return () => rm(path, { force: true, recursive: true });
147
+ } catch (error) {
148
+ if ((error as NodeJS.ErrnoException).code !== "EEXIST") throw error;
149
+ const info = await stat(path).catch(() => undefined);
150
+ if (info && Date.now() - info.mtimeMs > LOCK_STALE_MS) {
151
+ await rm(path, { force: true, recursive: true });
152
+ continue;
153
+ }
154
+ if (Date.now() >= deadline)
155
+ throw new Error(`Timed out waiting for ${path}`);
156
+ await new Promise((resolve) => setTimeout(resolve, 20));
157
+ }
158
+ }
159
+ }
160
+
161
+ async function writeState(path: string, state: ChangelogState): Promise<void> {
162
+ await mkdir(dirname(path), { mode: 0o700, recursive: true });
163
+ const temporaryPath = `${path}.${process.pid}.${randomUUID()}.tmp`;
164
+ try {
165
+ const ordered = Object.fromEntries(
166
+ Object.entries(state).sort(([left], [right]) =>
167
+ left.localeCompare(right),
168
+ ),
169
+ );
170
+ await writeFile(temporaryPath, `${JSON.stringify(ordered, null, 2)}\n`, {
171
+ encoding: "utf8",
172
+ mode: 0o600,
173
+ });
174
+ await rename(temporaryPath, path);
175
+ } catch (error) {
176
+ await rm(temporaryPath, { force: true });
177
+ throw error;
178
+ }
179
+ }
180
+
181
+ function packageMarkdown(
182
+ registration: PackageRegistration,
183
+ entries: ChangelogEntry[],
184
+ ): string {
185
+ return [
186
+ `## ${registration.name}`,
187
+ ...entries.map((entry) => entry.content.replace(/^##\s+/, "### ")),
188
+ ].join("\n\n");
189
+ }
190
+
191
+ async function claimUpdates(
192
+ registrations: Iterable<PackageRegistration>,
193
+ ): Promise<{ errors: string[]; markdown?: string }> {
194
+ const stableRegistrations = [...registrations]
195
+ .filter((registration) => isStableVersion(registration.version))
196
+ .sort((left, right) => left.name.localeCompare(right.name));
197
+ if (stableRegistrations.length === 0) return { errors: [] };
198
+ const path = statePath();
199
+ await mkdir(dirname(path), { mode: 0o700, recursive: true });
200
+ const release = await acquireLock(`${path}.lock`);
201
+ try {
202
+ const state = await readState(path);
203
+ const errors: string[] = [];
204
+ const sections: string[] = [];
205
+ let changed = false;
206
+ if (state[SUPPRESS_KEY] === true) {
207
+ for (const registration of stableRegistrations) {
208
+ const seenVersion = state[registration.name];
209
+ if (
210
+ typeof seenVersion !== "string" ||
211
+ compareVersions(registration.version, seenVersion) > 0
212
+ ) {
213
+ state[registration.name] = registration.version;
214
+ changed = true;
215
+ }
216
+ }
217
+ if (changed) await writeState(path, state);
218
+ return { errors };
219
+ }
220
+ for (const registration of stableRegistrations) {
221
+ const seenVersion = state[registration.name];
222
+ if (
223
+ typeof seenVersion === "string" &&
224
+ compareVersions(registration.version, seenVersion) <= 0
225
+ )
226
+ continue;
227
+ try {
228
+ const entries = parseChangelog(
229
+ await readFile(registration.changelogPath, "utf8"),
230
+ ).filter(
231
+ (entry) =>
232
+ compareVersions(entry.version, registration.version) <= 0 &&
233
+ (typeof seenVersion === "string"
234
+ ? compareVersions(entry.version, seenVersion) > 0
235
+ : entry.version === registration.version),
236
+ );
237
+ if (entries.length === 0) {
238
+ errors.push(
239
+ `No ${registration.version} changelog entry found for ${registration.name}`,
240
+ );
241
+ continue;
242
+ }
243
+ sections.push(packageMarkdown(registration, entries));
244
+ state[registration.name] = registration.version;
245
+ changed = true;
246
+ } catch (error) {
247
+ errors.push(
248
+ `Could not read the ${registration.name} changelog: ${error instanceof Error ? error.message : String(error)}`,
249
+ );
250
+ }
251
+ }
252
+ if (changed) await writeState(path, state);
253
+ return {
254
+ errors,
255
+ ...(sections.length > 0 ? { markdown: sections.join("\n\n") } : {}),
256
+ };
257
+ } finally {
258
+ await release();
259
+ }
260
+ }
261
+
262
+ function registerCoordinator(
263
+ pi: ExtensionAPI,
264
+ registration: PackageRegistration,
265
+ ): void {
266
+ let accepted = false;
267
+ pi.events.emit(REGISTRATION_CHANNEL, {
268
+ registration,
269
+ accept: () => {
270
+ accepted = true;
271
+ },
272
+ } satisfies RegistrationEvent);
273
+ if (accepted) return;
274
+
275
+ const registrations = new Map([[registration.name, registration]]);
276
+ pi.events.on(REGISTRATION_CHANNEL, (value) => {
277
+ if (!isRegistrationEvent(value)) return;
278
+ registrations.set(value.registration.name, value.registration);
279
+ value.accept();
280
+ });
281
+ pi.registerEntryRenderer<ChangelogEntryData>(
282
+ ENTRY_TYPE,
283
+ (entry, _options, theme) => {
284
+ if (!entry.data) return undefined;
285
+ const container = new Container();
286
+ container.addChild(new DynamicBorder());
287
+ container.addChild(
288
+ new Text(theme.bold(theme.fg("accent", "What's New")), 1, 0),
289
+ );
290
+ container.addChild(new Spacer(1));
291
+ container.addChild(
292
+ new Markdown(entry.data.markdown.trim(), 1, 0, getMarkdownTheme()),
293
+ );
294
+ container.addChild(new Spacer(1));
295
+ container.addChild(new DynamicBorder());
296
+ return container;
297
+ },
298
+ );
299
+ pi.on("session_start", async (event, ctx) => {
300
+ if (event.reason === "reload" || ctx.mode !== "tui") return;
301
+ if (
302
+ ctx.sessionManager
303
+ .getEntries()
304
+ .some((entry) =>
305
+ ["branch_summary", "compaction", "message"].includes(entry.type),
306
+ )
307
+ )
308
+ return;
309
+ try {
310
+ const update = await claimUpdates(registrations.values());
311
+ if (update.markdown)
312
+ pi.appendEntry<ChangelogEntryData>(ENTRY_TYPE, {
313
+ markdown: update.markdown,
314
+ });
315
+ for (const error of update.errors) ctx.ui.notify(error, "warning");
316
+ } catch (error) {
317
+ ctx.ui.notify(
318
+ `Could not update Howaboua changelog state: ${error instanceof Error ? error.message : String(error)}`,
319
+ "warning",
320
+ );
321
+ }
322
+ });
323
+ }
324
+
325
+ export default function howabouaPackageChangelog(pi: ExtensionAPI): void {
326
+ registerCoordinator(pi, packageRegistration());
327
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@howaboua/pi-extensions",
3
- "version": "0.0.58",
3
+ "version": "0.0.59",
4
4
  "description": "all Howaboua Pi extensions",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -26,17 +26,20 @@
26
26
  "@howaboua/pi-semantic-grep": "0.1.19",
27
27
  "@howaboua/pi-shepherdr": "0.1.2",
28
28
  "@howaboua/pi-smart-btw": "0.2.6",
29
- "@howaboua/pi-subagent-review": "0.2.16",
29
+ "@howaboua/pi-subagent-review": "0.2.17",
30
30
  "@howaboua/pi-unicode-charts": "0.1.0",
31
31
  "@howaboua/pi-vent": "0.2.10"
32
32
  },
33
33
  "files": [
34
34
  "README.md",
35
35
  "LICENSE",
36
- "index.ts"
36
+ "index.ts",
37
+ "CHANGELOG.md",
38
+ "changelog.ts"
37
39
  ],
38
40
  "pi": {
39
41
  "extensions": [
42
+ "./changelog.ts",
40
43
  "./index.ts"
41
44
  ]
42
45
  },
@@ -53,7 +56,8 @@
53
56
  "prepack": "bun run ../../scripts/prepare-aggregate-package.mjs"
54
57
  },
55
58
  "peerDependencies": {
56
- "@earendil-works/pi-coding-agent": "*"
59
+ "@earendil-works/pi-coding-agent": "*",
60
+ "@earendil-works/pi-tui": "*"
57
61
  },
58
62
  "devDependencies": {
59
63
  "@earendil-works/pi-coding-agent": "0.82.0"