@herbertgao/pi-extensions 2026.8.3 → 2026.8.4

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 (122) hide show
  1. package/README.md +41 -0
  2. package/examples/pi-footer.json +275 -0
  3. package/node_modules/pi-footer/CHANGELOG.md +145 -0
  4. package/node_modules/pi-footer/LICENSE +21 -0
  5. package/node_modules/pi-footer/README.md +354 -0
  6. package/node_modules/pi-footer/package.json +68 -0
  7. package/node_modules/pi-footer/src/cache.ts +106 -0
  8. package/node_modules/pi-footer/src/colors.ts +237 -0
  9. package/node_modules/pi-footer/src/config.ts +202 -0
  10. package/node_modules/pi-footer/src/event-widgets.ts +41 -0
  11. package/node_modules/pi-footer/src/extension-statuses.ts +102 -0
  12. package/node_modules/pi-footer/src/git.ts +135 -0
  13. package/node_modules/pi-footer/src/index.ts +268 -0
  14. package/node_modules/pi-footer/src/metrics.ts +141 -0
  15. package/node_modules/pi-footer/src/presets.ts +383 -0
  16. package/node_modules/pi-footer/src/render.ts +114 -0
  17. package/node_modules/pi-footer/src/separators.ts +52 -0
  18. package/node_modules/pi-footer/src/types.ts +122 -0
  19. package/node_modules/pi-footer/src/ui/color-level-confirm.ts +22 -0
  20. package/node_modules/pi-footer/src/ui/color-options.ts +195 -0
  21. package/node_modules/pi-footer/src/ui/config-lifecycle.ts +61 -0
  22. package/node_modules/pi-footer/src/ui/edit-colors.ts +13 -0
  23. package/node_modules/pi-footer/src/ui/events.ts +35 -0
  24. package/node_modules/pi-footer/src/ui/extension-status-picker.ts +60 -0
  25. package/node_modules/pi-footer/src/ui/extension-statuses.ts +73 -0
  26. package/node_modules/pi-footer/src/ui/fields.ts +252 -0
  27. package/node_modules/pi-footer/src/ui/global-menu.ts +126 -0
  28. package/node_modules/pi-footer/src/ui/helpers.ts +44 -0
  29. package/node_modules/pi-footer/src/ui/layout.ts +17 -0
  30. package/node_modules/pi-footer/src/ui/line-list.ts +19 -0
  31. package/node_modules/pi-footer/src/ui/model.ts +64 -0
  32. package/node_modules/pi-footer/src/ui/navigation.ts +29 -0
  33. package/node_modules/pi-footer/src/ui/option-edit.ts +93 -0
  34. package/node_modules/pi-footer/src/ui/overlay-render.ts +103 -0
  35. package/node_modules/pi-footer/src/ui/screen-context.ts +18 -0
  36. package/node_modules/pi-footer/src/ui/screen-controller.ts +27 -0
  37. package/node_modules/pi-footer/src/ui/screen-render.ts +32 -0
  38. package/node_modules/pi-footer/src/ui/screen-state.ts +20 -0
  39. package/node_modules/pi-footer/src/ui/screen.ts +243 -0
  40. package/node_modules/pi-footer/src/ui/screens/add-widget.ts +92 -0
  41. package/node_modules/pi-footer/src/ui/screens/confirm-exit.ts +52 -0
  42. package/node_modules/pi-footer/src/ui/screens/controller.ts +12 -0
  43. package/node_modules/pi-footer/src/ui/screens/edit-colors.ts +68 -0
  44. package/node_modules/pi-footer/src/ui/screens/edit-widget.ts +115 -0
  45. package/node_modules/pi-footer/src/ui/screens/extension-status-row.ts +61 -0
  46. package/node_modules/pi-footer/src/ui/screens/global.ts +75 -0
  47. package/node_modules/pi-footer/src/ui/screens/line-list.ts +108 -0
  48. package/node_modules/pi-footer/src/ui/screens/main.ts +99 -0
  49. package/node_modules/pi-footer/src/ui/screens/terminal.ts +121 -0
  50. package/node_modules/pi-footer/src/ui/screens/widget-list.ts +154 -0
  51. package/node_modules/pi-footer/src/ui/terminal-menu.ts +32 -0
  52. package/node_modules/pi-footer/src/ui/theme.ts +48 -0
  53. package/node_modules/pi-footer/src/ui/title-bar.ts +100 -0
  54. package/node_modules/pi-footer/src/ui/widget-actions.ts +76 -0
  55. package/node_modules/pi-footer/src/ui.ts +66 -0
  56. package/node_modules/pi-footer/src/widgets/context.ts +28 -0
  57. package/node_modules/pi-footer/src/widgets/core/active-tools.ts +17 -0
  58. package/node_modules/pi-footer/src/widgets/core/context-window.ts +24 -0
  59. package/node_modules/pi-footer/src/widgets/core/cwd-basename.ts +19 -0
  60. package/node_modules/pi-footer/src/widgets/core/cwd.ts +108 -0
  61. package/node_modules/pi-footer/src/widgets/core/event.ts +34 -0
  62. package/node_modules/pi-footer/src/widgets/core/external-status.ts +102 -0
  63. package/node_modules/pi-footer/src/widgets/core/model-provider.ts +20 -0
  64. package/node_modules/pi-footer/src/widgets/core/model.ts +35 -0
  65. package/node_modules/pi-footer/src/widgets/core/provider.ts +17 -0
  66. package/node_modules/pi-footer/src/widgets/core/session-name.ts +17 -0
  67. package/node_modules/pi-footer/src/widgets/core/text-verbosity.ts +17 -0
  68. package/node_modules/pi-footer/src/widgets/core/thinking-level.ts +17 -0
  69. package/node_modules/pi-footer/src/widgets/git/ahead-behind.ts +17 -0
  70. package/node_modules/pi-footer/src/widgets/git/branch.ts +81 -0
  71. package/node_modules/pi-footer/src/widgets/git/clean.ts +19 -0
  72. package/node_modules/pi-footer/src/widgets/git/deletions.ts +17 -0
  73. package/node_modules/pi-footer/src/widgets/git/diff.ts +38 -0
  74. package/node_modules/pi-footer/src/widgets/git/insertions.ts +17 -0
  75. package/node_modules/pi-footer/src/widgets/git/remote.ts +17 -0
  76. package/node_modules/pi-footer/src/widgets/git/root.ts +17 -0
  77. package/node_modules/pi-footer/src/widgets/git/sha.ts +17 -0
  78. package/node_modules/pi-footer/src/widgets/git/staged.ts +17 -0
  79. package/node_modules/pi-footer/src/widgets/git/status.ts +19 -0
  80. package/node_modules/pi-footer/src/widgets/git/unstaged.ts +17 -0
  81. package/node_modules/pi-footer/src/widgets/git/untracked.ts +17 -0
  82. package/node_modules/pi-footer/src/widgets/instance.ts +118 -0
  83. package/node_modules/pi-footer/src/widgets/layout/custom-text.ts +18 -0
  84. package/node_modules/pi-footer/src/widgets/layout/flex-separator.ts +32 -0
  85. package/node_modules/pi-footer/src/widgets/layout/separator.ts +57 -0
  86. package/node_modules/pi-footer/src/widgets/layout/spacer.ts +31 -0
  87. package/node_modules/pi-footer/src/widgets/options.ts +122 -0
  88. package/node_modules/pi-footer/src/widgets/project/runtime.ts +361 -0
  89. package/node_modules/pi-footer/src/widgets/registry.ts +223 -0
  90. package/node_modules/pi-footer/src/widgets/session/assistant-messages.ts +17 -0
  91. package/node_modules/pi-footer/src/widgets/session/compactions.ts +17 -0
  92. package/node_modules/pi-footer/src/widgets/session/elapsed.ts +18 -0
  93. package/node_modules/pi-footer/src/widgets/session/last-activity.ts +18 -0
  94. package/node_modules/pi-footer/src/widgets/session/messages.ts +19 -0
  95. package/node_modules/pi-footer/src/widgets/session/session-id.ts +17 -0
  96. package/node_modules/pi-footer/src/widgets/session/session-start.ts +18 -0
  97. package/node_modules/pi-footer/src/widgets/session/tool-results.ts +17 -0
  98. package/node_modules/pi-footer/src/widgets/session/total-messages.ts +19 -0
  99. package/node_modules/pi-footer/src/widgets/session/total-time.ts +18 -0
  100. package/node_modules/pi-footer/src/widgets/session/user-messages.ts +17 -0
  101. package/node_modules/pi-footer/src/widgets/store.ts +26 -0
  102. package/node_modules/pi-footer/src/widgets/tokens/cache-hit-rate.ts +55 -0
  103. package/node_modules/pi-footer/src/widgets/tokens/cache-read.ts +18 -0
  104. package/node_modules/pi-footer/src/widgets/tokens/cache-write.ts +18 -0
  105. package/node_modules/pi-footer/src/widgets/tokens/context-bar.ts +108 -0
  106. package/node_modules/pi-footer/src/widgets/tokens/context-length.ts +26 -0
  107. package/node_modules/pi-footer/src/widgets/tokens/context-remaining.ts +29 -0
  108. package/node_modules/pi-footer/src/widgets/tokens/context.ts +29 -0
  109. package/node_modules/pi-footer/src/widgets/tokens/cost.ts +51 -0
  110. package/node_modules/pi-footer/src/widgets/tokens/input-speed.ts +25 -0
  111. package/node_modules/pi-footer/src/widgets/tokens/input-tokens.ts +18 -0
  112. package/node_modules/pi-footer/src/widgets/tokens/output-speed.ts +25 -0
  113. package/node_modules/pi-footer/src/widgets/tokens/output-tokens.ts +18 -0
  114. package/node_modules/pi-footer/src/widgets/tokens/tokens.ts +20 -0
  115. package/node_modules/pi-footer/src/widgets/tokens/total-speed.ts +25 -0
  116. package/node_modules/pi-footer/src/widgets/tokens/total-tokens.ts +18 -0
  117. package/node_modules/pi-footer/src/widgets/types.ts +181 -0
  118. package/node_modules/pi-footer/src/widgets/utils/colors.ts +11 -0
  119. package/node_modules/pi-footer/src/widgets/utils/context.ts +112 -0
  120. package/node_modules/pi-footer/src/widgets/utils/session.ts +19 -0
  121. package/node_modules/pi-footer/src/widgets/utils/token-format.ts +78 -0
  122. package/package.json +7 -2
package/README.md CHANGED
@@ -15,6 +15,7 @@ The package bundles 11 active `@herbertgao/*` child packages, including `@herber
15
15
  - `@narumitw/pi-btw@0.50.0`
16
16
  - `@pi-plugins/fast-mode@0.1.9`
17
17
  - `pi-mcp-adapter@2.23.0`
18
+ - `pi-footer@0.5.1`
18
19
  - `pi-lens@3.8.74`
19
20
  - `pi-web-access@0.22.0`
20
21
  - `remote-pi@0.7.0`
@@ -22,6 +23,46 @@ The package bundles 11 active `@herbertgao/*` child packages, including `@herber
22
23
 
23
24
  Pi loads their extensions and skills through `node_modules/` paths inside one package root. The upstream companions are pinned and bundled, not forked or renamed.
24
25
 
26
+ If `pi-footer` was installed separately before upgrading to an aggregate release that includes it, remove the standalone source shown by `pi list` so only the bundled copy loads. For the pinned standalone install used while preparing this integration:
27
+
28
+ ```bash
29
+ pi remove npm:pi-footer@0.5.1
30
+ ```
31
+
32
+ ### Recommended footer
33
+
34
+ `pi-footer` is enabled by the aggregate. To use the recommended compact layout for MCP, Auto mode, LSP, Ponytail, Remote Pi, and Subagents, copy the bundled example to Pi's user config directory:
35
+
36
+ ```bash
37
+ agent_dir="${PI_CODING_AGENT_DIR:-$HOME/.pi/agent}"
38
+ mkdir -p "$agent_dir/extensions"
39
+ cp "$agent_dir/npm/node_modules/@herbertgao/pi-extensions/examples/pi-footer.json" \
40
+ "$agent_dir/extensions/pi-footer.json"
41
+ ```
42
+
43
+ The same copy is linked here as [`examples/pi-footer.json`](examples/pi-footer.json). The example preserves the native path, Git branch, session, token/context, model, and thinking information. It uses a gray `•` separator and shows Remote Pi/Subagents only when those extensions publish status. Restart Pi or run `/reload` after copying. Existing config is intentionally never overwritten automatically.
44
+
45
+ For the intended compact status text, merge these optional companion settings into existing files rather than replacing the files:
46
+
47
+ ```jsonc
48
+ // ~/.pi/agent/mcp.json
49
+ {
50
+ "settings": {
51
+ "mcpFooterStatus": "compact",
52
+ "showStatusIcon": false
53
+ }
54
+ }
55
+
56
+ // ~/.pi-lens/config.json
57
+ {
58
+ "widget": {
59
+ "visible": false
60
+ }
61
+ }
62
+ ```
63
+
64
+ The copy command replaces an existing `pi-footer.json`; review or back it up first. Only one footer-replacement extension should be enabled at a time. Use `/footer` for interactive changes.
65
+
25
66
  Pi 0.84.1 or newer should use native `fullscreen` TUI mode. The deprecated `@herbertgao/pi-fixed-editor` legacy package is intentionally not bundled.
26
67
 
27
68
  ### Remote Pi trust boundary
@@ -0,0 +1,275 @@
1
+ {
2
+ "version": 1,
3
+ "enabled": true,
4
+ "preset": "pi-footer",
5
+ "lines": [
6
+ [
7
+ {
8
+ "id": "core-cwd",
9
+ "type": "cwd",
10
+ "enabled": true,
11
+ "options": {
12
+ "raw": true,
13
+ "fg": "pi:dim",
14
+ "cwdDisplayStyle": "full-home"
15
+ }
16
+ },
17
+ {
18
+ "id": "core-branch",
19
+ "type": "git-branch",
20
+ "enabled": true,
21
+ "options": {
22
+ "raw": true,
23
+ "fg": "pi:dim",
24
+ "hideWhenEmpty": true,
25
+ "gitBranchDisplayStyle": "round-brackets"
26
+ }
27
+ },
28
+ {
29
+ "id": "core-session",
30
+ "type": "session-name",
31
+ "enabled": true,
32
+ "options": {
33
+ "raw": true,
34
+ "fg": "pi:dim",
35
+ "hideWhenEmpty": true
36
+ }
37
+ }
38
+ ],
39
+ [
40
+ {
41
+ "id": "core-tokens",
42
+ "type": "tokens",
43
+ "enabled": true,
44
+ "options": {
45
+ "raw": true,
46
+ "fg": "pi:dim",
47
+ "tokenFormatStyle": "compact"
48
+ }
49
+ },
50
+ {
51
+ "id": "core-cache-read",
52
+ "type": "cache-read",
53
+ "enabled": true,
54
+ "options": {
55
+ "icon": "R",
56
+ "fg": "pi:dim",
57
+ "tokenFormatStyle": "compact",
58
+ "hideWhenZero": true
59
+ }
60
+ },
61
+ {
62
+ "id": "core-cache-write",
63
+ "type": "cache-write",
64
+ "enabled": true,
65
+ "options": {
66
+ "icon": "W",
67
+ "fg": "pi:dim",
68
+ "tokenFormatStyle": "compact",
69
+ "hideWhenZero": true
70
+ }
71
+ },
72
+ {
73
+ "id": "core-cache-hit",
74
+ "type": "cache-hit-rate",
75
+ "enabled": true,
76
+ "options": {
77
+ "icon": "CH",
78
+ "fg": "pi:dim",
79
+ "hideWhenZero": true,
80
+ "cacheHitSource": "turn"
81
+ }
82
+ },
83
+ {
84
+ "id": "core-cost",
85
+ "type": "cost",
86
+ "enabled": true,
87
+ "options": {
88
+ "raw": true,
89
+ "fg": "pi:dim",
90
+ "costFormatStyle": "compact",
91
+ "showSubscription": true
92
+ }
93
+ },
94
+ {
95
+ "id": "core-context",
96
+ "type": "context",
97
+ "enabled": true,
98
+ "options": {
99
+ "raw": true,
100
+ "fg": "pi:dim",
101
+ "contextConditionalColors": true,
102
+ "warningFg": "pi:warning",
103
+ "dangerFg": "pi:error"
104
+ }
105
+ },
106
+ {
107
+ "id": "core-context-slash",
108
+ "type": "separator",
109
+ "enabled": true,
110
+ "options": {
111
+ "separator": "custom",
112
+ "text": "/",
113
+ "fg": "pi:dim"
114
+ }
115
+ },
116
+ {
117
+ "id": "core-context-window",
118
+ "type": "context-window",
119
+ "enabled": true,
120
+ "options": {
121
+ "raw": true,
122
+ "fg": "pi:dim",
123
+ "contextConditionalColors": true,
124
+ "warningFg": "pi:warning",
125
+ "dangerFg": "pi:error",
126
+ "tokenFormatStyle": "compact"
127
+ }
128
+ },
129
+ {
130
+ "id": "core-flex",
131
+ "type": "flex-separator",
132
+ "enabled": true,
133
+ "options": {}
134
+ },
135
+ {
136
+ "id": "core-model",
137
+ "type": "model",
138
+ "enabled": true,
139
+ "options": {
140
+ "raw": true,
141
+ "fg": "pi:dim"
142
+ }
143
+ },
144
+ {
145
+ "id": "core-thinking",
146
+ "type": "thinking-level",
147
+ "enabled": true,
148
+ "options": {
149
+ "raw": true,
150
+ "fg": "pi:dim",
151
+ "hideWhenEmpty": true
152
+ }
153
+ }
154
+ ],
155
+ [
156
+ {
157
+ "id": "status-mcp",
158
+ "type": "external-status",
159
+ "enabled": true,
160
+ "options": {
161
+ "externalStatusKey": "mcp",
162
+ "icon": "🔌 ",
163
+ "hideWhenEmpty": true
164
+ }
165
+ },
166
+ {
167
+ "id": "status-auto",
168
+ "type": "external-status",
169
+ "enabled": true,
170
+ "options": {
171
+ "externalStatusKey": "pi-automode",
172
+ "icon": "🤖 Auto ",
173
+ "trimValue": 2,
174
+ "preserveTrimStyles": true,
175
+ "hideWhenEmpty": true
176
+ }
177
+ }
178
+ ],
179
+ [
180
+ {
181
+ "id": "status-lsp",
182
+ "type": "external-status",
183
+ "enabled": true,
184
+ "options": {
185
+ "externalStatusKey": "pi-lens-lsp",
186
+ "icon": "🧩 LSP ",
187
+ "trimValue": 4,
188
+ "preserveTrimStyles": true,
189
+ "hideWhenEmpty": true
190
+ }
191
+ },
192
+ {
193
+ "id": "status-ponytail",
194
+ "type": "external-status",
195
+ "enabled": true,
196
+ "options": {
197
+ "externalStatusKey": "ponytail",
198
+ "trimValue": 2,
199
+ "preserveTrimStyles": false,
200
+ "hideWhenEmpty": true
201
+ }
202
+ }
203
+ ],
204
+ [
205
+ {
206
+ "id": "status-remote-session",
207
+ "type": "external-status",
208
+ "enabled": true,
209
+ "options": {
210
+ "externalStatusKey": "remote-pi:session",
211
+ "hideWhenEmpty": true
212
+ }
213
+ },
214
+ {
215
+ "id": "status-remote-relay",
216
+ "type": "external-status",
217
+ "enabled": true,
218
+ "options": {
219
+ "externalStatusKey": "remote-pi:relay",
220
+ "hideWhenEmpty": true
221
+ }
222
+ },
223
+ {
224
+ "id": "status-remote-peer",
225
+ "type": "external-status",
226
+ "enabled": true,
227
+ "options": {
228
+ "externalStatusKey": "remote-pi:peer-active",
229
+ "hideWhenEmpty": true
230
+ }
231
+ },
232
+ {
233
+ "id": "status-subagents",
234
+ "type": "external-status",
235
+ "enabled": true,
236
+ "options": {
237
+ "externalStatusKey": "subagents",
238
+ "icon": "👥 ",
239
+ "hideWhenEmpty": true
240
+ }
241
+ }
242
+ ]
243
+ ],
244
+ "separator": "dot",
245
+ "separatorFg": "brightBlack",
246
+ "separatorBg": "default",
247
+ "iconMode": "text",
248
+ "minimalist": false,
249
+ "terminal": {
250
+ "widthMode": "full",
251
+ "colorLevel": "ansi256"
252
+ },
253
+ "extensionStatusRow": {
254
+ "hiddenKeys": [
255
+ "mcp",
256
+ "pi-automode",
257
+ "pi-lens-lsp",
258
+ "ponytail",
259
+ "remote-pi:peer-active",
260
+ "remote-pi:relay",
261
+ "remote-pi:session",
262
+ "subagents"
263
+ ],
264
+ "knownKeys": [
265
+ "mcp",
266
+ "pi-automode",
267
+ "pi-lens-lsp",
268
+ "ponytail",
269
+ "remote-pi:peer-active",
270
+ "remote-pi:relay",
271
+ "remote-pi:session",
272
+ "subagents"
273
+ ]
274
+ }
275
+ }
@@ -0,0 +1,145 @@
1
+ # Changelog
2
+
3
+ ## [0.5.1](https://github.com/wobondar/pi-footer/compare/v0.5.0...v0.5.1) (2026-08-02)
4
+
5
+
6
+ ### Dependencies
7
+
8
+ * **deps-dev:** bump oxfmt from 0.59.0 to 0.60.0 ([#59](https://github.com/wobondar/pi-footer/issues/59)) ([0efe7d7](https://github.com/wobondar/pi-footer/commit/0efe7d7ab686ddbe1e5c0999522e91d9fe6f85c0))
9
+ * **deps-dev:** bump oxfmt from 0.60.0 to 0.61.0 ([#65](https://github.com/wobondar/pi-footer/issues/65)) ([a97e9c5](https://github.com/wobondar/pi-footer/commit/a97e9c59d242aa163880f1deb4c92e077a45003e))
10
+ * **deps-dev:** bump oxlint from 1.74.0 to 1.75.0 ([#61](https://github.com/wobondar/pi-footer/issues/61)) ([ad8721b](https://github.com/wobondar/pi-footer/commit/ad8721b2d55a38037457730dfa19e8ea1d164474))
11
+ * **deps-dev:** bump oxlint from 1.75.0 to 1.76.0 ([#64](https://github.com/wobondar/pi-footer/issues/64)) ([9fa9d68](https://github.com/wobondar/pi-footer/commit/9fa9d68b1f98c16ba3589815e5fc0a398baedcfd))
12
+ * **deps-dev:** bump oxlint-tsgolint from 0.25.0 to 7.0.2001 ([#60](https://github.com/wobondar/pi-footer/issues/60)) ([893f562](https://github.com/wobondar/pi-footer/commit/893f5629eef911285dda7d2c90e3dca59ed5f9a8))
13
+ * **deps-dev:** bump postcss from 8.5.17 to 8.5.23 ([#62](https://github.com/wobondar/pi-footer/issues/62)) ([a1cc8dd](https://github.com/wobondar/pi-footer/commit/a1cc8dd9719f55d46db35af8520de219fc49bc3c))
14
+ * **deps-dev:** bump typescript from 6.0.3 to 7.0.2 ([#50](https://github.com/wobondar/pi-footer/issues/50)) ([d4f6dff](https://github.com/wobondar/pi-footer/commit/d4f6dff394bb3f77c7c4abd488ab0bd6783678d7))
15
+ * **deps:** bump @earendil-works/pi-coding-agent from 0.80.3 to 0.83.0 ([#67](https://github.com/wobondar/pi-footer/issues/67)) ([126d938](https://github.com/wobondar/pi-footer/commit/126d938e9c211caee59d16c39abe5a8cd53d22a7))
16
+ * **deps:** bump chalk from 5.6.2 to 6.0.0 ([#63](https://github.com/wobondar/pi-footer/issues/63)) ([fe399b8](https://github.com/wobondar/pi-footer/commit/fe399b86d97b48bc6f391345ddc77b5419033efb))
17
+
18
+ ## [0.5.0](https://github.com/wobondar/pi-footer/compare/v0.4.2...v0.5.0) (2026-07-23)
19
+
20
+
21
+ ### Features
22
+
23
+ * add cache hit rate widget ([#57](https://github.com/wobondar/pi-footer/issues/57)) ([edce7d2](https://github.com/wobondar/pi-footer/commit/edce7d29f0ae48ddde4ff9cf3247f0a6dbd82676))
24
+
25
+
26
+ ### Dependencies
27
+
28
+ * **deps-dev:** bump @vitest/coverage-v8 from 4.1.9 to 4.1.10 ([#48](https://github.com/wobondar/pi-footer/issues/48)) ([66236c0](https://github.com/wobondar/pi-footer/commit/66236c04ac8c13da532bc38878751d64a10881a7))
29
+ * **deps-dev:** bump oxfmt from 0.57.0 to 0.58.0 ([#49](https://github.com/wobondar/pi-footer/issues/49)) ([d0d0ebb](https://github.com/wobondar/pi-footer/commit/d0d0ebbcd5540275fb3d9580004419393588599e))
30
+ * **deps-dev:** bump oxfmt from 0.58.0 to 0.59.0 ([#55](https://github.com/wobondar/pi-footer/issues/55)) ([71bc5cf](https://github.com/wobondar/pi-footer/commit/71bc5cf53955fa4f077b0593d966bc95fb27b971))
31
+ * **deps-dev:** bump oxlint from 1.72.0 to 1.73.0 ([#52](https://github.com/wobondar/pi-footer/issues/52)) ([5ce5632](https://github.com/wobondar/pi-footer/commit/5ce56329002c7854e4c527e38c095bfd0232c29e))
32
+ * **deps-dev:** bump oxlint from 1.73.0 to 1.74.0 ([#54](https://github.com/wobondar/pi-footer/issues/54)) ([6ccfccd](https://github.com/wobondar/pi-footer/commit/6ccfccd6272fdb1f8dbf405c88de04832d24f6e0))
33
+ * **deps-dev:** bump oxlint-tsgolint from 0.24.0 to 0.25.0 ([#56](https://github.com/wobondar/pi-footer/issues/56)) ([a138fc8](https://github.com/wobondar/pi-footer/commit/a138fc8e794c649134a6bbae1c85d32abf6898be))
34
+ * **deps-dev:** bump vitest from 4.1.9 to 4.1.10 ([#51](https://github.com/wobondar/pi-footer/issues/51)) ([6408e67](https://github.com/wobondar/pi-footer/commit/6408e6769cc07cc8f33661eba24583330be87ab9))
35
+ * **deps:** bump actions/setup-node from 6 to 7 ([#53](https://github.com/wobondar/pi-footer/issues/53)) ([bee2dfb](https://github.com/wobondar/pi-footer/commit/bee2dfbbd97ade2f3266503fb7db70e1dbdebaf8))
36
+
37
+ ## [0.4.2](https://github.com/wobondar/pi-footer/compare/v0.4.1...v0.4.2) (2026-07-01)
38
+
39
+
40
+ ### Dependencies
41
+
42
+ * **deps-dev:** bump @types/node from 25.9.1 to 26.0.0 ([#39](https://github.com/wobondar/pi-footer/issues/39)) ([fc53522](https://github.com/wobondar/pi-footer/commit/fc53522b3fa0a528b201bd8baa0e8d6039cde11c))
43
+ * **deps-dev:** bump @types/node from 26.0.0 to 26.1.0 ([#42](https://github.com/wobondar/pi-footer/issues/42)) ([1ef23c8](https://github.com/wobondar/pi-footer/commit/1ef23c849166e5fc0163d4bd5541f29890a8a0fc))
44
+ * **deps-dev:** bump @vitest/coverage-v8 from 4.1.8 to 4.1.9 ([#41](https://github.com/wobondar/pi-footer/issues/41)) ([d660601](https://github.com/wobondar/pi-footer/commit/d660601e3d83ca0c0074d6b170d131ed62c73a48))
45
+ * **deps-dev:** bump oxfmt from 0.53.0 to 0.54.0 ([#32](https://github.com/wobondar/pi-footer/issues/32)) ([89d4bdb](https://github.com/wobondar/pi-footer/commit/89d4bdbfa21965843f9b6e18953963b0bf5d33d6))
46
+ * **deps-dev:** bump oxfmt from 0.54.0 to 0.55.0 ([#37](https://github.com/wobondar/pi-footer/issues/37)) ([5aaa074](https://github.com/wobondar/pi-footer/commit/5aaa0746608a88e6393c44c30ddcf289d27eedfe))
47
+ * **deps-dev:** bump oxfmt from 0.55.0 to 0.57.0 ([#45](https://github.com/wobondar/pi-footer/issues/45)) ([d4733d5](https://github.com/wobondar/pi-footer/commit/d4733d5e3533ac7d05509fd523af9052ac04bc40))
48
+ * **deps-dev:** bump oxlint from 1.68.0 to 1.69.0 ([#33](https://github.com/wobondar/pi-footer/issues/33)) ([f31d05f](https://github.com/wobondar/pi-footer/commit/f31d05f50c663328b483e3e05286ed9739c833de))
49
+ * **deps-dev:** bump oxlint from 1.69.0 to 1.70.0 ([#40](https://github.com/wobondar/pi-footer/issues/40)) ([405b880](https://github.com/wobondar/pi-footer/commit/405b880960684e5021cc3ea85de1396ad28d9c3b))
50
+ * **deps-dev:** bump oxlint from 1.70.0 to 1.72.0 ([#43](https://github.com/wobondar/pi-footer/issues/43)) ([6ef9cc5](https://github.com/wobondar/pi-footer/commit/6ef9cc5894b82406abbc8f4e6ad91f4607f15714))
51
+ * **deps-dev:** bump oxlint-tsgolint from 0.23.0 to 0.24.0 ([#44](https://github.com/wobondar/pi-footer/issues/44)) ([a75ad99](https://github.com/wobondar/pi-footer/commit/a75ad998f87f46ea2e624fcf698a202c0eb82a3d))
52
+ * **deps-dev:** bump vitest from 4.1.8 to 4.1.9 ([#38](https://github.com/wobondar/pi-footer/issues/38)) ([c47b551](https://github.com/wobondar/pi-footer/commit/c47b551f99bd50765537ab122f7b48576c05123a))
53
+ * **deps:** bump @earendil-works/pi-coding-agent and related pkgs to 0.80.3 ([#46](https://github.com/wobondar/pi-footer/issues/46)) ([62f4aef](https://github.com/wobondar/pi-footer/commit/62f4aefead342afec04b3150979039c7cf0e98e8))
54
+ * **deps:** bump @earendil-works/pi-coding-agent from 0.74.0 to 0.79.8 ([#35](https://github.com/wobondar/pi-footer/issues/35)) ([e8ac663](https://github.com/wobondar/pi-footer/commit/e8ac663bad29ad9195dce2da8189d6e61b8e1e9d))
55
+ * **deps:** bump actions/checkout from 6 to 7 ([#36](https://github.com/wobondar/pi-footer/issues/36)) ([3aad8f4](https://github.com/wobondar/pi-footer/commit/3aad8f40598c4ba6cdbc79155f7f3d7f26f84323))
56
+
57
+ ## [0.4.1](https://github.com/wobondar/pi-footer/compare/v0.4.0...v0.4.1) (2026-06-11)
58
+
59
+
60
+ ### Bug Fixes
61
+
62
+ * **ci:** merge smoke jobs, add PR trigger with trimmed matrix ([#31](https://github.com/wobondar/pi-footer/issues/31)) ([e1911a2](https://github.com/wobondar/pi-footer/commit/e1911a286aae2e913fa54a6ec8efc20de5a6a208))
63
+ * refactor widget context and simplify clone settings ([#30](https://github.com/wobondar/pi-footer/issues/30)) ([6ce2973](https://github.com/wobondar/pi-footer/commit/6ce2973dbbc0294ddfec5cac0bd9a468c942c09f))
64
+
65
+
66
+ ### Dependencies
67
+
68
+ * **deps-dev:** bump @vitest/coverage-v8 from 4.1.7 to 4.1.8 ([#25](https://github.com/wobondar/pi-footer/issues/25)) ([61fb783](https://github.com/wobondar/pi-footer/commit/61fb783d42fd3552db818864548bcfc506263e8b))
69
+ * **deps-dev:** bump oxfmt from 0.52.0 to 0.53.0 ([#24](https://github.com/wobondar/pi-footer/issues/24)) ([9b36f14](https://github.com/wobondar/pi-footer/commit/9b36f148ad5b7d6261a92c59721853e404c15493))
70
+ * **deps-dev:** bump oxlint from 1.67.0 to 1.68.0 ([#26](https://github.com/wobondar/pi-footer/issues/26)) ([0817eb9](https://github.com/wobondar/pi-footer/commit/0817eb9d8fb80c87fba726fa372135c5ba568875))
71
+ * **deps-dev:** bump vitest from 4.1.7 to 4.1.8 ([#27](https://github.com/wobondar/pi-footer/issues/27)) ([ea1d50c](https://github.com/wobondar/pi-footer/commit/ea1d50c64e7710333240d1a9cf182a17e312c032))
72
+
73
+ ## [0.4.0](https://github.com/wobondar/pi-footer/compare/v0.3.0...v0.4.0) (2026-06-04)
74
+
75
+
76
+ ### Features
77
+
78
+ * widget containers and modular widget registry ([#23](https://github.com/wobondar/pi-footer/issues/23)) ([8f9e4bb](https://github.com/wobondar/pi-footer/commit/8f9e4bb66b75a2c70621390d1bddcf1a0bbc1edc))
79
+
80
+
81
+ ### Bug Fixes
82
+
83
+ * enable manual triggering of release workflow ([0c1f8d8](https://github.com/wobondar/pi-footer/commit/0c1f8d84e41f4224a6e0dc131ab665610dd489ca))
84
+
85
+
86
+ ### Dependencies
87
+
88
+ * **deps-dev:** bump @types/node from 25.6.2 to 25.8.0 ([#9](https://github.com/wobondar/pi-footer/issues/9)) ([aed1f36](https://github.com/wobondar/pi-footer/commit/aed1f36746ee78d05500a6266ffb67a943cbbf1c))
89
+ * **deps-dev:** bump @types/node from 25.8.0 to 25.9.1 ([#12](https://github.com/wobondar/pi-footer/issues/12)) ([935a1f4](https://github.com/wobondar/pi-footer/commit/935a1f4f2f630c29ab662ea12a0a5c14d1e3460a))
90
+ * **deps-dev:** bump @vitest/coverage-v8 from 4.1.5 to 4.1.6 ([#10](https://github.com/wobondar/pi-footer/issues/10)) ([38f988c](https://github.com/wobondar/pi-footer/commit/38f988c476dc41116f5880c5d6a64fdb82c19258))
91
+ * **deps-dev:** bump @vitest/coverage-v8 from 4.1.6 to 4.1.7 ([#17](https://github.com/wobondar/pi-footer/issues/17)) ([55cb502](https://github.com/wobondar/pi-footer/commit/55cb5023a084fb42bebce5bb48399e51ac246a46))
92
+ * **deps-dev:** bump oxfmt from 0.48.0 to 0.50.0 ([#7](https://github.com/wobondar/pi-footer/issues/7)) ([e0f7d89](https://github.com/wobondar/pi-footer/commit/e0f7d89b9bee8dd3b5a7a935b9e9dc1e4e55cfb1))
93
+ * **deps-dev:** bump oxfmt from 0.50.0 to 0.51.0 ([#13](https://github.com/wobondar/pi-footer/issues/13)) ([1de1845](https://github.com/wobondar/pi-footer/commit/1de184546fa60af0ee03477d02f0f1ce2be59d80))
94
+ * **deps-dev:** bump oxfmt from 0.51.0 to 0.52.0 ([#21](https://github.com/wobondar/pi-footer/issues/21)) ([9fa53f2](https://github.com/wobondar/pi-footer/commit/9fa53f28403f5f85b84714e7411c77a55ae17f02))
95
+ * **deps-dev:** bump oxlint from 1.63.0 to 1.65.0 ([#8](https://github.com/wobondar/pi-footer/issues/8)) ([e3d6c2e](https://github.com/wobondar/pi-footer/commit/e3d6c2ef81dea916edf09191b6ac369992bc1179))
96
+ * **deps-dev:** bump oxlint from 1.65.0 to 1.66.0 ([#16](https://github.com/wobondar/pi-footer/issues/16)) ([1dc7296](https://github.com/wobondar/pi-footer/commit/1dc72966836b5c64d9e7913eac16514a8fa12bde))
97
+ * **deps-dev:** bump oxlint from 1.66.0 to 1.67.0 ([#22](https://github.com/wobondar/pi-footer/issues/22)) ([5910539](https://github.com/wobondar/pi-footer/commit/5910539484e313455b982d7b0df82a1096ba6838))
98
+ * **deps-dev:** bump oxlint-tsgolint from 0.22.1 to 0.23.0 ([#14](https://github.com/wobondar/pi-footer/issues/14)) ([0178315](https://github.com/wobondar/pi-footer/commit/0178315dac50583b92d2da17524428292dc4f12f))
99
+ * **deps-dev:** bump vitest from 4.1.6 to 4.1.7 ([#15](https://github.com/wobondar/pi-footer/issues/15)) ([f06570a](https://github.com/wobondar/pi-footer/commit/f06570a17ee4acd59bbe3530bb7510cedc4685b0))
100
+ * **deps:** bump protobufjs from 7.5.7 to 7.6.1 ([#18](https://github.com/wobondar/pi-footer/issues/18)) ([cbd496b](https://github.com/wobondar/pi-footer/commit/cbd496b7a61e9fcfc888ad97bf591d6c187297ca))
101
+ * **deps:** bump ws from 8.20.0 to 8.21.0 ([#19](https://github.com/wobondar/pi-footer/issues/19)) ([3ff5247](https://github.com/wobondar/pi-footer/commit/3ff52474e84a54aa3823a7d0be162e4993426f52))
102
+
103
+ ## [0.3.0](https://github.com/wobondar/pi-footer/compare/v0.2.1...v0.3.0) (2026-05-10)
104
+
105
+
106
+ ### Features
107
+
108
+ * enhance git info caching ([3963e69](https://github.com/wobondar/pi-footer/commit/3963e69286f95514df212acae69470d4d9fea00a))
109
+
110
+ ## [0.2.1](https://github.com/wobondar/pi-footer/compare/v0.2.0...v0.2.1) (2026-05-10)
111
+
112
+
113
+ ### Bug Fixes
114
+
115
+ * update image links to use raw GitHub URLs ([804c8c2](https://github.com/wobondar/pi-footer/commit/804c8c2a91224604dd4177eb6b9ea0e9ff9b0af7))
116
+
117
+ ## [0.2.0](https://github.com/wobondar/pi-footer/compare/v0.1.0...v0.2.0) (2026-05-10)
118
+
119
+
120
+ ### Features
121
+
122
+ * rebrand to pi-footer due to npm similarity with existing package ([cceba8c](https://github.com/wobondar/pi-footer/commit/cceba8ce838d7f4fc4b2653d5bfeea4f39eb19f2))
123
+
124
+
125
+ ### Bug Fixes
126
+
127
+ * enable npm publish with provenance ([39e3709](https://github.com/wobondar/pi-footer/commit/39e3709c769a7911b4c1fb0ea79759e67e55b29c))
128
+
129
+ ## [0.1.0](https://github.com/wobondar/pi-footer/compare/v0.0.1...v0.1.0) (2026-05-09)
130
+
131
+
132
+ ### Features
133
+
134
+ * initial extension ([8998c7b](https://github.com/wobondar/pi-footer/commit/8998c7b44dc6b91b069a46a265d2e5466f3d41fe))
135
+
136
+
137
+ ### Bug Fixes
138
+
139
+ * embed video ([02f0668](https://github.com/wobondar/pi-footer/commit/02f0668bb75eed7a343454c277e83d92b65533f9))
140
+ * replace video embed with tag ([e79d2c4](https://github.com/wobondar/pi-footer/commit/e79d2c45b80be96321d5ecd2de67e7d14e0f16fc))
141
+
142
+
143
+ ### Dependencies
144
+
145
+ * **deps-dev:** bump oxfmt from 0.47.0 to 0.48.0 ([#2](https://github.com/wobondar/pi-footer/issues/2)) ([d82e354](https://github.com/wobondar/pi-footer/commit/d82e3548ee6a839867ec066fd3dc4088da436769))
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 wobondar
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.