Repository navigation
Flywheel v0.1.2
- test(core): count the inventory's porcelain reads at an injected seam, not through fsmonitor
- feat(desktop): build Flywheel on the published @highknow/design 0.1.0
- build(deps): update flywheel's Rust crates, including dirs 7
- build(deps): update flywheel's npm dependencies and clear the sidecar and desktop advisories
- feat: Tenure at tenure.highknow.ai, per-product billing, the company front page, Flywheel export, CI fixes
- feat(flywheel): import Flywheel's history under flywheel/
- Merge pull request #243 from HighKnow-ai/fix/subdirectory-project
- fix(core): a project registered at a subdirectory of its repository runs its Stories there
- Merge pull request #242 from HighKnow-ai/exit-test/move-day-1
- docs(exit-test): the attempt log names build b59876a and the window 2026-10-27 to 2026-11-09
- docs(exit-test): day 1 of attempt 1 moves to 2026-10-27, on the post-design-pass build
- Merge pull request #241 from HighKnow-ai/story/239
- feat: a shaping agent working between Rounds counts as an agent everywhere
- Merge pull request #240 from HighKnow-ai/story/212-final
- test(desktop): the review-and-Merge walk waits for a decided card to leave before the next step
- docs(design): the final critique of Epic #189, 27/40 with no P0 or P1
- fix(desktop): a folder that is not a git checkout offers another folder, not a red key field
- fix(desktop): a resize keeps the roster's dialogs; Start work is sentence case; Dismiss Round is red
- fix(desktop): the session feed takes the 1240px surface width
- fix(desktop): a Story column's Accept, Amend and Reject fit inside its card
- fix(desktop): reduced motion leaves self-handled transitions alone; dark Add a Task keeps the card
- fix(desktop): the Milestone header's count labels stay on one line at 900 px
- feat(desktop): cut-short text and exact values show in the one Tooltip, not title=
- refactor(desktop): every field label is the shadcn Label, and Register project is sentence case
- test(desktop): no browser test measures a web-font swap, and waits fit a loaded machine
- style(desktop): format packages/desktop/src with Prettier
- build(desktop): check packages/desktop/src with Prettier in CI
- refactor(desktop): delete the legacy stylesheets and fix the screen Stories' leftovers
- Merge pull request #238 from HighKnow-ai/story/235-shaping-launch-async
- Merge pull request #234 from HighKnow-ai/story/208
- fix(desktop): starting shaping or a roadmap Round never blocks other IPC while the spawn floor waits
- Merge pull request #225 from HighKnow-ai/story/200
- Merge pull request #231 from HighKnow-ai/story/207
- Merge pull request #237 from HighKnow-ai/story/204-followup-root
- Merge pull request #236 from HighKnow-ai/story/211
- docs: DESIGN.md's Fleet Tables names the strip's agent count
- feat(fleet): All agents counts agents with the strip's agentCount and labels ended runs on their own
- feat(desktop): the rail's All agents figure is the strip's agentCount
- fix(desktop): the agent station reads paths relative to the Story's worktree, as the feed does
- docs: Fleet Tables in DESIGN.md, ADR 0039 on Worktrees' select-all, and the #208 shots
- feat(fleet): All agents and Worktrees are Tables with headers, and reclaiming is one confirmed bulk action
- refactor(desktop): the rail's Register project… fails with the same toast as ⌘⇧O, and the inline-notice hook goes
- feat(desktop): the project rail raises where you are, folds to icons with ⌘B, and keeps Remove behind each project's menu
- test(desktop): the Merge confirm's layout defect becomes a passing check, with a 151-character Check command
- feat(desktop): the review card keeps Merge in reach, its confirm fits any Check, and a Merge says it landed
- feat(core): Re-run Checks reports each Check as it ends, as checks:progress
- Merge pull request #230 from HighKnow-ai/story/204
- Merge pull request #233 from HighKnow-ai/story/205
- refactor(shaping): ProposalDecision hands afterDecide the decision taken; the triage drawer's click-sniffing intent goes
- Merge pull request #229 from HighKnow-ai/story/201
- Merge pull request #228 from HighKnow-ai/story/199
- Merge pull request #232 from HighKnow-ai/story/220-async-commands
- feat(shaping): fade the Story strip's overflowing edge; DESIGN.md and after-shots for the one decision group
- feat(shaping): every Proposal is decided through one Accept, Amend and Reject Button Group
- Merge pull request #227 from HighKnow-ai/story/203
- Merge pull request #226 from HighKnow-ai/story/202
- fix(desktop): no IPC command runs git on the thread it is dispatched on; Merge and Reclaim take the Story's lock
- test(critique): open Move to Epic as the Combobox it now is
- docs: ADR 0032, DESIGN.md for the folded Roadmap and Write a Story, and the #201 shots
- feat(desktop): a big project's board opens on what needs you, and Write a Story picks with Comboboxes
- test(desktop): the top bar's fit is a passing assertion, not a known defect
- Merge pull request #224 from HighKnow-ai/story/210
- test(desktop): screen 12 reads the session's ending as text in the browser arm
- fix(desktop): a waiting card's age keeps the meta role now that #223 clears 4.5:1 on the attention tint
- Merge pull request #221 from HighKnow-ai/story/209
- docs: #205's after shots of the session feed
- docs(design): the Roster section says yellow is Waiting on you only, and shows #202 before and after
- feat(board): the roster reads at a glance: keys never wrap, Done Epics fold, one header grid, yellow only for Waiting on you
- feat(desktop): the top bar folds to fit a 900px window, the strip counts agents as live sessions, and a lamp lights with a rising glow
- test(desktop): the layout-defect walk asserts the missing-claude Alert sits under the andon strip at every size
- feat(desktop): first run, Register project, unreachable, orphans, the launch sheet and a missing claude on stock components
- fix(desktop): a path outside the worktree keeps its tail, not /Users
- docs: DESIGN.md names the leaving collapse, the kind map and the drawer's states; before and after shots for #203
- feat(desktop): every Proposal kind has a word, Accept and Reject say what they did, evidence paths read worktree-relative
- feat(desktop): Needs you sits on Card and Item, an answered item collapses out, and the column shows Skeleton, Empty and ReadError
- test(desktop): the permission rules Table holds its columns at every size, so #209's known-defect mark goes
- docs(design): Settings shots after #209, and the columns give the pattern the room
- feat(desktop): Settings on Card, Field, Radio Group, Table, Select and Switch, with a toast on every save
- docs: the Story view has no roster beside it (ADR 0035), and its DESIGN.md paragraph says what is built
- feat(desktop): the Story view clamps its title, acknowledges every action the same way, and never shows an empty list for a failed read
- fix(desktop): reset times in the app's English, "Ended 8h ago · usage limit", icon-only view toggle when narrow; the critique harness follows the new header
- feat(desktop): the session feed has one header, worktree-relative paths, a confirmed Stop and Discard, and a next step after a usage limit
- Merge pull request #223 from HighKnow-ai/fix/dark-meta-on-attention
- Merge pull request #222 from HighKnow-ai/story/206
- fix: dark meta text clears 4.5:1 on the attention tint
- Merge pull request #217 from HighKnow-ai/story/192-critique-everything
- feat(desktop): Deny in one slot on every request card, answer keys in Kbd, the pattern editor in a Popover, and the question card on Radio Group and Checkbox
- Merge pull request #219 from HighKnow-ai/story/215-tick-lock
- fix(desktop): no code path holds the board lock while git runs, so reads never stall
- docs: the critique's shots, every screen at 1440 x 900 in both schemes and the window's extremes in light
- docs: the October Milestone 4 critique, findings ranked P0 to P3, each with the Story that fixes it
- ci: run the layout-defect check over every critique screen in the browser job
- test(desktop): the critique harness captures every screen at four window sizes on stress data, and checks each render for layout defects
- Merge pull request #218 from HighKnow-ai/story/198-motion-foundation
- feat(desktop): one feedback vocabulary: toasts, a loading Button, ReadError, ConfirmDestructive, StoryKey and format
- feat(desktop): one duration per motion job, disclosures that grow, and reduced motion that keeps feedback
- build(desktop): install the shadcn components the screen Stories move onto
- Merge pull request #216 from HighKnow-ai/story/197-command-palette
- fix(palette): ⌘K and Search open the palette instead of crashing the app
- Merge pull request #214 from HighKnow-ai/story/195-no-flicker
- Merge pull request #213 from HighKnow-ai/story/196-highknow-tokens
- fix(desktop): a refetch never flickers: a live feed grows in place, events coalesce per window, a new head keeps its diff drawn
- docs: re-shoot the rail, board, Story view and review card before and after HighKnow's tokens
- test(desktop): the font check reads the woff2 through Uint8Array, so the renderer's typecheck needs no @types/node
- docs: record HighKnow's tokens, Public Sans and the full-colour mark (ADR 0021)
- feat(desktop): take HighKnow's tokens, Public Sans and the full-colour mark
- Merge pull request #194 from HighKnow-ai/story/190-session-feed
- fix(session): the feed draws every event once, an ended session's clock is its duration, and CLI notices stay in View raw
- Merge pull request #193 from HighKnow-ai/story/191-rail-height
- fix(desktop): the project rail fills the window at every size; only the main pane scrolls
- Merge pull request #188 from HighKnow-ai/exit-test/attempt-1-log
- docs: declare exit-test attempt 1, starting 2026-10-26, on Flywheel and technical-presales
- Merge pull request #187 from HighKnow-ai/story/169-m4-exit-test
- test(sidecar): stop and shutdown tests wait for a signalled grandchild to be gone, wait for the interrupt they assert, and time the empty shutdown from a booted sidecar
- docs: #168's board screens renumbered 116-119 so 75-78 name only Needs you; the critique table lists 83, 84 and 87 and runs in number order
- test(desktop): the browser arm walks roster, Needs you, the triage drawer, review and Merge
- test(uat): UAT 19 walks a Story from Ready to Merged through Needs you, triage, Request changes, Decisions and Merge
- feat(needs-you): a judged-on duplicate names the change it repeats, as the triage drawer's card does
- Merge pull request #186 from HighKnow-ai/story/166-new-story-criteria
- test: UAT 18 files its New Stories with criteria and makes the accepted one Ready; #165's tests give their New Stories a criterion
- test: #163's judged-on fixture files its New Story with a criterion; #166's screens re-shot on main
- feat: a New Story from execution carries its criteria, and Make Ready moves it to Ready
- Merge pull request #184 from HighKnow-ai/story/164-adr-flags
- test: the 0013 migration test pins 0013 by position, not the list's length
- docs: #164's critique screens 104-106 re-shot on main with #157's review card
- docs: ADR 0016, ADR decisions and flags in DESIGN.md, GLOSSARY.md and spec §8, critique screens 104-106
- feat(review): flag ADR wording edits, number clashes and missing supersession lines; Not an ADR and Wrong decision hold Merge and become review points
- Merge pull request #185 from HighKnow-ai/story/165-duplicate-proposals
- test(core): the packet's decided-Proposals check reads section 7, not the standing instructions that name it
- docs: Duplicate Proposal in the glossary, the flag in DESIGN.md, spec §4.2 and §5 amended, critique screen 108
- feat(desktop): the triage card flags a duplicate with what it repeats and who filed it
- feat(core): flag duplicate Proposals; accepting the original closes them and the filing Story's next packet hears it
- Merge pull request #179 from HighKnow-ai/story/157-review-card
- Merge pull request #183 from HighKnow-ai/story/163-judged-on-changes
- docs: #157's review screens re-shot on main with Request changes and Rebase needed
- refactor: the judged-on card decides through the shared ProposalDecision, its edit worded Edit
- docs: #157's critique screens move to 88-89, after #181's screen 87, re-shot on main with the Decisions section
- docs: critique screens re-shot on main with Needs you; the fixture hands FLY-3 off with one Task open for screen 87
- docs: ADR 0011 for the diff tints, Check objection and Re-run Checks in GLOSSARY.md, the review card's new parts in DESIGN.md, critique screens 87-88 and 71-73 re-shot
- feat: the review card shows Check objections beside their Checks, the Tasks not done as a warning, each changed file's diff, and Re-run Checks
- feat: review_file_patch and story_checks_rerun commands, the handoff tool schema's check_objections, and the packet tells the agent to use them
- feat: the hand-off takes Check objections, the review read sorts failing Checks and lists the diff's files, and Re-run Checks records a run per Check
- docs: re-shoot critique screens 100 and 101 on main's board
- fix: the roster stops counting a criterion whose run a judged-on change marked stale; ADR 0015, screens 100 and 101
- docs: ADR 0011, judged-on change in GLOSSARY and DESIGN.md, spec amended, critique screens 79 and 80
- feat: a judged-on change's card in Needs you: before and after, Accept, Edit, Reject in place
- feat: needs_you lists each pending judged-on change as its own item, ranked with Review
- feat: an accepted Amend criterion rewrites it, clears its acceptance and marks its last run stale
- Merge pull request #182 from HighKnow-ai/story/162-proposals-drawer
- test: the drawer's Needs-you fake carries #158's conflicts
- docs: #162's critique screens move to 96-98, re-shot on main's roster rows
- docs: Triage in the glossary, the Triage Drawer in DESIGN.md, spec §2 and §5 amended, critique screens 87 to 89
- feat(desktop): triage Proposals in a drawer from the Needs-you row and an Epic's n Proposals
- feat(core): proposals awaiting triage, one Needs-you row and each Epic row's count
- Merge pull request #180 from HighKnow-ai/story/158-request-changes
- docs: #158's critique screens take the reserved 92-93
- Merge pull request #181 from HighKnow-ai/story/159-roster-rows
- docs: #158's critique screens move to 87-88, after #161's 85-86, re-shot on main
- feat: Needs you labels a conflicting Review item Rebase needed, naming the paths
- docs: Request changes and Rebase needed in the glossary, DESIGN.md and spec §8, critique screens 79-80
- feat: Request changes and Rebase needed on the review card
- feat: story_request_changes moves the Story and starts its fresh session under one lock; a failed launch reads Stopped
- feat: request_changes closes the review with the comments, and the packet carries them; a conflict reads Rebase needed
- docs: ADR 0012 and screen 87, after #178 took ADR 0010 and screens 85-86
- docs: ADR 0010, the roster in DESIGN.md and GLOSSARY.md, spec §7 shipped, critique screens re-shot
- test(critique): screens 83-85 find the roster's own row, and 31 the Epic card's own Continue shaping
- feat(board): roster rows draw the core's one read, tinted when they need you
- feat(core): the roster's rows from one read, and an Epic's shaping marker
- Merge pull request #178 from HighKnow-ai/story/161-decisions
- docs: ADR 0010, the review record and where bar lines live; glossary, design, spec and screens 85-86
- feat(desktop): the review card's Decisions section, each new ADR with Keep
- feat(core): the review's Decisions read, and Merge links new ADRs to the Story
- feat(core): the hand-off carries each new ADR's bar lines, stored on its review
- Merge pull request #177 from HighKnow-ai/story/176-exit-test-script
- Merge pull request #175 from HighKnow-ai/story/156-needs-you
- ci: run the exit-test script's tests in the Offline UAT job
- docs: the exit-test attempt log template
- feat: drop-backs.mjs lists a date range's interactive claude sessions on the counted projects
- test: fixture transcripts and a fixture DB for the exit-test drop-back count
- fix: the board's tests stub the Needs-you list and the agent-event subscription
- docs: re-shoot Needs you's critique screens as 75 to 78 on main's board
- fix: Needs you after the finish review: one filled action, compact requests, focus kept
- docs: Needs you in DESIGN.md, spec §2 amended, critique screens 71 to 74
- feat: Needs you, a 400px column beside the roster with each item's action in place
- feat: needs_you_list, the command the Needs-you column and the sidebar figure read
- feat: needs_you, the project's ranked list of what waits on the developer
- Merge pull request #171 from HighKnow-ai/story/168-create-move
- Merge pull request #174 from HighKnow-ai/story/160-propose-tool
- test: a fresh database migrates through 0011 then 0012
- docs: #168's critique screens move to 75-78, after #155's review screens 71-74, re-shot on main
- docs: #168's critique screens move to 71-74, after #167's screen 70, re-shot on the rebased board
- docs: critique screens 70-73 for + Story, + Epic and Move to Epic, 01/03/17 re-shot, and the controls in DESIGN.md
- feat: + Story on each Epic card, + Epic in the Milestone header, Move to Epic in the Story view
- feat: story_move, the IPC command behind Move to Epic
- feat: move_story_to_epic, the developer's re-parenting of a Story to another open Epic
- test: a Story spawn pre-approves the Proposal tools; keep the handler roster sorted
- test: offline UAT 18, a Story files, is capped and withdraws through the real sidecar
- feat: route a Story's Proposal tools, read them as Proposed, list them on the Story view
- feat: the board server lists propose and proposal_withdraw to a Story session only
- feat: story_proposal_tool, propose and proposal_withdraw for a running Story
Opening Flywheel for the first time (this build is not signed)
Flywheel is not signed with an Apple Developer ID and is not notarized, so macOS blocks the app the first time you open it.
If you downloaded the .dmg in a browser, macOS says that "Flywheel.app is damaged and can't be opened" and offers only Move to Trash and Cancel. The app is not damaged. There is no Open button, so right-click and Open does not help.
To open it:
-
Drag
Flywheel.appfrom the.dmginto/Applications. -
In Terminal, remove the quarantine mark that your browser put on the download:
xattr -cr /Applications/Flywheel.app
-
Open Flywheel as usual.
Only do this for a build you downloaded from this repository's releases page. The command removes a macOS safety check for that one app.
This was observed on one Mac (macOS 26). Other macOS versions may word the dialog differently.