Releases: aryrabelo/bora-herdr-ada
Release list
v0.46.9
Synced from herdr
- Merged upstream
herdrdev/herdrthrough8a6d6973(47 commits, the 0.8.x line before the client-shell refactor) into the fork. - Merged upstream
herdrdev/herdrthrough68c7b78e(herdr 0.9.0): the TUI now runs in the client (src/client/shell), with saved SSH machines (bora machine), a stable client endpoint contract, multi-client tab views and the newMuseagent detection. The fork's server/API/CLI surface is unchanged (bora channel *,workspace set-group/--group,pane report-result,bora events,bora mcp serve,[agents.commands], when-idle prompts,idle_seconds).bora pane listnow accepts--json(output was already JSON). The Folders sidebar view is back on the new client shell (see Added); the chat view (prefix+i), plugincontextsentries in right-click menus and the timed sidebar hide are not on it yet. Wire protocol 25; omp integration asset 11.
Added
bora agent --new "<prompt>"turns your current directory into a live agent session in one command: it creates a workspace there without stealing focus, starts the configured agent, delivers the prompt and prints one JSON result.bora agent <name> prompt "<text>"is get-or-create, so the name is the idempotency key: an existing agent just gets the prompt, a missing one is created with that name. The agent kind resolves--kind, then the new[agents] defaultconfig key, thenomp.bora eventsstreams server events as JSON lines, one flushed line per event, so a piped consumer sees each event as it happens.--subscribe <name>picks event kinds (all parameterless kinds by default),--pane <id>unlocks the pane-scoped kinds,--limit <n>exits after n events, and--session <name>streams from a named session. (#19)channel.messageis subscribable:bora events --subscribe channel.message(and the default set) streams channel traffic, so you no longer need onechannel tail --followprocess per room. (#25)bora pane listreports each pane'sforeground_process(e.g.omp), andpane process-inforesolves the pane'stty, so a second round trip to learn what is running in a pane is no longer needed. (#18)- Folders sidebar view (
ui.view_mode = "folders", or cycle Flat -> Folders -> Repo withprefix+shift+v): a flat list grouped only by the folders you assign, with no repo auto-grouping, one row per workspace and a clickable status dot per pane on that row. Put a workspace in a folder withbora workspace set-group, the workspace context menu (New group, Move to group, Rename group, Remove from group) or by dragging its row onto a folder; folder headers offer Rename group, Collapse/Expand, Ungroup all and New workspace in group. Folders nest asa/bpaths, and a new workspace (keys.new_workspaceor New workspace in group) inherits the folder of the focused one. (#30, #32) - Folders rows render your
[ui.sidebar.spaces].rowstemplates andbora workspace report-metadatatokens like Flat and Repo do;ui.hide_pane_badgeshides the dot strip. Working panes show an animated spinner dot in every view mode. (#31, #32) - The sidebar header shows how many panes are waiting for you: an aggregate
N waitingcounter, yellow while finished-but-unseen panes wait, red the moment one is blocked. A background pane that produces no output forui.idle_attention_seconds(default 300,0disables) is flagged the same way, so a shell command that ends or an agent that goes quiet shows up even without an agent-state transition. (#31) - Colliding channel names take ordinals at join time (
@revbecomes@rev-1and@rev-2), derived from join order so a restart mints the same names; the bare colliding name is still refused as ambiguous rather than broadcast. (#16) - "Copy reference" in the pane context menu copies
<workspace label> <pane_id>(e.g.orquestra wB4:p1) to the clipboard, ready to paste into another agent's prompt. (#36)
Changed
bora channel senddelivers to agent members immediately, even when the recipient is mid-turn, and the receipt saysdelivered; two agents in one channel now hear each other during a turn. The old hold-until-idle behaviour is opt-in with--when-idle(when_idle: trueon the wire), reported asdeferredwith the queue position. The channel briefing travels in the same delivery mode as the message, so an unbriefed busy pane reads the protocol before its first message. (#20)- Channel messages addressed to you (
to_human) arrive passively: nothing opens over the pane you are looking at and the active workspace never switches. The channel's own sidebar row carries achat_unreadpreview token (<sender>: <text>) you can place in[ui.sidebar.spaces].rows. This replaces theui.chat_open_on_mentionauto-open. (#16) - A channel member is listed and addressed by its workspace label (the name the sidebar shows) before its self-reported name, assigned name or detected kind, so the name you see is the name that resolves. A
#-prefixed label is refused as an identity. (#16) - Installers and release manifests moved from
website/todistribution/. Install withcurl -fsSL https://raw.githubusercontent.com/aryrabelo/bora-herdr-ada/main/distribution/install.sh | sh;bora updatereadsdistribution/latest.jsonanddistribution/preview.json. - A visible pane receiving heavy output costs slightly more CPU than on 0.45.5 (measured +0.9 points of one core at 30 lines/s, 2.0% → 2.9% total across server and client), because herdr 0.9.0 composes pane surfaces on the server for the new client shell. Hidden panes are unchanged. Tracked for profiling in the fork.
Fixed
- omp panes no longer sit
workingfor hours after a dropped idle report. The omp integration retries undelivered state reports and re-sends its state everyHERDR_OMP_HEARTBEAT_MS(default 15000,0disables); on the server, a hook-owned pane whose own OSC title has read idle for 5 seconds becomes idle, andbora agent explainreports it asfallback_reason: "osc_title_idle_reconciled_stale_hook". That title evidence now also survives a live handoff. Runbora integration install ompafter updating to get the extension side. (#37, #38) - An
@nickthat does not resolve failsbora channel sendwithchannel_nick_unknownorchannel_nick_ambiguousinstead of silently broadcasting to every member of the channel. (#16) - Linked worktree rows can be dragged, and dropped onto, in Flat and Folders views; Repo view keeps moving a worktree with its siblings as one block. (#34)
- Changing a workspace's group from the client (context menu, drag,
workspace set-group) no longer fails with "Action unavailable". (#35) - Creating a worktree no longer risks wiping the repo's
.git/info/exclude: an unreadable file is left alone, and the.context/line is appended instead of rewriting the file, so two concurrent creates cannot drop each other's lines. (#21) - Renaming a workspace to an empty string clears the custom label and the automatic name takes over, instead of leaving the row blank everywhere.
- Windows zip installs no longer fail the package completeness check: the package ships
bora.exe, the name the installer activates. (#27)
Removed
- The Project view (
ui.view_mode = "project"), with theproject.*API verbs and MCP tools,workspace.set_project, theprojects.ymlstore and the[ui.sidebar.project]config keys.ui.view_modenow cyclesflat->folders->repo. Edit your config before updating:view_mode = "project"is an unknown value now, and an unknown value fails the whole config document, so every other key would fall back to its default. (#22) - The right panel (Changes, Checks, Issues and PRs tabs, PR badges) and its
[github],[checks]and[flow]polling config sections; the sandbox orchestrator; the shared todo and scratchpad stores with theirtodo.*/scratchpad.*verbs, events and MCP tools; and per-pane channel scope (channel join --scope-write/--scope-read).prefix+shift+bis free again (it was double-booked with the right panel toggle). The Create worktree modal drops its GitHub and Branch tabs. (#24) .bora.tomland.bora/settings.tomlsupport: the per-repo command menu ([[commands]]), worktree provisioning (setup script, file copy/symlink,[ports]allocation,bora worktree create --no-setupand thesetupfield in its--json),bora workspace run, and the per-repo[flow]override. The global[flow]inconfig.tomlis untouched. This lives on as thearyrabelo/bora-local-commandsplugin. (#21)ui.chat_open_on_mention, superseded by passiveto_humandelivery.
Breaking Changes
ui.view_mode = "project"is rejected at startup and takes every other config key down with it; change it toflat,foldersorrepobefore updating.- Removed API verbs:
project.*,workspace.set_project,todo.*,scratchpad.*,workspace.run, and thechannel.joinscope parameters. Their MCP tools are gone with them. bora worktree create --no-setupand thesetupfield of its--jsonoutput are gone;.bora.toml/.bora/settings.tomlare no longer read.
Preview build 2026-09-10-d3a2bde6c945
Preview build 2026-09-10-d3a2bde6c945
Built from d3a2bde6c945 on master.
Base stable: v0.46.8
Compare: f6d8f35...d3a2bde
Added
- Copy pane reference from the pane context menu (#36)
- Folder context menu, nested folders and group inheritance on new workspaces (#32)
- Re-port sidebar row templates and pane attention onto the client shell (#31)
- Re-port folders view and pane dots onto the client shell (#30)
Fixed
- Carry osc title evidence across a live handoff (#38)
- Stop a dropped idle report from leaving a pane Working forever (#37)
- Advertise workspace.set_group as a client_shell endpoint method (#35)
- Allow linked worktree drag in Flat/Folders view modes (#34)
- Install copies the release binary instead of symlinking into the shared target dir
Maintenance
- Record the hook-title reconcile contract, copy reference, and worktree build traps
- Name the gate allowlists as sync conflict surface (#33)
- Record the shared-target-dir clobber and the copy-based install
- Publish preview documentation
Preview build 2026-09-09-f6d8f35b29c2
Preview build 2026-09-09-f6d8f35b29c2
Built from f6d8f35b29c2 on master.
Base stable: v0.46.0
Compare: 8bdafea...f6d8f35
Added
- Make channel.message subscribable (#25)
- Deliver channel sends immediately with --when-idle opt-in
- Add bora events verb streaming session events as json lines
- Populate tty and foreground process on pane list
- Waiting counter and quiet-pane promotion for background terminals
- Rename a folder group from its right-click menu
- Brighter navigate-selection background on catppuccin
- Folders rows are one line - name and pane dots share the row
- Folders view - flat list grouped only by your visual_group folders
- Add muse agent with generic Pick blocked detection (herdrdev#2489)
- Add per-mode theme overrides (herdrdev#2324)
Fixed
- Resolve the release binary from cargo's configured target dir
- Package the windows zip as bora.exe, matching the installer
- Address review findings on the upstream merge
- Lint the linux-gated tests and let the generated-path guard see renames
- Brief unbriefed working panes in the message's delivery mode
- Distinguish unseen plain shells in pane dots
- Shape events error output and close pane-flag test blind spot
- Folders view fills the active marker row with the lighter active-row background
- Launch powershell agent shims with arguments (herdrdev#3455)
- Folders view assigns group on drop into folder body
- Enable mouse reporting over openssh (herdrdev#3461)
- Folders view drags like flat — one row per grab, slots in every gap
- Detect pi bundled cli (herdrdev#3207)
- Make test-one work on Windows (herdrdev#3442)
- Detect copilot background agents as working (herdrdev#3403)
- Encode antigravity windows hook command (herdrdev#3352)
- Report the foreground group leader's cwd, not a descendant's (herdrdev#3386)
- Reject oversized git ref files in workspace status reads (herdrdev#3373)
- Detect claude mcp elicitation dialogs as blocked (herdrdev#3383)
- Show project display names in assembly menus
- Handle associated text on special keys (herdrdev#3350)
- Keep OSC evidence through first agent acquisition (herdrdev#3326)
- Trust worktree repositories per request (herdrdev#3344)
- Ignore cursor events in claude hooks (herdrdev#3342)
- Ignore codex weak blockers above the current prompt (herdrdev#3339)
- Require explicit workspace group close (herdrdev#3206)
- Accept reordered agent report arguments (herdrdev#2928)
- Route osc 8 file links to plugin handlers (herdrdev#2942)
- Keep wayland clipboard copies responsive (herdrdev#3015)
- Report agent explain file errors as json (herdrdev#3023)
- Refresh shared agent manifest caches (herdrdev#3204)
- Batch kitty image row lifecycle (herdrdev#3166)
- Serve a google-eligible favicon
- Keep omp panes working through scheduled continuations (herdrdev#3122)
- Start lifecycle subscriptions from live events (herdrdev#3134)
- Add local cmd installer bootstrap (herdrdev#3133)
- Preserve non-us shifted text (herdrdev#3055)
- Clear Windows Terminal identity in panes (herdrdev#3127)
- Copy selections before delayed mouse release (herdrdev#3102)
- Preserve focus after background worktree removal (herdrdev#3099)
- Publish Claude MCP detection manifest
- Match generated characters in prefix bindings (herdrdev#3085)
- Keep background Claude MCP tasks working (herdrdev#3094)
- Preserve multiline paste in terminal attach (herdrdev#3056)
- Isolate oversized kitty images (herdrdev#3035)
Maintenance
- Install website deps with a frozen lockfile in preview publish
- Restore the publish job's bun install for the preview website build
- Merge upstream herdr 0.9.0 (68c7b78), theirs on the client shell (stage 2) (#29)
- Add the fork identity to the maintainer list
- Separate the two gitignore blocks
- Merge origin/main into agente/ag-273
- Require a prior-art sweep before building, and record the plugin-trial traps (#26)
- Follow the upstream distribution/ and scripts/docs/ moves in fork tooling
- Merge origin/main into agente/ag-273
- Keep the fork's CI-owned preview and version snapshots
- Merge upstream herdr through 8a6d697 (0.8.x)
- Remove the sandbox orchestrator, todo/scratchpad stores, right panel and channel scope (#24)
- Bump nixpkgs so crate fetches use static.crates.io (#23)
- Move .bora.toml commands and .bora/settings.toml provisioning to the bora-local-commands plugin (#21)
- Retire the project view before the upstream sync (#22)
- Add binding rule for worktree install symlink hazard
- Isolate disk-touching channel tests behind IsolatedDirs
- Prove the pane without subscribe guard dies under mutation
- Refresh events ledger after rebase onto 0.45.37 main
- Record events leaf gate evidence
- Record live-handoff as the post-install swap for a running server
- Separate website presentation from runtime
- Trigger private website deploys
- Publish preview documentation
- Stabilize headless metadata expiry check (herdrdev#3453)
- Cover three-way channel join collision ordinals (ceo-bora#34) (#17)
- Remove .beads
- Remove beads issue-tracker annotations from agent surfaces
- Trigger ai reviews and add maintainer
- Publish preview documentation
- Restrict release workflows to canonical repository
- Move changelog curation to release prep
- Document macos keychain launch context
- Keep kennel authority private
- Pin kennel maintainer identities
Other
Preview build 2026-09-09-8fe878f9b0e3
Preview build 2026-09-09-8fe878f9b0e3
Built from 8fe878f9b0e3 on master.
Base stable: v0.46.0
Compare: 8bdafea...8fe878f
Added
- Make channel.message subscribable (#25)
- Deliver channel sends immediately with --when-idle opt-in
- Add bora events verb streaming session events as json lines
- Populate tty and foreground process on pane list
- Waiting counter and quiet-pane promotion for background terminals
- Rename a folder group from its right-click menu
- Brighter navigate-selection background on catppuccin
- Folders rows are one line - name and pane dots share the row
- Folders view - flat list grouped only by your visual_group folders
- Add muse agent with generic Pick blocked detection (herdrdev#2489)
- Add per-mode theme overrides (herdrdev#2324)
Fixed
- Resolve the release binary from cargo's configured target dir
- Package the windows zip as bora.exe, matching the installer
- Address review findings on the upstream merge
- Lint the linux-gated tests and let the generated-path guard see renames
- Brief unbriefed working panes in the message's delivery mode
- Distinguish unseen plain shells in pane dots
- Shape events error output and close pane-flag test blind spot
- Folders view fills the active marker row with the lighter active-row background
- Launch powershell agent shims with arguments (herdrdev#3455)
- Folders view assigns group on drop into folder body
- Enable mouse reporting over openssh (herdrdev#3461)
- Folders view drags like flat — one row per grab, slots in every gap
- Detect pi bundled cli (herdrdev#3207)
- Make test-one work on Windows (herdrdev#3442)
- Detect copilot background agents as working (herdrdev#3403)
- Encode antigravity windows hook command (herdrdev#3352)
- Report the foreground group leader's cwd, not a descendant's (herdrdev#3386)
- Reject oversized git ref files in workspace status reads (herdrdev#3373)
- Detect claude mcp elicitation dialogs as blocked (herdrdev#3383)
- Show project display names in assembly menus
- Handle associated text on special keys (herdrdev#3350)
- Keep OSC evidence through first agent acquisition (herdrdev#3326)
- Trust worktree repositories per request (herdrdev#3344)
- Ignore cursor events in claude hooks (herdrdev#3342)
- Ignore codex weak blockers above the current prompt (herdrdev#3339)
- Require explicit workspace group close (herdrdev#3206)
- Accept reordered agent report arguments (herdrdev#2928)
- Route osc 8 file links to plugin handlers (herdrdev#2942)
- Keep wayland clipboard copies responsive (herdrdev#3015)
- Report agent explain file errors as json (herdrdev#3023)
- Refresh shared agent manifest caches (herdrdev#3204)
- Batch kitty image row lifecycle (herdrdev#3166)
- Serve a google-eligible favicon
- Keep omp panes working through scheduled continuations (herdrdev#3122)
- Start lifecycle subscriptions from live events (herdrdev#3134)
- Add local cmd installer bootstrap (herdrdev#3133)
- Preserve non-us shifted text (herdrdev#3055)
- Clear Windows Terminal identity in panes (herdrdev#3127)
- Copy selections before delayed mouse release (herdrdev#3102)
- Preserve focus after background worktree removal (herdrdev#3099)
- Publish Claude MCP detection manifest
- Match generated characters in prefix bindings (herdrdev#3085)
- Keep background Claude MCP tasks working (herdrdev#3094)
- Preserve multiline paste in terminal attach (herdrdev#3056)
- Isolate oversized kitty images (herdrdev#3035)
Maintenance
- Restore the publish job's bun install for the preview website build
- Merge upstream herdr 0.9.0 (68c7b78), theirs on the client shell (stage 2) (#29)
- Add the fork identity to the maintainer list
- Separate the two gitignore blocks
- Merge origin/main into agente/ag-273
- Require a prior-art sweep before building, and record the plugin-trial traps (#26)
- Follow the upstream distribution/ and scripts/docs/ moves in fork tooling
- Merge origin/main into agente/ag-273
- Keep the fork's CI-owned preview and version snapshots
- Merge upstream herdr through 8a6d697 (0.8.x)
- Remove the sandbox orchestrator, todo/scratchpad stores, right panel and channel scope (#24)
- Bump nixpkgs so crate fetches use static.crates.io (#23)
- Move .bora.toml commands and .bora/settings.toml provisioning to the bora-local-commands plugin (#21)
- Retire the project view before the upstream sync (#22)
- Add binding rule for worktree install symlink hazard
- Isolate disk-touching channel tests behind IsolatedDirs
- Prove the pane without subscribe guard dies under mutation
- Refresh events ledger after rebase onto 0.45.37 main
- Record events leaf gate evidence
- Record live-handoff as the post-install swap for a running server
- Separate website presentation from runtime
- Trigger private website deploys
- Publish preview documentation
- Stabilize headless metadata expiry check (herdrdev#3453)
- Cover three-way channel join collision ordinals (ceo-bora#34) (#17)
- Remove .beads
- Remove beads issue-tracker annotations from agent surfaces
- Trigger ai reviews and add maintainer
- Publish preview documentation
- Restrict release workflows to canonical repository
- Move changelog curation to release prep
- Document macos keychain launch context
- Keep kennel authority private
- Pin kennel maintainer identities
Other
Preview build 2026-09-09-52c463b4cba4
Preview build 2026-09-09-52c463b4cba4
Built from 52c463b4cba4 on master.
Base stable: v0.46.0
Compare: 8bdafea...52c463b
Added
- Make channel.message subscribable (#25)
- Deliver channel sends immediately with --when-idle opt-in
- Add bora events verb streaming session events as json lines
- Populate tty and foreground process on pane list
- Waiting counter and quiet-pane promotion for background terminals
- Rename a folder group from its right-click menu
- Brighter navigate-selection background on catppuccin
- Folders rows are one line - name and pane dots share the row
- Folders view - flat list grouped only by your visual_group folders
- Add muse agent with generic Pick blocked detection (herdrdev#2489)
- Add per-mode theme overrides (herdrdev#2324)
Fixed
- Resolve the release binary from cargo's configured target dir
- Package the windows zip as bora.exe, matching the installer
- Address review findings on the upstream merge
- Lint the linux-gated tests and let the generated-path guard see renames
- Brief unbriefed working panes in the message's delivery mode
- Distinguish unseen plain shells in pane dots
- Shape events error output and close pane-flag test blind spot
- Folders view fills the active marker row with the lighter active-row background
- Launch powershell agent shims with arguments (herdrdev#3455)
- Folders view assigns group on drop into folder body
- Enable mouse reporting over openssh (herdrdev#3461)
- Folders view drags like flat — one row per grab, slots in every gap
- Detect pi bundled cli (herdrdev#3207)
- Make test-one work on Windows (herdrdev#3442)
- Detect copilot background agents as working (herdrdev#3403)
- Encode antigravity windows hook command (herdrdev#3352)
- Report the foreground group leader's cwd, not a descendant's (herdrdev#3386)
- Reject oversized git ref files in workspace status reads (herdrdev#3373)
- Detect claude mcp elicitation dialogs as blocked (herdrdev#3383)
- Show project display names in assembly menus
- Handle associated text on special keys (herdrdev#3350)
- Keep OSC evidence through first agent acquisition (herdrdev#3326)
- Trust worktree repositories per request (herdrdev#3344)
- Ignore cursor events in claude hooks (herdrdev#3342)
- Ignore codex weak blockers above the current prompt (herdrdev#3339)
- Require explicit workspace group close (herdrdev#3206)
- Accept reordered agent report arguments (herdrdev#2928)
- Route osc 8 file links to plugin handlers (herdrdev#2942)
- Keep wayland clipboard copies responsive (herdrdev#3015)
- Report agent explain file errors as json (herdrdev#3023)
- Refresh shared agent manifest caches (herdrdev#3204)
- Batch kitty image row lifecycle (herdrdev#3166)
- Serve a google-eligible favicon
- Keep omp panes working through scheduled continuations (herdrdev#3122)
- Start lifecycle subscriptions from live events (herdrdev#3134)
- Add local cmd installer bootstrap (herdrdev#3133)
- Preserve non-us shifted text (herdrdev#3055)
- Clear Windows Terminal identity in panes (herdrdev#3127)
- Copy selections before delayed mouse release (herdrdev#3102)
- Preserve focus after background worktree removal (herdrdev#3099)
- Publish Claude MCP detection manifest
- Match generated characters in prefix bindings (herdrdev#3085)
- Keep background Claude MCP tasks working (herdrdev#3094)
- Preserve multiline paste in terminal attach (herdrdev#3056)
- Isolate oversized kitty images (herdrdev#3035)
Maintenance
- Merge upstream herdr 0.9.0 (68c7b78), theirs on the client shell (stage 2) (#29)
- Add the fork identity to the maintainer list
- Separate the two gitignore blocks
- Merge origin/main into agente/ag-273
- Require a prior-art sweep before building, and record the plugin-trial traps (#26)
- Follow the upstream distribution/ and scripts/docs/ moves in fork tooling
- Merge origin/main into agente/ag-273
- Keep the fork's CI-owned preview and version snapshots
- Merge upstream herdr through 8a6d697 (0.8.x)
- Remove the sandbox orchestrator, todo/scratchpad stores, right panel and channel scope (#24)
- Bump nixpkgs so crate fetches use static.crates.io (#23)
- Move .bora.toml commands and .bora/settings.toml provisioning to the bora-local-commands plugin (#21)
- Retire the project view before the upstream sync (#22)
- Add binding rule for worktree install symlink hazard
- Isolate disk-touching channel tests behind IsolatedDirs
- Prove the pane without subscribe guard dies under mutation
- Refresh events ledger after rebase onto 0.45.37 main
- Record events leaf gate evidence
- Record live-handoff as the post-install swap for a running server
- Separate website presentation from runtime
- Trigger private website deploys
- Publish preview documentation
- Stabilize headless metadata expiry check (herdrdev#3453)
- Cover three-way channel join collision ordinals (ceo-bora#34) (#17)
- Remove .beads
- Remove beads issue-tracker annotations from agent surfaces
- Trigger ai reviews and add maintainer
- Publish preview documentation
- Restrict release workflows to canonical repository
- Move changelog curation to release prep
- Document macos keychain launch context
- Keep kennel authority private
- Pin kennel maintainer identities
Other
Preview build 2026-08-28-8bdafea4c844
Preview build 2026-08-28-8bdafea4c844
Built from 8bdafea4c844 on master.
Base stable: v0.45.23
Compare: 36d2f57...8bdafea
Fixed
- Spinners froze in server mode — shared App::tick_animation owns the animation tick
Maintenance
- Publish preview documentation
Preview build 2026-08-28-36d2f57a74e0
Preview build 2026-08-28-36d2f57a74e0
Built from 36d2f57a74e0 on master.
Base stable: v0.45.22
Compare: fe85ca2...36d2f57
Added
- Pane dots follow the owner's color ruling — red stopped, yellow ready — visible working spinner, band pad above only
- Yellow name when a pane waits, padded project band, no gap after it
- Runtime-mountable sections — create, toggle and persist (bora-79l.10 pass 6b)
- Section-as-container emission unlocks the p4a alvo contract (bora-79l.10 pass 6a)
- Plus affordance creates a workspace from project view sections (bora-79l.12)
- Pane-dots block styled to the target design with animated state dots (bora-79l.11)
- Branch line becomes a declared section header (bora-79l.5)
- Workspace affordances move to the pane-dots block in project view (bora-79l.6, bora-79l.7, bora-79l.8)
Fixed
- Converge project view render onto the p4-a target (bora-79l t7)
Maintenance
- Shared test expectations need one owner, restated independently
- Record the owner's 0.45.6 regression inventory on T5
- Configure engineering skills (bd tracker, triage labels, domain docs)
- Record f7 handover and sync issue export
- Replace upstream kangal bot with workflow token
- Publish preview documentation
Preview build 2026-08-27-fe85ca263b6a
Preview build 2026-08-27-fe85ca263b6a
Built from fe85ca263b6a on master.
Base stable: v0.45.13
Compare: v0.45.5...fe85ca2
Added
- Section data model with yaml round-trip (F1)
- Project view panes share one dots row, and a repo names itself once
- One-shot agent dispatch — bora agent --new and agent prompt
Fixed
- Use div_ceil in pane dots width and fmt test code (bora-79l.3, bora-79l.9)
- Project view rows answer the mouse again, and the view-mode toggle is back
Maintenance
- Bump version to 0.45.13
- Mark bora-79l.3 gates complete with evidence
- Mark gates g1-g4 complete with evidence
- Add windows build to preview and use bora asset names
- Bump version to 0.45.12
- Record F1 gate evidence (bora-79l.2)
- R1 design revision on the executable contract
- Executable project-view contract (F0)
- Drop commit-message alignment rule (owner request)
- Document bora agent --new and get-or-create dispatch in readme
Other
- Cutover local-first (server-mode local, sem Dolt central)
Preview build 2026-08-27-d99a4978ecb0
Preview build 2026-08-27-d99a4978ecb0
Built from d99a4978ecb0 on master.
Base stable: v0.45.12
Compare: v0.45.5...d99a497
Added
- Section data model with yaml round-trip (F1)
- Project view panes share one dots row, and a repo names itself once
- One-shot agent dispatch — bora agent --new and agent prompt
Fixed
- Project view rows answer the mouse again, and the view-mode toggle is back
Maintenance
- Bump version to 0.45.12
- Record F1 gate evidence (bora-79l.2)
- R1 design revision on the executable contract
- Executable project-view contract (F0)
- Drop commit-message alignment rule (owner request)
- Document bora agent --new and get-or-create dispatch in readme
Other
- Cutover local-first (server-mode local, sem Dolt central)
Preview build 2026-08-27-af5ea85b6ccf
Preview build 2026-08-27-af5ea85b6ccf
Built from af5ea85b6ccf on master.
Base stable: v0.45.12
Compare: v0.45.5...af5ea85
Added
- Section data model with yaml round-trip (F1)
- Project view panes share one dots row, and a repo names itself once
- One-shot agent dispatch — bora agent --new and agent prompt
Fixed
- Project view rows answer the mouse again, and the view-mode toggle is back
Maintenance
- Add windows build to preview and use bora asset names
- Bump version to 0.45.12
- Record F1 gate evidence (bora-79l.2)
- R1 design revision on the executable contract
- Executable project-view contract (F0)
- Drop commit-message alignment rule (owner request)
- Document bora agent --new and get-or-create dispatch in readme
Other
- Cutover local-first (server-mode local, sem Dolt central)