pi-footer-dock 0.1.0 → 0.1.2

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 (178) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +10 -0
  3. package/dist/index.js +9707 -0
  4. package/docs/extending-footer-dock.md +2 -0
  5. package/package.json +11 -8
  6. package/src/adapters/acquisition-deadline.ts +0 -69
  7. package/src/adapters/authorized-fetch.ts +0 -114
  8. package/src/adapters/deferred-refresh.ts +0 -32
  9. package/src/adapters/diagnostics.ts +0 -97
  10. package/src/adapters/ext-bus.ts +0 -90
  11. package/src/adapters/file-lines.ts +0 -79
  12. package/src/adapters/folder-opener.ts +0 -34
  13. package/src/adapters/gate-state.ts +0 -165
  14. package/src/adapters/git-ahead.ts +0 -80
  15. package/src/adapters/git-bootstrap.ts +0 -38
  16. package/src/adapters/git-branches.ts +0 -28
  17. package/src/adapters/git-changed-files.ts +0 -87
  18. package/src/adapters/git-command.ts +0 -56
  19. package/src/adapters/git-config.ts +0 -47
  20. package/src/adapters/git-coverage.ts +0 -62
  21. package/src/adapters/git-diff.ts +0 -53
  22. package/src/adapters/git-inert.ts +0 -80
  23. package/src/adapters/git-inventory.ts +0 -169
  24. package/src/adapters/git-monitor.ts +0 -220
  25. package/src/adapters/git-scope.ts +0 -43
  26. package/src/adapters/git-tracker.ts +0 -39
  27. package/src/adapters/git-watch-set.ts +0 -86
  28. package/src/adapters/git.ts +0 -35
  29. package/src/adapters/history/cache.ts +0 -37
  30. package/src/adapters/history/files.ts +0 -36
  31. package/src/adapters/history/line-splitter.ts +0 -34
  32. package/src/adapters/history/project.ts +0 -34
  33. package/src/adapters/history/read-lines.ts +0 -46
  34. package/src/adapters/history/scanner.ts +0 -166
  35. package/src/adapters/history/tracker.ts +0 -113
  36. package/src/adapters/openai-header-quota.ts +0 -61
  37. package/src/adapters/provider-quota-fetch.ts +0 -80
  38. package/src/adapters/provider-quota-service.ts +0 -203
  39. package/src/adapters/provider-quota-view.ts +0 -43
  40. package/src/adapters/quota-credentials.ts +0 -18
  41. package/src/adapters/registry-prices.ts +0 -22
  42. package/src/adapters/repaint-clock.ts +0 -14
  43. package/src/adapters/response-telemetry.ts +0 -65
  44. package/src/adapters/session-usage.ts +0 -65
  45. package/src/adapters/settings-file.ts +0 -81
  46. package/src/adapters/shared-gate.ts +0 -162
  47. package/src/adapters/snapshot.ts +0 -115
  48. package/src/click-actions.ts +0 -23
  49. package/src/core/ahead-lines.ts +0 -152
  50. package/src/core/ahead-parse.ts +0 -115
  51. package/src/core/api-cost.ts +0 -157
  52. package/src/core/branch-lines.ts +0 -133
  53. package/src/core/branch-switch.ts +0 -27
  54. package/src/core/branches.ts +0 -109
  55. package/src/core/cache-class.ts +0 -39
  56. package/src/core/cache-presentation.ts +0 -40
  57. package/src/core/cache-usage.ts +0 -42
  58. package/src/core/changed-files.ts +0 -143
  59. package/src/core/click-targets.ts +0 -22
  60. package/src/core/compaction-help.ts +0 -3
  61. package/src/core/cost-breakdown.ts +0 -78
  62. package/src/core/diff-lines.ts +0 -31
  63. package/src/core/diff-numbers.ts +0 -91
  64. package/src/core/diff-stat.ts +0 -13
  65. package/src/core/duration.ts +0 -11
  66. package/src/core/explain/blocks.ts +0 -75
  67. package/src/core/explain/explainer.ts +0 -83
  68. package/src/core/explain/items/cache-facts.ts +0 -70
  69. package/src/core/explain/items/cache.ts +0 -176
  70. package/src/core/explain/items/catalogue.ts +0 -157
  71. package/src/core/explain/items/context.ts +0 -152
  72. package/src/core/explain/items/cost.ts +0 -190
  73. package/src/core/explain/items/history-sections.ts +0 -193
  74. package/src/core/explain/items/money.ts +0 -9
  75. package/src/core/explain/items/quota.ts +0 -213
  76. package/src/core/explain/items/speed.ts +0 -86
  77. package/src/core/explain/registry.ts +0 -21
  78. package/src/core/explain/render-bars.ts +0 -128
  79. package/src/core/explain/render-table.ts +0 -38
  80. package/src/core/explain/render-text.ts +0 -51
  81. package/src/core/explain/render.ts +0 -44
  82. package/src/core/explain/simple.ts +0 -35
  83. package/src/core/explain/style.ts +0 -51
  84. package/src/core/ext/blocks.ts +0 -133
  85. package/src/core/ext/clean.ts +0 -40
  86. package/src/core/ext/explain.ts +0 -30
  87. package/src/core/ext/menu.ts +0 -36
  88. package/src/core/ext/protocol.ts +0 -116
  89. package/src/core/ext/registry.ts +0 -123
  90. package/src/core/ext/rows.ts +0 -22
  91. package/src/core/ext/validate.ts +0 -169
  92. package/src/core/footer-config.ts +0 -152
  93. package/src/core/history/cache-format.ts +0 -107
  94. package/src/core/history/cost-types.ts +0 -9
  95. package/src/core/history/costs.ts +0 -55
  96. package/src/core/history/entry.ts +0 -82
  97. package/src/core/history/period.ts +0 -66
  98. package/src/core/history/queries.ts +0 -57
  99. package/src/core/history/rows.ts +0 -67
  100. package/src/core/history/scan.ts +0 -64
  101. package/src/core/interaction-trace.ts +0 -23
  102. package/src/core/looks.ts +0 -82
  103. package/src/core/menu-row.ts +0 -25
  104. package/src/core/model.ts +0 -99
  105. package/src/core/open-folder.ts +0 -42
  106. package/src/core/openai-rate-headers.ts +0 -59
  107. package/src/core/picker/model-choices.ts +0 -45
  108. package/src/core/picker/state.ts +0 -80
  109. package/src/core/picker/thinking-choices.ts +0 -61
  110. package/src/core/price-source.ts +0 -57
  111. package/src/core/primary-completion.ts +0 -9
  112. package/src/core/product.ts +0 -19
  113. package/src/core/quota-binding.ts +0 -49
  114. package/src/core/quota-freshness.ts +0 -41
  115. package/src/core/quota-limits.ts +0 -18
  116. package/src/core/quota-pace.ts +0 -96
  117. package/src/core/quota-presentation.ts +0 -36
  118. package/src/core/quota-state.ts +0 -115
  119. package/src/core/quota-visibility.ts +0 -18
  120. package/src/core/rate-limits.ts +0 -165
  121. package/src/core/relative-age.ts +0 -21
  122. package/src/core/response-price.ts +0 -125
  123. package/src/core/response-speed.ts +0 -109
  124. package/src/core/settings-collapse.ts +0 -49
  125. package/src/core/settings-groups.ts +0 -130
  126. package/src/core/settings-menu.ts +0 -232
  127. package/src/core/settings-text.ts +0 -36
  128. package/src/core/settings.ts +0 -105
  129. package/src/core/slot-options.ts +0 -104
  130. package/src/core/ui-actions.ts +0 -164
  131. package/src/core/usage-ledger.ts +0 -95
  132. package/src/core/usage-values.ts +0 -38
  133. package/src/core/validation.ts +0 -19
  134. package/src/explain-item.ts +0 -75
  135. package/src/explain-presenter.ts +0 -64
  136. package/src/explain-screen.ts +0 -58
  137. package/src/features/ahead.ts +0 -25
  138. package/src/features/branches.ts +0 -99
  139. package/src/features/changed-files.ts +0 -105
  140. package/src/features/file-diff.ts +0 -80
  141. package/src/features/pickers/model-picker.ts +0 -42
  142. package/src/features/pickers/thinking-picker.ts +0 -31
  143. package/src/footer-host.ts +0 -19
  144. package/src/footer-interactions.ts +0 -235
  145. package/src/index.ts +0 -159
  146. package/src/notify.ts +0 -33
  147. package/src/open-with-command.ts +0 -34
  148. package/src/quota-controller.ts +0 -121
  149. package/src/quota-sources/clinepass.ts +0 -34
  150. package/src/quota-sources/codex/login.ts +0 -98
  151. package/src/quota-sources/codex.ts +0 -26
  152. package/src/quota-sources/contract.ts +0 -39
  153. package/src/quota-sources/opencode-go.ts +0 -33
  154. package/src/quota-sources/registry.ts +0 -12
  155. package/src/quota-sources/shared/bearer.ts +0 -25
  156. package/src/quota-sources/shared/window.ts +0 -33
  157. package/src/runtime.ts +0 -235
  158. package/src/settings-command.ts +0 -55
  159. package/src/settings-controller.ts +0 -45
  160. package/src/trackers.ts +0 -32
  161. package/src/ui/changed-files-view.ts +0 -192
  162. package/src/ui/explain-style.ts +0 -9
  163. package/src/ui/ext-segment.ts +0 -39
  164. package/src/ui/footer.ts +0 -131
  165. package/src/ui/glyphs.ts +0 -53
  166. package/src/ui/info-screen.ts +0 -182
  167. package/src/ui/layout.ts +0 -157
  168. package/src/ui/list-picker.ts +0 -200
  169. package/src/ui/live.ts +0 -59
  170. package/src/ui/palette.ts +0 -29
  171. package/src/ui/pointer.ts +0 -22
  172. package/src/ui/quota-animation.ts +0 -41
  173. package/src/ui/quota.ts +0 -166
  174. package/src/ui/render-options.ts +0 -15
  175. package/src/ui/segment-parts.ts +0 -80
  176. package/src/ui/segments.ts +0 -221
  177. package/src/ui/settings-screen.ts +0 -134
  178. package/src/ui/stable-list.ts +0 -74
package/CHANGELOG.md CHANGED
@@ -4,6 +4,29 @@ All notable changes to Footer Dock are listed here. The format follows [Keep a C
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.1.2] - 2026-10-20
8
+
9
+ ### Added
10
+
11
+ - The first time Footer Dock starts for a user who never chose an icon set, it says once what to do if the icons look like empty boxes (`/dock-glyphs`, or install a Nerd Font). It is remembered in the settings file as `glyphHintShown`; a settings file that had to be ignored is never rewritten for this. The README now says in the Install section that the icons need a Nerd Font. **New setting:** `glyphHintShown` (written automatically; you never need to set it). Versions before 0.1.2 reject a settings file that contains it, so after going back to 0.1.1 or 0.1.0 delete that line.
12
+ - The package manifest now names the launch video (`pi.video`), so the package page on pi.dev can play it. The video is hosted by GitHub as an attachment (the same one the README plays); it is not part of the npm package.
13
+
14
+ ### Fixed
15
+
16
+ - The cost screen's bar of dollars by category sat directly under the "This session" and "This month" lines; there is now a blank row between them, as on the other screens.
17
+
18
+ ## [0.1.1] - 2026-10-19
19
+
20
+ ### Changed
21
+
22
+ - The branch is shown from the first draw (Pi already knows it); the file and commit counts follow as soon as Git has been read.
23
+ - The extension now loads from one bundled JavaScript file (`dist/index.js`) instead of about 180 TypeScript modules that Pi had to transpile on every start and `/reload`. `/reload` went from about 1.3 s to under 0.1 s, and the footer first appears in about 0.3 to 0.8 s after start instead of 2.3 s (measured in an isolated Pi). The package is smaller (9 files, about 110 kB).
24
+
25
+ ### Fixed
26
+
27
+ - A folder that is not a Git repository no longer shows "Git unavailable": there is nothing to show, so the Git items are simply absent and the space is free. "Git unavailable" is kept for the real failures (Git missing, or a repository too large to read).
28
+ - Status lines that other extensions set with `ctx.ui.setStatus` were hidden once Footer Dock replaced Pi's footer. They are now shown on a last line, as Pi's own footer does (sorted by key, cut to the width; colours kept, other terminal escape sequences removed). Nothing changes for extensions: no registration is needed.
29
+
7
30
  ## [0.1.0] - 2026-10-19
8
31
 
9
32
  ### Added
package/README.md CHANGED
@@ -8,6 +8,10 @@
8
8
  [![Pi 1.2 and 1.3](https://img.shields.io/badge/Pi-1.2%20%7C%201.3-b4befe)](#requirements)
9
9
  [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen)](CONTRIBUTING.md)
10
10
 
11
+ https://github.com/user-attachments/assets/2f7eab93-210e-40e2-8736-d7cc64520ccc
12
+
13
+ _The 30-second tour, also [on YouTube](https://youtu.be/fkBa8wB2_YI)._
14
+
11
15
  **A two-row status footer for [Pi](https://pi.dev) that tells you what is going on.** Git, model, context, tokens, cache, speed, provider limits and cost, in two rows that fit your terminal, with an explanation behind every value.
12
16
 
13
17
  ![Footer Dock on a wide terminal](docs/images/footer-wide.png)
@@ -24,6 +28,8 @@ pi install npm:pi-footer-dock
24
28
 
25
29
  Then restart Pi (or run `/reload`). That is all. Full instructions, updating, removing and troubleshooting: **[SETUP.md](SETUP.md)**.
26
30
 
31
+ **Icons need a [Nerd Font](https://www.nerdfonts.com/) in your terminal.** If the icons show up as empty boxes, your font does not have them: run `/dock-glyphs` for plain symbols that every font has, or install a Nerd Font. Footer Dock mentions this once, the first time it starts.
32
+
27
33
  ## What the footer shows
28
34
 
29
35
  | Item | What it is | Click the icon | Click the text |
@@ -127,6 +133,10 @@ Other providers show no limits (`quota unsupported`); OpenAI-style APIs that sen
127
133
 
128
134
  The Git items watch the repository for changes. If a repository is too large to watch (thousands of directories), Footer Dock falls back to reading Git after each Pi action and says so in the item's explanation; it never shows a number it did not read.
129
135
 
136
+ ## Other extensions' status lines
137
+
138
+ Extensions that show a status with Pi's `setStatus` keep working: Footer Dock shows those texts on one extra line at the bottom, exactly where Pi's own footer would, and the line is absent while nothing sets a status. Extensions that want proper places, settings and explanations register with Footer Dock instead (next section).
139
+
130
140
  ## For other extensions
131
141
 
132
142
  Extensions can have Footer Dock manage their footer items, settings and explanations, and Footer Dock needs to know nothing about them: see **[docs/extending-footer-dock.md](docs/extending-footer-dock.md)**.