beadcyte 0.4.0

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 (108) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/LICENSE +661 -0
  3. package/README.md +386 -0
  4. package/THIRD_PARTY_NOTICES.md +56 -0
  5. package/bin/beadcyte.mjs +60 -0
  6. package/package.json +77 -0
  7. package/src/changelog-cli.mjs +105 -0
  8. package/src/changelog.mjs +196 -0
  9. package/src/cli.mjs +577 -0
  10. package/src/estimator.mjs +314 -0
  11. package/src/format.mjs +22 -0
  12. package/src/history-walk.mjs +170 -0
  13. package/src/index.mjs +5 -0
  14. package/src/mutate.mjs +193 -0
  15. package/src/projects.mjs +120 -0
  16. package/src/provenance.mjs +75 -0
  17. package/src/review-hours.mjs +117 -0
  18. package/src/roster-path.mjs +24 -0
  19. package/src/scheduler.mjs +424 -0
  20. package/src/serve.mjs +411 -0
  21. package/src/server-state.mjs +105 -0
  22. package/src/ship.mjs +178 -0
  23. package/src/stage-waits.mjs +69 -0
  24. package/src/start.mjs +111 -0
  25. package/src/stop.mjs +66 -0
  26. package/src/velocity.mjs +209 -0
  27. package/src/web/App.vue +691 -0
  28. package/src/web/app.css +54 -0
  29. package/src/web/assets/favicon.svg +12 -0
  30. package/src/web/avatar.ts +53 -0
  31. package/src/web/bead-detail.ts +240 -0
  32. package/src/web/changelog-view.ts +41 -0
  33. package/src/web/components/BeadDrawer.vue +1883 -0
  34. package/src/web/components/BeadSubGraph.vue +326 -0
  35. package/src/web/components/BeadSubGraphOverlay.vue +192 -0
  36. package/src/web/components/BeadTooltip.vue +516 -0
  37. package/src/web/components/BeadcyteMark.vue +64 -0
  38. package/src/web/components/BeadsGantt.vue +2125 -0
  39. package/src/web/components/BeadsGrid.vue +468 -0
  40. package/src/web/components/BeadsIncytes.vue +567 -0
  41. package/src/web/components/BeadsMine.vue +325 -0
  42. package/src/web/components/BeadsTable.vue +335 -0
  43. package/src/web/components/ChangelogOverlay.vue +198 -0
  44. package/src/web/components/ContextMenu.vue +386 -0
  45. package/src/web/components/ControlsPanel.vue +476 -0
  46. package/src/web/components/CostTrend.vue +206 -0
  47. package/src/web/components/FilterPopover.vue +245 -0
  48. package/src/web/components/GroupProgress.vue +274 -0
  49. package/src/web/components/LoadMeter.vue +144 -0
  50. package/src/web/components/MineRow.vue +28 -0
  51. package/src/web/components/OptionsMenu.vue +825 -0
  52. package/src/web/components/PriorityChip.vue +105 -0
  53. package/src/web/components/ScoreStrip.vue +131 -0
  54. package/src/web/components/SearchPalette.vue +210 -0
  55. package/src/web/components/ShipTrend.vue +510 -0
  56. package/src/web/components/ShortcutsOverlay.vue +164 -0
  57. package/src/web/components/Term.vue +177 -0
  58. package/src/web/components/Toast.vue +50 -0
  59. package/src/web/components/TriageMeters.vue +426 -0
  60. package/src/web/components/TypeChip.vue +96 -0
  61. package/src/web/components/Walkthrough.vue +209 -0
  62. package/src/web/components/WhatIfPanel.vue +206 -0
  63. package/src/web/components/WipBullets.vue +191 -0
  64. package/src/web/components/filter-option.ts +9 -0
  65. package/src/web/composables/url-codec.ts +136 -0
  66. package/src/web/composables/useBeadTooltip.ts +148 -0
  67. package/src/web/composables/useKeyboard.ts +97 -0
  68. package/src/web/composables/useLiveRefresh.ts +69 -0
  69. package/src/web/composables/useTheme.ts +125 -0
  70. package/src/web/composables/useUrlState.ts +208 -0
  71. package/src/web/controls-scope.ts +83 -0
  72. package/src/web/cost.ts +251 -0
  73. package/src/web/dep-headings.ts +62 -0
  74. package/src/web/economics.ts +440 -0
  75. package/src/web/env.d.ts +85 -0
  76. package/src/web/frontier.ts +208 -0
  77. package/src/web/gantt-viewport.ts +99 -0
  78. package/src/web/highlights.ts +124 -0
  79. package/src/web/index.html +46 -0
  80. package/src/web/insights.ts +107 -0
  81. package/src/web/keybindings.ts +200 -0
  82. package/src/web/load-meter.ts +72 -0
  83. package/src/web/main.ts +20 -0
  84. package/src/web/markdown.ts +14 -0
  85. package/src/web/mine.ts +137 -0
  86. package/src/web/mutations.ts +21 -0
  87. package/src/web/person.ts +102 -0
  88. package/src/web/projects-text.ts +15 -0
  89. package/src/web/projects.ts +188 -0
  90. package/src/web/refresh.ts +47 -0
  91. package/src/web/search.ts +50 -0
  92. package/src/web/shortcuts.ts +113 -0
  93. package/src/web/status-filter.ts +48 -0
  94. package/src/web/store.ts +1378 -0
  95. package/src/web/style-audit.mjs +346 -0
  96. package/src/web/styles-alt.css +111 -0
  97. package/src/web/styles-ported.css +270 -0
  98. package/src/web/subgraph.ts +362 -0
  99. package/src/web/table.ts +201 -0
  100. package/src/web/theme.ts +88 -0
  101. package/src/web/tokens.css +168 -0
  102. package/src/web/triage.ts +914 -0
  103. package/src/web/view-model.ts +717 -0
  104. package/src/web/walkthrough.ts +133 -0
  105. package/src/web/watchlist.ts +47 -0
  106. package/src/web/whatif.ts +291 -0
  107. package/src/web/window.ts +73 -0
  108. package/src/web/wip.ts +83 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,73 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ **This file is generated — do not edit it.** Run `beadcyte changelog` to
9
+ regenerate, and `beadcyte changelog --check` to verify it is current. The tracker
10
+ is the source of truth; this is a projection of it.
11
+
12
+ An entry appears here when a closed bead carries ship evidence
13
+ (`metadata.ship.mr_url` or `metadata.ship.commit`), so administrative
14
+ closes do not. Spikes, `upstream:` bugs filed against dependencies, chores
15
+ and epics are left out: they are about the work rather than about what you
16
+ received. Releases are cut by git tag — anything closed since the last tag is
17
+ Unreleased.
18
+
19
+ ## [v0.4.0] - 2026-09-05
20
+
21
+ ### Added
22
+
23
+ - Cost trajectory: projected seat hours and tokens per week from economics, beside the ship trend (`bp-0z5`)
24
+ - Frontier view: per person, what becomes ready and lands over the coming weeks, with confirmable next-assignment proposals (`bp-wfe`)
25
+ - Confirm/apply: write a confirmed change set to bd through the mutate endpoint (`bp-2fq`)
26
+ - What-if plan: a change set (reassign, reprioritise, add an idea, move a cap) re-scheduled and diffed against the current plan (`bp-q56`)
27
+ - Stage-wait economics: record filed, assigned, first MR, first QA, merged; derive what history already holds (`bp-7c9`)
28
+ - Gantt: draw wait stages dulled and truncated, work to scale, landing date honest (`bp-6cg`)
29
+ - Two-clock scheduler: pack work within a day by observed capacity; add per-stage wait from past medians (`bp-m0g`)
30
+ - Move the allocation bars (calibration band) off the main interface into incytes (`bp-dgq`)
31
+ - Per-person view inside incytes: roster, recent closes, current and likely-next work (`bp-67g.43`)
32
+ - Horizontal scroll for the gantt chart (`bp-c6q`)
33
+ - First-run walkthrough, once the per-field explanations exist (`bp-67g.48`)
34
+ - Changelog in the app: header link, in-app viewer, and a link out when the repo is public (`bp-67g.46`)
35
+ - Keyboard shortcuts, and a ? overlay generated from the same table (`bp-67g.45`)
36
+ - Add a table view: dense, sortable rows as a fourth view (`bp-67g.44`)
37
+ - Explain the drawer's derived numbers on hover (`bp-67g.47`)
38
+ - Drawer subgraph: hover a node to see what the bead actually is (`bp-67g.42`)
39
+ - Gantt tooltip: stop covering the data, and add triage score + time spent (`bp-67g.41`)
40
+ - Calibration band: draw WIP against calibrated cap as bullet rows, with the overflow at real length (`bp-67g.29`)
41
+ - Drawer: place the triage score in its population instead of printing a bare percentage (`bp-67g.28`)
42
+ - Subgraph toggle on a child bead: this bead's neighbourhood vs. the whole epic (`bp-67g.60`)
43
+ - Twelve named styles: eight ported editor palettes plus a High Contrast original (`bp-kkf`)
44
+ - Mine view and MINE quick filters: one click to my ready work and my work in review (`bp-egy`)
45
+ - Gantt: subtle full-row hover highlight so the pointer lines up with the bead's id and title (`bp-6v3`)
46
+ - Gantt tooltip: pin toggle to watch or unwatch the bead (`bp-9c9`)
47
+ - beadcyte start runs the server in the background and exits; add beadcyte stop (`bp-1x4`)
48
+
49
+ ### Fixed
50
+
51
+ - Changelog: tag dates with a local offset are compared to UTC closes as strings, so beads closed hours before a tag land in Unreleased (`bp-epe`)
52
+ - What-if panel cannot be closed after a confirm: the report keeps it mounted and the X only clears the open flag (`bp-ufa.2`)
53
+ - Drawer deep links lost: URL-state writes dropped the bead hash (`bp-gr5`)
54
+ - style-audit: guard the chip inks, the label inks and every stylesheet the app loads (`bp-jak`)
55
+ - Header: watch badge left of the gear, same size as the gear, out of the ticking timer's way (`bp-2ym`)
56
+
57
+ ### Changed
58
+
59
+ - right-click quick actions — claim / defer / label / spec:ready (v1.5) (`bp-ocs`)
60
+ - Investigate sizing beads by completion time instead of whole-day blocks (`bp-vsr`)
61
+ - Delete src/web/__spike__/ once the bp-67g.16 survivors have shipped (`bp-67g.31`)
62
+ - Derive hours_in_review from bd history, out of the request path (`bp-67g.57`)
63
+ - Controls that don't apply to the active view still look live (incytes) (`bp-67g.36`)
64
+ - computeTriage is ~300ms in-browser on 579 beads and blocks the first drawer open (`bp-67g.25`)
65
+ - style-audit: colour-vision floor, with every palette re-placed to clear it (`bp-67g.26`)
66
+ - Remove the focus feature entirely: card target, Gantt row target, tooltip and drawer buttons, overlay, URL state (`bp-6tn`)
67
+ - Header: move the options gear to the right of the reload indicator (`bp-jmn`)
68
+ - Remove the bead URL template and its click-through (`bp-jxb`)
69
+ - Rename the CLI to beadcyte (bcyte for short) and publish the package unscoped, so npx beadcyte start works (`bp-0dm`)
70
+
71
+ ## [v0.3.0] - 2026-09-03
72
+
73
+ Nothing recorded as shipped yet.