v0.0.1-dev
Pre-release
Pre-release
What's Changed
- docs: Say which layer owns each Wayland limit by @omesser in #270
- feat(branding): wire product logo and tray icon by @omesser in #259
- fix(settings): Retarget the running Director by @omesser in #275
- docs: Make the Linux tray library a requirement by @omesser in #276
- feat(engine): Emit Summon alone on a double-click by @omesser in #278
- feat(settings): Add a Sound toggle the frame carries by @omesser in #280
- feat(branding): Cut the app icon to the macOS grid, so the Dock stops drawing a square by @omesser in #281
- docs: Add the interactive cue proposal for #277 by @omesser in #282
- ci: Publish the design pages to GitHub Pages by @omesser in #285
- feat(shell): Cue each click on the Character, in sight and in sound by @omesser in #284
- fix(shell): Stop a rebuild costing two Keychain dialogs at launch by @omesser in #291
- feat(character): Add Timber Wolf mech Character Package by @omesser in #161
- fix(shell): Keep cue visuals when Linux audio cannot start by @omesser in #299
- docs: Record that the Harness runs headless and we draw the chat surface by @omesser in #301
- fix(overlay): Show the bubble for a Character resting on a display's edge by @omesser in #288
- feat(character): Add Timber Wolf TAC-laser scan frames by @omesser in #304
- fix(branding): Ship the app icon at 512, the largest size the .icns table takes by @omesser in #294
- feat(director): Ask for a reaction to what just happened and what is underfoot by @omesser in #295
- perf(shell): Reuse the model connection across Director wakes by @omesser in #303
- docs: Record the X11 lane and the absent native Wayland lane as ADR-0010 by @omesser in #297
- feat(settings): Group the settings window into tabs, with a Development tab for the env-var switches by @omesser in #286
- docs: Record the Director in-flight and completion-latency research by @omesser in #309
- test(overlay): Pin the Dock's floor to the edge its own display excludes by @omesser in #308
- fix(timber-wolf): Make TAC laser scan visible in play by @omesser in #307
- fix(shell): Let AI_BUDDY_DIRECTOR=off outrank the saved switch by @omesser in #306
- feat(engine): Idle while Perched after quiet rest by @omesser in #311
- feat(shell): Batch the Director fields behind Apply and Cancel by @omesser in #314
- feat(shell): Trace the playing Behavior and Animation behind a switch by @omesser in #315
- fix(shell): One on/off vocabulary for every environment switch by @omesser in #317
- feat(shell): Stream the Director's model call, and cancel by dropping the reader by @omesser in #313
- test(harness): Make verify-overlay-x11.sh pass under Xvfb by @omesser in #298
- feat(character): Add Buddy Bot logo-mascot Character Package by @omesser in #305
- feat(director): Trace a proposed Behavior name nobody declared by @omesser in #318
- refactor(settings): Let the compiler check what a form row writes by @omesser in #319
- docs(adr): Make every page on the published site Generated or Dated by @omesser in #323
- docs(research): Update alternatives.md to reflect eight Character Packages on main by @omesser in #333
- ci: Ungate the shell's clippy hook, so Linux-only code meets -D warnings by @omesser in #326
- fix(shell): Open Memory via ShellExecuteW on Windows by @omesser in #340
- ci: Run cargo test on the windows job by @omesser in #341
- test(shell): Round-trip Director key through Windows Credential Manager by @omesser in #342
- ci: Build and attach Windows NSIS bundles on Release by @omesser in #343
- fix(timber-wolf): Clear under-arm Sketchfab plate on frontals by @omesser in #330
- feat(shell): Persist Director key on Linux Secret Service and keyutils by @omesser in #344
- test(character): Move the manifest.rs and resolve.rs tests beside their modules by @omesser in #332
- test(character): Pin the variant_of self-reference message and the no-frames invariant by @omesser in #335
- docs(adr): Give the user a prompt layer per Character Instance by @omesser in #338
- docs(adr): Require consent for every Capture by @omesser in #336
- docs(adr): Trim ADR-0011 to its decisions by @omesser in #331
- feat(buddy-bot): idle life variants with brow sensor LEDs by @omesser in #346
- docs(adr): Ship one chat UI in v1 and hold the switcher for v2 by @omesser in #347
- docs(design): Shop three chat surface designs on one page by @omesser in #339
- refactor(x11): deduplicate window_class into atoms.rs by @omesser in #356
- docs(adr): Give every ADR its own number, and keep it that way by @omesser in #360
- chore(platform): Say what due does, and give pack its own doc line by @omesser in #359
- feat(buddy-bot): grab-friendly trust-fall strip (Dragged+Falling share fall) by @omesser in #357
- fix(shell): Let the in-flight slot own newest-wins, so a Poke can supersede an ambient wake by @omesser in #322
- feat(buddy-bot): delighted react strip for poke/rush by @omesser in #363
- fix(adr): Renumber the duplicate ADR-0011 to 0016 by @omesser in #366
- fix(engine): Let a walk leave the Dock it just stepped off by @omesser in #365
- docs: Polish README into a landing page and new-user guide by @omesser in #135
- refactor: Fold the MCP tools behind dispatch and share one Rect by @omesser in #369
- feat(character): Black Mage sit breath, sleep (not KO), hold bob, land-1 by @omesser in #370
- docs(design): Propose the chat surface as a page you can drive by @omesser in #324
- feat(shell): Open a Chat surface on Summon by @omesser in #362
- fix(character): Draw a variant by weight when an Animation starts by @omesser in #367
- fix(engine): Keep one animation clock across the Primitives that step through it by @omesser in #378
- fix(platform): Let the sprite see our own non-overlay windows by @omesser in #376
- ci: Give tests.yml least-privilege permissions by @omesser in #385
- ci: Pin every action to a full commit SHA by @omesser in #386
- feat(platform): Ship Windows Win32 functional parity for overlay interaction and window geometry by @omesser in #373
- security(ci): Trace release.yml's dispatch inputs to where they land by @omesser in #389
- fix(ci): Pick release platforms in the matrix, not the job if by @omesser in #390
- fix(core): Let a lone default name follow its Character by @omesser in #393
- fix(import): Refuse entity declarations in pack XML by @omesser in #394
- fix(engine): Size the ceiling to the Character, not the tallest one by @omesser in #398
- feat(docs): A character gallery page - Play every Character on a page, and declare where its art came from by @omesser in #379
- fix(docs): Say nothing about a withheld Character on the gallery by @omesser in #401
- fix(shell): Update an open Chat header when the Instance is renamed by @omesser in #396
- feat(shell): Give the first wake a Settings row by @omesser in #402
- security(windows): Document unsafe in overlay.rs (#408) by @omesser in #413
- security(windows): Document unsafe in sensing.rs + pointer.rs (#408) by @omesser in #414
- security(windows): Document unsafe in window_source.rs (#408) by @omesser in #415
- ci: Only re-run PR Tests when the windows label is added by @omesser in #416
- docs: Document the workspace's unsafe blocks and accept the GTK3 cluster (#397) by @omesser in #404
- ci: Add pre-commit hygiene rules for agents by @omesser in #417
- feat(engine): Give a grab its own optional Animation (#364) by @omesser in #403
- docs(harness): Record that the Harness authenticates itself and ai-buddy holds nothing (#371) by @omesser in #405
- chore(shell): Fix comments that drifted from their code by @omesser in #406
- docs(crates): Reattach stray doc comments and cut restatement by @omesser in #407
- feat(shell): Add taskbar icon on Windows and Linux to match macOS Dock by @omesser in #411
- chore(shell): Correct and trim webview comments by @omesser in #412
- docs(agents): Requote the comment guide's exemplar by @omesser in #410
- feat(platform): Windows native settings window with full FormRow support (#391 #399) by @omesser in #392
- fix(shell): Draw Linux Privacy section with prose and no checkboxes by @omesser in #422
- feat(platform): Windows settings layout polish + DESKTOP e2e (#400) by @omesser in #421
- fix(platform): configure_overlay uses shared X11 connection by @omesser in #439
- fix(scripts): Diagnose Keychain prompts in verify-overlay.sh (#420) by @omesser in #440
- feat(harness): Speak ACP to a spawned Harness as the session Completer (#300) by @omesser in #433
- feat(shell): Stamp every Chat surface turn with local HH:mm by @omesser in #453
- docs: Narrow ADR-0013's overlay exclusion by @omesser in #444
- ci: Add PowerShell linting for encoding and syntax validation by @omesser in #442
- feat(character): Draw a left strip instead of mirroring by @omesser in #446
- feat(harness): Probe one real ACP turn, and verify claude and hermes (#434) by @omesser in #449
- feat(shell): Housekeep local data — bound Action Log growth, document Memory policy by @omesser in #454
- fix(harness): Show a permission nobody can see, and pace a dying Harness (#437) by @omesser in #450
- feat: Showcase overlay timing and Character variant rings by @omesser in #455
- feat(director): Carry the Instance and the wake kind through the Completer seam (#435) by @omesser in #451
- feat(overlay): Repaint the bubble in the chat surface's ink by @omesser in #456
- feat(settings): Choose the Completer source in Settings, not only the env (#436) by @omesser in #452
- fix(settings): Windows text fields — generic commit + honour frozen (X11 parity) by @omesser in #464
- docs(design): Re-date the bubble page to the design that shipped by @omesser in #462
- fix(roster): Heal a leftover default name after a Character switch by @omesser in #477
- fix(docs): Land a proactive wake on screen, over Buddy Bot's own frames by @omesser in #471
- docs(adr): Date what shipped beside ADR-0013's decision (#463) by @omesser in #481
- fix(chat): Tell an already-open Chat surface when Director or Harness changes by @omesser in #480
- fix(director): Say that a dead Harness reads a typed key at the next launch (#469) by @omesser in #482
- fix(harness): Reopen a session the first turn proves session/load never restored (#448) by @omesser in #484
- Add .envrc to .gitignore by @omesser in #494
- ci: Add an ASCII-only pre-commit hook for .ps1 files by @omesser in #475
- fix(harness): Cancel the turn in flight for a newer wake instead of refusing it (#472) by @omesser in #485
- fix(shell): Skip the Keychain read when a Harness is the Completer by @omesser in #479
- feat(engine): Add a Jump the buddy can be asked for by @omesser in #478
- fix(harness): Serve MCP from the app binary when no sidecar is beside it by @omesser in #497
- docs: short guidelines for ADRs vs SPEC/DESIGN by @omesser in #498
- fix(windows): Preserve help hints on Settings first refresh by @omesser in #492
- docs: supersede fat ADRs 0010/0013/0014/0017 (#495) by @omesser in #505
- feat(platform): Draw the Completer source rows in the GTK settings window (#467) by @omesser in #486
- refactor(core): Drop the one-Adapter Director trait, Roster's unread Memory, and the loader's public knobs by @omesser in #503
- feat(platform): Draw the Completer source rows in the Windows settings window (#468) by @omesser in #487
- fix(chat): Show Speech said before the Chat surface opened by @omesser in #506
- fix(harness): Drop the Harness when Off, without a SIGINT dump on exit by @omesser in #510
- fix(shell): Play the Menu cue when right-clicking the Character by @omesser in #509
- feat(settings): Move the window with a modifier-drag on its background by @omesser in #489
- docs: short guidelines for ADRs vs SPEC/DESIGN/… by @omesser in #496
- fix(harness): Re-resolve the Claude ACP adapter each spawn, and say which error a turn came back with by @omesser in #524
- fix(core): Fail a speak or play_behavior that reaches no Instance by @omesser in #519
- fix(harness): Put the Windows ACP child in a Job Object so descendants die with shutdown by @omesser in #516
- fix(harness): Associate Job Object at create time to close post-spawn race (#517) by @omesser in #522
- docs: require agent name in GitHub sign-off by @omesser in #518
- fix(chat): Clear and mark the log on a new session by @omesser in #527
- ci: Fail the PSScriptAnalyzer hook on a .ps1 that does not parse by @omesser in #521
- fix(harness): Record a turn taken for another buddy's wake as withdrawn by @omesser in #523
- fix(shell): Ignore stale tray Quit when dismissing an Instance by @omesser in #529
- feat(settings): Dynamically apply a Director mode change by @omesser in #528
- fix(harness): Pass Arc into Session::new in withdrawal test by @omesser in #533
- fix(settings): Stop an untouched Director tab from wiping Base URL and Model by @omesser in #534
- docs: Hand-maintain README Harness Support table by @omesser in #526
- fix(mcp): Serve MCP from the app on loopback HTTP so a Harness's speak lands on screen (#470) by @omesser in #491
- feat(engine): Give each Character Instance its own prompt layer by @omesser in #531
- feat(consent): Name the process Windows Privacy will list by @omesser in #536
- fix(sensing): Name Windows apps by process, not title by @omesser in #539
- feat(harness): Add Codex named Harness row (ACP) by @omesser in #556
- fix(windows): Draw FormSection heading and comment in settings window by @omesser in #553
Full Changelog: v0.0.0-test...v0.0.1-dev