Skip to content

v0.1.0

Choose a tag to compare

@omesser omesser released this 02 Oct 02:19
· 78 commits to main since this release
1ad038c

What's Changed

  • test(settings): Pin the Director tab's reset on open by @omesser in #535
  • feat(settings): Add Development knobs for the Harness attachment by @omesser in #537
  • fix(settings): Stop offering consent rows Linux cannot grant by @omesser in #538
  • docs: Naming/terminology review against CONTEXT.md glossary by @omesser in #532
  • feat(settings): Pick the Completer endpoint from a list, or type one by @omesser in #520
  • feat(settings): Capturable by default; Presence checkbox to hide from shares by @omesser in #512
  • feat(harness): Remember one ACP session per Character Instance by @omesser in #560
  • docs: reflect shipped Harness ACP Completer and MCP server in alternatives.md by @omesser in #557
  • feat(harness): Show a Harness's thinking while a turn runs by @omesser in #540
  • feat(chat): Say which mind answers in the Chat header by @omesser in #550
  • docs: Research renderer choice and single-witness click detection by @omesser in #525
  • ci: Default new issues to milestone V1 by @omesser in #573
  • chore(windows): Bind every CString before handing Win32 its pointer by @omesser in #574
  • chore(deps): Bump rmcp from 3.1.4 to 3.2.0 by @dependabot[bot] in #571
  • chore(deps): Bump getrandom from 0.3.4 to 0.4.3 by @dependabot[bot] in #570
  • chore(deps): Bump dirs from 6.0.0 to 7.0.0 by @dependabot[bot] in #566
  • chore(deps): Bump actions/checkout from 4.4.0 to 7.0.1 by @dependabot[bot] in #564
  • ci: Drop the Chrome apt source before installing on Linux by @omesser in #575
  • feat(mcp): Relay the stdio MCP server to the running app by @omesser in #542
  • chore(deps): Bump actions/deploy-pages from 4.0.5 to 5.0.1 by @dependabot[bot] in #565
  • chore(deps): Bump actions/configure-pages from 5.0.0 to 6.0.0 by @dependabot[bot] in #567
  • chore(deps): Bump actions/upload-pages-artifact from 3.0.1 to 5.0.0 by @dependabot[bot] in #568
  • chore(deps): Bump windows-sys from 0.59.0 to 0.61.2 by @dependabot[bot] in #569
  • docs: Say the Chat surface ships by @omesser in #578
  • feat(chat): Smooth Harness connect flow with auth states and branded buttons by @omesser in #563
  • docs(harness): Record opencode's verified standing by @omesser in #585
  • feat(chat): Ask the Instance by name in the composer by @omesser in #582
  • refactor(settings): Fix user-facing labels, keep Director as domain role by @omesser in #561
  • feat(harness): Name Grok Build, verify opencode, fix the probe's self-SIGKILL by @omesser in #587
  • refactor(ui): Share Chat and bubble tokens by @omesser in #586
  • feat(bubble): Ceiling-clamp UX when Speech covers the face by @omesser in #594
  • test(harness): Count quoted sample lines by phrasing by @omesser in #541
  • perf: Measure RSS and multi-monitor cost on macOS by @omesser in #590
  • docs: Explain the macOS Keychain prompt on update by @omesser in #576
  • docs(harness): Stop naming Gemini CLI as a Harness that attaches today by @omesser in #605
  • docs(harness): Keep probe diaries off the launch table by @omesser in #602
  • docs(research): Tell a model's reasoning from its final answer on the Completer lane by @omesser in #598
  • feat(bubble): Offer a way into Chat when a Speech turn does not fit by @omesser in #588
  • docs(research): Reflect verified grok in alternatives Harness row by @omesser in #622
  • chore: add pstack per-role model rule by @omesser in #624
  • test(skills): Add verify-ai-buddy project-local verification skill by @omesser in #627
  • test(harness): Drive the #588 Open chat click on Windows from the overlay region by @omesser in #621
  • docs(research): Cite model.rs by symbol, not by line by @omesser in #618
  • fix(director): Read the Behavior name past a Harness's own preamble by @omesser in #616
  • feat(harness): Reach Pi through the pi-acp adapter by @omesser in #628
  • feat(shell): Deliver first-run tour as Speech bubble, not Chat by @omesser in #592
  • fix(input): Take the double-click window from the OS, not our own constant by @omesser in #591
  • feat(chat): Plain-language status bar (and advanced ladder) by @omesser in #595
  • feat(director): Draw the Completer's reasoning as thinking, not as speech by @omesser in #615
  • feat(settings): Progressive disclosure data structures for everyday Settings by @omesser in #593
  • feat(director): Show a cap-ended reply as far as it got, marked by @omesser in #614
  • feat(director): Ask chat-completions for low reasoning effort, and drop it when refused by @omesser in #617
  • docs: add pi as named+verified Harness in alternatives.md (#628) by @omesser in #639
  • chore(scripts): Verify the macOS Settings window through the Accessibility API by @omesser in #626
  • feat(settings): Re-apply frozen when the macOS Settings source changes by @omesser in #635
  • perf: Add Linux and Windows RSS baseline scripts by @omesser in #600
  • refactor: Drop the flags that only fed the truncation marks by @omesser in #637
  • feat: ai-buddy-verify stone 0 (doctor/units/overlay/cleanup) by @omesser in #649
  • ci: One workspace cargo clippy in pre-commit by @omesser in #650
  • fix(chat): Keep the empty Instance Prompt field readable by @omesser in #643
  • fix(overlay): Draw the Character after a dropped named import by @omesser in #652
  • docs(adr): ADR-0027 ai-buddy-verify is the agent/CI verify entry by @omesser in #646
  • feat(director): A blank-AI mode that sends no Character Prompt by @omesser in #658
  • docs: Tell agents how to pick an issue off the board by @omesser in #653
  • fix(verify): Windows doctor finds cargo and ai-buddy.exe by @omesser in #651
  • feat(settings): Make the Completer's reasoning effort a Development setting by @omesser in #656
  • fix(macos): Draw the whole "What is this?" label by @omesser in #660
  • docs(research): Reflect verified pi in alternatives Harness row by @omesser in #640
  • fix(director): Swap in max_completion_tokens on a refusal by @omesser in #665
  • docs(windows): Name the real reason a shortcut picker is skipped by @omesser in #671
  • feat(engine): Land a dropped Prop on a Perch by @omesser in #666
  • feat(input): X11 idle optimization with XI2 events and two-clock scheduler by @omesser in #562
  • fix(settings): Let a composite popup declare the row it fills in by @omesser in #672
  • fix(harness): Name the login rather than spawn it by @omesser in #661
  • fix(harness): Let the login table outrank the handshake description by @omesser in #676
  • Revert "feat(engine): Land a dropped Prop on a Perch" by @omesser in #684
  • docs(research): Make the anchor govern the whole document by @omesser in #662
  • fix(harness): Reap a dropped Session off-thread by @omesser in #664
  • fix(harness): Tell a missing CLI from a dead child by @omesser in #673
  • docs(harness): Move the named codex row to verified standing by @omesser in #682
  • fix(director): Empty built-in prompts under Blank AI by @omesser in #693
  • fix(chat): Show what a permission ask is actually asking by @omesser in #694
  • docs(timber-wolf): Record MekaRamen permission and publish on the gallery by @omesser in #699
  • fix(harness): Open a new ACP session when the Instance Prompt changes by @omesser in #700
  • feat(chat): Connect buttons for hermes and pi by @omesser in #683
  • fix(director): Keep a reply's line breaks out of the bubble's ceiling by @omesser in #702
  • feat(harness): Split Model API and Harness turn budgets by @omesser in #695
  • fix(chat): Bound a typed line at 16000 in the field, not after Send by @omesser in #707
  • fix(harness): Cancel the ACP turn in flight when an Instance Prompt is saved by @omesser in #709
  • fix(chat): Do not report a missing answer after Speech landed by @omesser in #691
  • fix(chat): Keep the newlines in a paste to the composer by @omesser in #708
  • docs(research): BYO Harness MCP reconfiguration and reload by @omesser in #644
  • fix(consent): Ask proc_pidinfo for the flavor that reports a parent by @omesser in #711
  • refactor(consent): objc2 AX/CG, Windows Snapshot+Drop, forbid unsafe by @omesser in #696
  • fix(windows): Progressive disclosure reflows siblings and collapses height when closed by @omesser in #714
  • feat(agents): Vendor the pstack skill library for every agent, not just Cursor by @omesser in #688
  • feat(settings): Start a new session from the AI tab without changing Completer by @omesser in #712
  • feat(settings): Generate the MCP registration for a Harness you run yourself by @omesser in #599
  • feat(chat): Draw a reply's Markdown instead of its source by @omesser in #705
  • feat(shell): Open the Action Log from the tray, the way Memory opens by @omesser in #716
  • docs(adr): ADR-0028 bounds the Chat surface to what ACP sends by @omesser in #710
  • fix(harness): Filter Pi startup banner from dialogue by @omesser in #720
  • docs(adr): Name why no renderer is reusable in ADR-0028 by @omesser in #724
  • feat(frame-loop): Idle back-off for macOS/Windows (#183 Stage 2b) by @omesser in #718
  • feat(verify): Add first-class poke and summon subcommands by @omesser in #728
  • feat(settings): Serialize the form description and pin it with fixtures by @omesser in #729
  • docs(settings): ADR-0029, the webview spike, and its Linux evidence by @omesser in #725
  • refactor(settings): Move what a Settings gesture means into one testable module by @omesser in #731
  • fix(settings): Draw GTK FormRow::Popup as dropdown by @omesser in #719
  • fix(verify): Address a control that names itself, and isolate the run by @omesser in #739
  • fix(chat): Stop a session reset throwing before it says what happened by @omesser in #738
  • feat(settings): Render the Settings form description in a webview by @omesser in #734
  • perf(research): Benchmark CPU wakeups and idle C-state impact on macOS by @omesser in #733
  • docs(harness): Replace sunset Gemini CLI with Antigravity by @omesser in #717
  • docs(research): Record that prompting cannot register an MCP server by @omesser in #743
  • docs(spike): Would TypeScript make this webview safer? (#692) by @omesser in #742
  • fix(scripts): scope verify-overlay.sh's kills to its own ai-buddy by @omesser in #754
  • fix(verify): cache npx's Harness package outside the throwaway HOME by @omesser in #755
  • fix(settings): OpenCode BYO after-steps say restart, not /reload by @omesser in #756
  • docs(settings): Say why OpenCode registration needs a restart by @omesser in #757
  • perf(overlay): Stop redrawing and re-sending a sprite that has not moved by @omesser in #760
  • test(linux): Settings e2e + fill GTK renderer gaps by @omesser in #759
  • refactor(comments): Cut the multi-issue narration comments by @omesser in #763
  • feat(harness): Add Cursor CLI as a verified launch row by @omesser in #762
  • feat(settings): Add settings_event command for webview gestures by @omesser in #769
  • refactor(webview): Compact the webview, script and test comments by @omesser in #765
  • fix(windows): Settings no longer auto-opens on startup by @omesser in #767
  • chore(deps): bump uuid from 1.26.0 to 1.26.1 by @dependabot[bot] in #770
  • chore(deps): bump ureq from 3.4.0 to 3.4.1 by @dependabot[bot] in #771
  • chore(deps): bump toml_edit from 0.25.13+spec-1.1.0 to 0.25.15+spec-1.1.0 by @dependabot[bot] in #772
  • docs(harness): Research which Harness tools survive an ACP attach by @omesser in #669
  • feat(settings): Add Settings webview window behind AI_BUDDY_SETTINGS_WEBVIEW flag by @omesser in #773
  • fix(docs): research-anchors preamble for harness-native-tools note by @omesser in #792
  • build(hooks): Comment census script and newly-added-block ceiling hook by @omesser in #758
  • feat(settings): Add platform integration and keyboard shortcuts (Step 6) by @omesser in #774
  • fix(scripts): Restore why each README GIF picks the animation it does by @omesser in #775
  • docs(adr): Drop ADR-0022's hardcoded harness count by @omesser in #778
  • test(macos): Descend into the AXWebArea in the Settings AX dump by @omesser in #779
  • refactor(core): Compact the Engine's comments, remaining files (#747 slice 3) by @omesser in #780
  • feat(verify): Make exit codes, PROOF.md and --json one agent contract by @omesser in #781
  • feat(chat): Render the plan's steps and mark the current one by @omesser in #789
  • chore(git): Ignore the bun deps pstack's tools install by @omesser in #787
  • fix: strip HTML entities before matching issue citations by @omesser in #794
  • test(windows): Settings e2e + fill Win32 renderer gaps by @omesser in #768
  • fix(ci): Stop the Windows job reporting green over a failed test by @omesser in #795
  • docs(research): Measure which Harness tools survive an ACP attach by @omesser in #788
  • fix(settings): Alt-drag no longer moves the window from a label or textarea by @omesser in #793
  • fix(scripts): Gate tab and pick on the webview settle, not just dump by @omesser in #800
  • docs(verify): fix feature map doc drift by @omesser in #791
  • fix(verify): Pick from the webview menu the AX tree never publishes by @omesser in https://github.com//pull/801 perf(overlay): Arm rAF only on displays the character intersects by @omesser in https://github.com//pull/790 fix(settings): Raise Settings webview above the overlay by @omesser in https://github.com//pull/803 fix(verify): Find webview Settings window on Windows UIA by @omesser in https://github.com//pull/805 refactor(core): Compact Director and Character comments by @omesser in https://github.com//pull/807 refactor(core): Compact Engine comments by @omesser in https://github.com//pull/808 refactor(shell): Compact the Completer comments in model.rs by @omesser in https://github.com//pull/809 refactor(shell): Compact the harness and ACP wire comments by @omesser in https://github.com//pull/810 build(hooks): Detect Swift comment blocks by @omesser in https://github.com//pull/806 build(hooks): Delete check-comment-blocks and run ast-grep as the comment linter by @omesser in https://github.com//pull/813 fix(settings): Publish each row's name once, and look past a repeat of it by @omesser in https://github.com//pull/820 refactor(shell): Compact remaining shell and platform comments by @omesser in https://github.com//pull/814 docs(adr): Name ACP attach gates in ADR-0003 Consequences by @omesser in https://github.com//pull/818 docs(adr): Record that the Harness working directory is its project scope by @omesser in https://github.com//pull/819 docs(hooks): document PowerShell/TOML comment-ceiling gap by @omesser in https://github.com//pull/821 chore(scripts): Delete comment-census now that ast-grep lints comments by @omesser in https://github.com//pull/824 refactor(shell): Compact the frame loop and platform comments by @omesser in https://github.com//pull/816 refactor(shell): Compact the main.rs comments by @omesser in https://github.com//pull/815 docs(readme): Say which tool classes survive a Harness attach by @omesser in https://github.com//pull/825 fix(chat): Prompt layers, sticky-footer Save/Discard by @omesser in https://github.com//pull/826 feat(chat): Advertise ACP form elicitation by @omesser in https://github.com//pull/828 docs(research): Reflect verified cursor-agent in alternatives Harness row by @omesser in https://github.com//pull/835 fix(chat): Surface a missing Harness launcher on the landing by @omesser in https://github.com//pull/831 feat(harness): Attach in a directory the user configured by @omesser in https://github.com//pull/827 fix(harness): Compile after the cwd and data split by @omesser in https://github.com//pull/837 Add .codex/skills symlink by @omesser in https://github.com//pull/836 Revert "Add .codex/skills symlink" by @omesser in https://github.com//pull/840 fix: Correct the Codex skills symlink by @omesser in https://github.com//pull/841 Revert "fix: Correct the Codex skills symlink" by @omesser in https://github.com//pull/844 fix(settings): Keep Linux SettingsView.consent empty by @omesser in https://github.com//pull/829 docs(agents): Sign GitHub bodies with the Harness, not a Grok bot name by @omesser in https://github.com//pull/830 refactor(core): Compact roster, dispatch, and scheduler comments by @omesser in https://github.com//pull/832 docs(naming): Keep Completer off user-facing copy by @omesser in https://github.com//pull/833 docs(perf): Attribute leftover idle wakeups after 741 by @omesser in https://github.com//pull/843 feat(director): Treat Completer length as Truncated by @omesser in https://github.com//pull/842 build(hooks): Lower the comment block ceiling from 25 to 20 by @omesser in https://github.com//pull/834 perf(tests): Reduce redundant unit-test work by @omesser in https://github.com//pull/845 docs(research): Probe computer use on a Claude ACP session by @omesser in https://github.com//pull/838 test(verify): Add Windows Settings-webview Phase 2 smoke by @omesser in https://github.com//pull/847 docs(verify): Add Linux Settings verification scripts to skill map by @omesser in https://github.com//pull/846 test(verify): Measure Windows Settings webview z-order by @omesser in https://github.com//pull/851 test(verify): Show Settings webview select above the overlay by @omesser in https://github.com//pull/852 test(verify): Drive keyboard-only Settings webview by @omesser in https://github.com//pull/853 fix(settings): Copy BYO registration from the Settings webview by @omesser in https://github.com//pull/857 feat(input): Hear the mouse on macOS instead of polling it by @omesser in https://github.com//pull/856 fix(input): Serialize the tap tests that share one flag by @omesser in https://github.com//pull/858 docs(harness): Document pointing a Harness you run yourself at ai-buddy by @omesser in https://github.com//pull/859 feat(settings): Default Settings to the webview by @omesser in https://github.com//pull/860 feat(settings): Switch Completer source on Apply by @omesser in https://github.com//pull/861 fix(verify-skill): correct Settings section and trace flag in feature maps by @omesser in https://github.com//pull/862 feat(settings): Default Settings to the webview by @omesser in https://github.com//pull/864 docs(agents): Drop the emoji from board status names by @omesser in https://github.com//pull/865 docs(harness): Record five more hand-verified BYO rows by @omesser in https://github.com//pull/866 feat(settings): Move the BYO Harness architecture copy behind disclosures by @omesser in https://github.com//pull/870 feat(director): Draw Anthropic's thinking_delta as thinking too by @omesser in https://github.com//pull/872 feat(settings): Delete the native Settings renderers by @omesser in https://github.com//pull/871 feat(director): Stop capping reasoning on a host that marks it by @omesser in https://github.com//pull/873 docs(research): Capture drop + cua-driver CU path by @omesser in https://github.com//pull/878 feat(agents): Vendor Matt Pocock's engineering skills by @omesser in https://github.com//pull/876 fix(director): Flatten the reply cap to one runaway guard by @omesser in https://github.com//pull/877 fix(settings): Show Instance name and Character in the list by @omesser in https://github.com//pull/894 feat(linux): xdg-desktop-portal ScreenCast consent for Wayland titles by @omesser in https://github.com//pull/874 docs: recover byo-harness-mcp-registration.md from #752 by @omesser in https://github.com//pull/895 fix(settings): Rename the reply cap to the turn ceiling by @omesser in https://github.com//pull/893 feat(mcp): Advertise Memory, Action Log, and window titles as resources by @omesser in https://github.com//pull/896 fix(settings): BYO snippet refreshes when Harness popup changes by @omesser in https://github.com//pull/897 Drop Capture tiers (Ambient, On-Demand, Local Gate) by @omesser in https://github.com//pull/899 fix(settings): Keep the configured Harness across cargo run by @omesser in https://github.com//pull/909 fix(settings): Apply and Cancel stay on screen instead of scrolling out of view by @omesser in https://github.com//pull/901 fix(bubble): Invert the Speech bubble tail when it sits below the Character by @omesser in https://github.com//pull/906 docs(verify-ai-buddy): Fix feature map drift in capturable and summon-chat by @omesser in https://github.com//pull/905 feat(linux): WindowTitles consumer — titles behind ScreenCast on X11/Wayland by @omesser in https://github.com//pull/904 fix(chat): Keep ask option buttons as whole words by @omesser in https://github.com//pull/910 test(settings): exercise real showError for footer clear on error by @omesser in https://github.com//pull/911 fix(settings): Show the Working directory the Harness will use by @omesser in https://github.com//pull/914 fix(settings): restore Instance row formatting as Name (character) by @omesser in https://github.com//pull/918 feat(chat): Say when a typed question's answer was preempted, and by what by @omesser in https://github.com//pull/919 fix(settings): Wire the four dead buttons and key snapshot values by row id by @omesser in https://github.com//pull/920 refactor(overlay): Null the bubble fields at emit and delete forOverlay by @omesser in https://github.com//pull/922 refactor(platform): Keep one due, not a copy per cfg arm by @omesser in https://github.com//pull/923 refactor(overlay): Borrow the line before deciding to clone it by @omesser in https://github.com//pull/925 feat(windows): Add WindowTitles consent and implementation by @omesser in https://github.com//pull/915 perf: Add Linux baseline measurements for CPU wakeups (issue #432) by @omesser in https://github.com//pull/927 test(macos): Spike harness for the #183 Input Monitoring question by @omesser in https://github.com//pull/926 test(bench): Measure baseline and hidden wakeup scenarios for #431 by @omesser in https://github.com//pull/931 fix(acp_wire): Name initialize when the SDK ends the connection first by @omesser in https://github.com//pull/934 fix(settings): Offer every installed character in the Character popups by @omesser in https://github.com//pull/936 fix(settings): Hand focus back to the control that held it after a redraw by @omesser in https://github.com//pull/938 test(verify): Make the Settings keyboard proof fail on missing evidence by @omesser in https://github.com//pull/933 fix(settings): Preserve open disclosure state across redraw by @omesser in https://github.com//pull/941 test(skills): Fail when a skill names a script that is not here by @omesser in https://github.com//pull/942 fix(scripts): Remove exec from stray-scope test fixtures to eliminate race by @omesser in https://github.com//pull/940 build(deps): Bump clap from 4.6.6 to 4.6.7 by @dependabot[bot] in https://github.com//pull/943 build(deps): Bump ureq from 3.4.1 to 3.4.2 by @dependabot[bot] in https://github.com//pull/944 build(deps): Bump tauri-plugin-updater from 2.11.0 to 2.12.0 by @dependabot[bot] in https://github.com//pull/945 build(deps): Bump agent-client-protocol from 2.1.0 to 2.2.0 by @dependabot[bot] in https://github.com//pull/947 build(deps): Bump tauri from 2.11.5 to 2.11.6 by @dependabot[bot] in https://github.com//pull/946 spike(ship): Census of runtime deps beyond the binary by @omesser in https://github.com//pull/932 fix(overlay): Hide the overlay a lost display leaves behind instead of closing it by @omesser in https://github.com//pull/954 feat(settings): Emit lifecycle eager in pi BYO fragment by @omesser in https://github.com//pull/953 feat(settings): Name the Screen Recording row for what the buddy reads by @omesser in https://github.com//pull/956 docs(verify-ai-buddy): clarify poke-resume behavior in feature map by @omesser in https://github.com//pull/957 fix(harness): gate chat during ACP initialization by @omesser in https://github.com//pull/952 feat(chat): Let the thinking strip grow to five lines and collapse by @omesser in https://github.com//pull/955 docs(agents): Attach PR images with gh, do not commit them by @omesser in https://github.com//pull/958 docs: Say ai-buddy never reads pixels and point computer use at cua-driver by @omesser in https://github.com//pull/959 feat(settings,chat): Distinguish first-party ACPs from npx adapters by @omesser in https://github.com//pull/961 docs: Fix five stale ADR citations and ratchet the forty left by @omesser in https://github.com//pull/964 perf: Measure idle residency on a quiet machine and record the verdict (#431) by @omesser in https://github.com//pull/960 fix(shell): Park the taskbar anchor off the desktop by @omesser in https://github.com//pull/972 Add chat UI switcher for three designs by @omesser in https://github.com//pull/963 docs(research): Record that ai-buddy holds no power assertion by @omesser in https://github.com//pull/966 test(overlay): Reproduce the display-loss abort by toggling mirroring by @omesser in https://github.com//pull/967 fix(harness): Say a Harness is starting while the ACP handshake runs by @omesser in https://github.com//pull/970 fix: Drop the white fringe from README Buddy Bot GIFs by @omesser in https://github.com//pull/974 perf: Benchmark X11 mask rebuild baseline (#428) by @omesser in https://github.com//pull/968 test,feat(chat-ui): Address Architect Soft leftovers from #963 by @omesser in https://github.com//pull/978 docs(adr): Put window titles and application names behind one consent by @omesser in https://github.com//pull/977 docs: Windows mask-rebuild baseline (#428) by @omesser in https://github.com//pull/983 docs: Add shields.io badges for the seven named Harnesses by @omesser in https://github.com//pull/980 fix(sensing): Gate application names behind the window titles consent by @omesser in https://github.com//pull/979 feat(harness): Name Goose as a preset, smoked fresh and resumed (ADR-0022) by @omesser in https://github.com//pull/971 docs: Correct the Goose MCP row, it is measured by @omesser in https://github.com//pull/986 perf: Add Windows mask rebuild instrumentation (#428) by @omesser in https://github.com//pull/981 Add Ko-fi username for funding support by @omesser in https://github.com//pull/988 docs(design): Propose the window names hint under one consent (ADR-0032) by @omesser in https://github.com//pull/965 feat(director): Invite tool use in one sentence (#917) by @omesser in https://github.com//pull/987 docs(research): Reflect verified goose in alternatives Harness row by @omesser in https://github.com//pull/989 docs(verify): Fix poke hit-test logging description by @omesser in https://github.com//pull/990 fix(harness): Name the login and disable the composer when a turn is refused for auth by @omesser in https://github.com//pull/993 fix(settings): Keep every write and draft across a tab switch by @omesser in https://github.com//pull/996 fix(chat): Move the caret under an ask so the answer lands below it by @omesser in https://github.com//pull/998 fix(chat): Send a thought whole and scroll it in the strip by @omesser in https://github.com//pull/999 docs: State Pi's MCP row as a handshake fact by @omesser in https://github.com//pull/1007 docs: Point the Pi footnote at the handshake fact by @omesser in https://github.com//pull/1009 fix(chat): Paint reply code apart from the panel by @omesser in https://github.com//pull/1012 feat(harness): Point Pi at a stable project MCP file by @omesser in https://github.com//pull/1019 feat(harness): Name GitHub Copilot CLI as a preset, smoked fresh and resumed by @omesser in https://github.com//pull/1017 docs(perf): Record the Linux GPU compositing baseline (#425) by @omesser in https://github.com//pull/1018 fix(harness): Stop the turn clock while the Harness waits on the user by @omesser in https://github.com//pull/1011 docs(readme): Give Grok its mark, and say why two rows have none by @omesser in https://github.com//pull/1022 chore(mattpocock): Sync vendored skills to c55ee46073ed by @github-actions[bot] in https://github.com//pull/1026 chore(pstack): Sync vendored skills to ecc249f1e306 by @github-actions[bot] in https://github.com//pull/1027 docs(agents): Rewrite the comment standard from what the compaction actually cut by @omesser in https://github.com//pull/1028 docs(verify): Fix feature map drift and EWMH property gap handling by @omesser in https://github.com//pull/1015 feat(harness): Reach cursor-agent's MCP through its own config file by @omesser in https://github.com//pull/1024 refactor(core): Compact comments in the Character Manifest parser by @omesser in https://github.com//pull/1030 refactor(core): Compact comments in Character art checks by @omesser in https://github.com//pull/1031 docs(research): Resync alternatives.md with main (Director tools, Pi, Harness presets) by @omesser in https://github.com//pull/1032 docs(perf): Record the Windows DWM GPU baseline (#430) by @omesser in https://github.com//pull/1025 docs: Stop code from citing a superseded ADR for a dropped rule by @omesser in https://github.com//pull/1036 fix(chat): Show the permission command as code by @omesser in https://github.com//pull/1033 perf(bench): Measure the overlay's macOS GPU compositing cost by @omesser in https://github.com//pull/1034 fix(harness): Serve the MCP endpoint from the probe before it attaches by @omesser in https://github.com//pull/1035 fix(windows): Skip Tao's event-loop window in the anchor park check by @omesser in https://github.com//pull/1040 refactor(shell): Give the Director session its own module by @omesser in https://github.com//pull/1044 perf(bench): Measure the macOS window-list poll cost (#427) by @omesser in https://github.com//pull/1042 docs: Scrub post-ADR-0024 stale capturable comments outside verify-ai-buddy by @omesser in https://github.com//pull/1041 test(shell): Colocate the Slots tests with the slot by @omesser in https://github.com//pull/1046 fix(harness): Keep the call the user is mid-answer to by @omesser in https://github.com//pull/1039 perf(bench): Add a gated window-flood load generator for macOS by @omesser in https://github.com//pull/1043 feat: Hint in Chat when a window read has no names by @omesser in https://github.com//pull/1045 refactor(shell): Name the proactive wake and split the Settings patch by @omesser in https://github.com//pull/1051 test(windows): Resolve pwsh without spawning the App Execution Alias by @omesser in https://github.com//pull/1052 feat(chat): Point at Chat when a touch waits on an open question by @omesser in https://github.com//pull/1053 feat(chat-ui): Add a System, Light, or Dark switch for Chat by @omesser in https://github.com//pull/1055 fix(shell): Keep the overlay panel the same size as the TaoWindow it replaces by @omesser in https://github.com//pull/1057 feat(shell): Read a Control-click on the sprite as a right click on macOS by @omesser in https://github.com//pull/1062 fix(chat): Wrap the mind line first, then the name, then the chip by @omesser in https://github.com//pull/1059 feat(harness): Keep auth method kind so agent-type login can be a button by @omesser in https://github.com//pull/1054 fix(harness): Name a launcher that dies before initialize in Chat by @omesser in https://github.com//pull/1070 feat(chat): Keep a Harness's thinking in the Chat log, collapsed once the reply lands by @omesser in https://github.com//pull/1067 feat(settings): Give Chat UI and Chat appearance their own tab by @omesser in https://github.com//pull/1068 fix(chat): Draw landing commands as code and URLs as links by @omesser in https://github.com//pull/1071 feat(engine): Hold still while a speech bubble is up by @omesser in https://github.com//pull/1073 fix(harness): Keep Chat and the character moving through attach and login by @omesser in https://github.com//pull/1075 feat: Pop in a quick message above the Character on hover by @omesser in https://github.com//pull/1077 docs: Show the locked quick-message pill in the design pages by @omesser in https://github.com//pull/1078 refactor!: Rename the product to Fidget by @omesser in https://github.com//pull/1079 feat: Bring characters to the display under the cursor (#1081) by @omesser in https://github.com//pull/1083 fix: Point forge coordinates at omesser/fidget by @omesser in https://github.com//pull/1087 docs(agents): Ask before taking over the GUI, and seed an e2e scenario library by @omesser in https://github.com//pull/1089 fix: Freeze the quick-message pill when chat cannot answer by @omesser in https://github.com//pull/1085 fix: Quit Windows Ctrl+C without Chrome_WidgetWin_0 error 1411 by @omesser in https://github.com//pull/1084 docs: Compact the developer docs and drop unreferenced PR assets by @omesser in https://github.com//pull/1093 docs(adr): Declare runtime dependencies and fail loudly when one is missing by @omesser in https://github.com//pull/1102 docs(adr): Drop superseded ADRs and compact the rest by @omesser in https://github.com//pull/1092 docs: Open the README with what Fidget is and why you would run it by @omesser in https://github.com//pull/1091 chore: Prune dead code and tests that repeat or restate by @omesser in https://github.com//pull/1101 test(harness): Cover every wake in one mid-answer test instead of three copies by @omesser in https://github.com//pull/1103 feat(harness): Declare URL elicitation so a Harness can hand Chat its sign-in link by @omesser in https://github.com//pull/1104 docs(adr): Soft-FIX bind-fail cite ADR-0026 → ADR-0023 by @omesser in https://github.com//pull/1106 feat(harness): Name a missing launcher's install page from one table, and lock the sticky landing by @omesser in https://github.com//pull/1105 docs: Drop the claim that a first-party adapter ships by @omesser in https://github.com//pull/1107 docs(adr): Fold ADR-0033 into ADR-0016 by @omesser in https://github.com//pull/1108 docs(adr): Mark ADR-0032 as amending ADR-0031, not superseding it by @omesser in https://github.com//pull/1110 chore: Delete three scripts nothing references by @omesser in https://github.com//pull/1109 fix(harness): Draw an elicitation link as the URL Open opens by @omesser in https://github.com//pull/1111 test(scenarios): Check the codex sign-in link end to end by @omesser in https://github.com//pull/1113 fix: defer session banner until harness spawn succeeds by @omesser in https://github.com//pull/1114 fix(settings): Make Cancel discard staged AI edits, including registration by @omesser in https://github.com//pull/1112 test(core): Use tempfile for the core test temp dirs by @omesser in https://github.com//pull/1122 fix(settings): Drop a registration preview that lands after Cancel by @omesser in https://github.com//pull/1124 docs: Move the Completer, Harness, and MCP reference to harness.md by @omesser in https://github.com//pull/1121 fix(chat): Break a long launcher path inside the header's mind line by @omesser in https://github.com//pull/1118 fix(settings): Wait for Tauri API on Windows instead of blank screen by @omesser in https://github.com//pull/1117 fix(settings): Send the staged key delete with Apply by @omesser in https://github.com//pull/1125 feat(harness): Let a link Fidget did not ask for wait in Chat by @omesser in https://github.com//pull/1126 perf(bench): Plot the window-list scaling curve and profile the call (#427) by @omesser in https://github.com//pull/1128 refactor(scripts): Share exclusion helpers between the two skill syncs by @omesser in https://github.com//pull/1129 feat(harness): Retire a link's row on elicitation/complete by @omesser in https://github.com//pull/1135 perf(core): Sleep out the rest of an Active tick, not a whole one by @omesser in https://github.com//pull/1133 refactor(scripts): Share one helper file between the x11 verify scripts by @omesser in https://github.com//pull/1130 test(dev_flags): Table-drive the env-over-file precedence tests by @omesser in https://github.com//pull/1131 refactor(settings): Derive the AI draft from the form's batched rows by @omesser in https://github.com//pull/1134 feat(harness): Open Chat for a link a tool call blocks on by @omesser in https://github.com//pull/1139 feat(harness): Answer a completed link's request with cancel by @omesser in https://github.com//pull/1140 chore(harness): Address the Architect's Softs on #1139 by @omesser in https://github.com//pull/1141 chore: Trim CI and script comments to the why by @omesser in https://github.com//pull/1142 feat: default first-run character to Buddy Bot by @omesser in https://github.com//pull/1144 feat(harness): Name Antigravity through Google's first-party ACP server by @omesser in https://github.com//pull/1143 fix(verify-fidget): X11 Summon held-click recipe + capturable Presence path by @omesser in https://github.com//pull/1152 docs(research): Sync alternatives matrix (antigravity + OpenPetsHQ) by @omesser in https://github.com//pull/1150 test(scenarios): Check the Chat header holds one row down to 320 points by @omesser in https://github.com//pull/1148 fix(quick-message): Link the unavailable pill to Chat by @omesser in https://github.com//pull/1154 perf(overlay): Trace and benchmark display-frame cadence on macOS by @omesser in https://github.com//pull/1149 fix(test): Match verify-anchor search to Windows outer 136x39 by @omesser in https://github.com//pull/1159 docs(research): Weigh running the npx presets without npx by @omesser in https://github.com//pull/1147 docs(adr): Keep the npx presets on the latest adapter and probe the launcher by @omesser in https://github.com//pull/1163 feat: freeze character movement while QM pill is visible by @omesser in https://github.com//pull/1157 feat(quick-message): auto-hide pill after 3s away from sprite and pill by @omesser in https://github.com//pull/1158 fix(harness): Give a cold npx first run a minute to attach by @omesser in https://github.com//pull/1164 perf(core): Pace a moving sprite's ticks from the last deadline by @omesser in https://github.com//pull/1165 perf(overlay): Skip the redraw on an unchanged frame resend by @omesser in https://github.com//pull/1166 fix(verify-fidget): map Quick Message hover composer by @omesser in https://github.com//pull/1167 docs(readme): Lead with the shields and the new banner by @omesser in https://github.com//pull/1169 test(bench): Hold BMO still in idle and split Engine ticks by motion by @omesser in https://github.com//pull/1173 docs(readme): Move the Harness Support reference into docs/harness.md by @omesser in https://github.com//pull/1170 docs(readme): Turn the Characters table into a four-column grid by @omesser in https://github.com//pull/1171 docs(readme): Fix formatting and stale claims by @omesser in https://github.com//pull/1179 docs(readme): Open with one Get It section by @omesser in https://github.com//pull/1180 docs(development): Add the Shimeji Shop import path by @omesser in https://github.com//pull/1181 feat(harness): Check the launcher with a version probe before spawning it by @omesser in https://github.com//pull/1176 feat(chat): Keep Chat clear and responsive while a Harness initializes by @omesser in https://github.com//pull/1178 docs(development): Document the Character Manifest for authors by @omesser in https://github.com//pull/1182 docs(readme): Lead with full Linux support for windows and edges by @omesser in https://github.com//pull/1184 perf(deps): remove unused dependencies and features by @omesser in https://github.com//pull/1187 chore(deps): bump tauri-plugin-updater from 2.12.0 to 2.13.0 by @dependabot[bot] in https://github.com//pull/1190 chore(deps): bump tauri-plugin-global-shortcut from 2.3.2 to 2.4.0 by @dependabot[bot] in https://github.com//pull/1191 test(harness): Fix the Windows probe-timeout test and cut it from 3 s to 0.1 s by @omesser in https://github.com//pull/1196 fix(quick-message): 1.5s hover, snap-back, thinking on send, opacity fades by @omesser in https://github.com//pull/1198 fix(chat): Open Chat on the display the sprite stands on, beside it by @omesser in https://github.com//pull/1197 fix(chat): Box a dead launcher's captured output and command, and check it in a scenario by @omesser in https://github.com//pull/1183 fix(character): Trim the transparent rows under Trump's feet by @omesser in https://github.com//pull/1201 fix(chat): Retry the sign-in when the picked Harness is attached but not signed in by @omesser in https://github.com//pull/1202 test(settings): Press Apply in the keyboard sitting's Enter check by @omesser in https://github.com//pull/1205 docs(readme): Lead "Get It" with Settings, not env vars by @omesser in https://github.com//pull/1206 fix(package): Search per-platform data directories for Character Packages by @omesser in https://github.com//pull/1207 docs: Record the v1 performance baseline for drawing layers by @omesser in https://github.com//pull/1203 perf: Stop giving the Linux taskbar anchor its own web process by @omesser in https://github.com//pull/1212 fix(engine): Preempt the walk while a bubble or the pill is up by @omesser in https://github.com//pull/1208 fix(windows): Let the Chat window be a Perch by @omesser in https://github.com//pull/1215 fix(character): Match Trump's waiting-4 frame to the rest of the loop by @omesser in https://github.com//pull/1222 fix(chat): Keep the landing at the top when a branded Harness connects by @omesser in https://github.com//pull/1221 perf(macos): Read the window list beside the riding tick by @omesser in https://github.com//pull/1209 fix(windows): Open Settings from Chat without blanking it or hanging the next open by @omesser in https://github.com//pull/1217 fix: Build on Rust 1.99 and keep the macOS runner's slow wake off CI by @omesser in https://github.com//pull/1227 test(chat): Wait for the chat page itself before driving it by @omesser in https://github.com//pull/1228 chore: Delete the one-time rename-to-fidget lever and its test by @omesser in https://github.com//pull/1233 docs(readme): Give Codex and Goose marks, and keep each harness name on one line by @omesser in https://github.com//pull/1232 ci: Run the renderer tests in their own Ubuntu job by @omesser in https://github.com//pull/1230 test(snapshot): Lower the idle poll floor to 40 ms by @omesser in https://github.com//pull/1234 feat(character): Give Trump a talk cycle that talks, and a wave on greet by @omesser in https://github.com//pull/1224 test: Launch Chrome once per renderer test and cap budgets at 90s by @omesser in https://github.com//pull/1229 fix(quick-message): Keep the pill down after a Summon until the pointer leaves the sprite by @omesser in https://github.com//pull/1237 docs: Open the README on company (Soft-FIX) by @omesser in https://github.com//pull/1231 test: Drop the last ai-buddy name from a test fixture path by @omesser in https://github.com//pull/1238 docs(verify-fidget): QM hover 1.5s + post-Summon latch Gotcha by @omesser in https://github.com//pull/1239 chore: Prune unread mask-rebuild counters and restated tests by @omesser in https://github.com//pull/1236 fix(input): Wake the Director for a Poke only once no second click can make it a Summon by @omesser in https://github.com//pull/1240 docs(design): Propose the landing page as a Dated mockup by @omesser in https://github.com//pull/1211 fix(quick-message): Hide the pill on Send and while Chat is up, and raise Chat over the bubble by @omesser in https://github.com//pull/1243 fix(harness): Fail preflight when Node is older than the npx adapter by @omesser in https://github.com//pull/1242 fix: Rebuild Settings when a load never finishes by @omesser in https://github.com//pull/1241 feat(site): Serve a Generated landing page at the site root by @omesser in https://github.com//pull/1244 fix(harness): Parse Node engine ranges with semver by @omesser in https://github.com//pull/1247 fix(harness): Drop the Node engine gate from preflight by @omesser in https://github.com//pull/1248 feat: Report which display an Instance is on by @omesser in https://github.com//pull/1245 docs(readme): Shorten the title so the landing headline fits by @omesser in https://github.com//pull/1250 fix(chat): Show the reason a Harness gives when it fails a turn by @omesser in https://github.com//pull/1253 fix(chat): Box a preflight refusal on the Harness error landing by @omesser in https://github.com//pull/1249 docs(readme): Lead with a hero GIF of a throw, a perch, and a reply by @omesser in https://github.com//pull/1188 New Contributors @github-actions[bot] made their first contribution in https://github.com//pull/1026 Full Changelog: https://github.com/omesser/fidget/compare/v0.0.1-dev...v0.1.0