| Files | Last commit | Last update |
|---|---|---|
fix(desktop): center the main window on startup (#1133) Co-authored-by: OLavrik <Olya_lavrik@inbox.ru> | 2 days ago | |
fix(desktop): release the menu command latch after a deadline (#1200) * fix(desktop): release the menu command latch on stale key state The repeat gate swallows menu commands while any key reads down, and its latch only released when a poll saw every key up: a key state that never clears — a KVM-over-IP or remote-desktop stack that lost the key-up packet leaves CGEventSourceKeyState reading a phantom key forever — permanently disabled every gated menu command (Settings, Close, and their accelerators) while role-handled shortcuts like quit kept working, until an app restart cleared the in-memory latch (#1199). Distinguish a held key from a stale one by event freshness, not time: a genuinely held non-modifier key auto-repeats and keeps producing key-down events, so the latch now also releases when the state claims a key is down but no key-down event has arrived for 750 ms — a signature only a lost key-up produces. The desktop guarantee that a held key never fires a command twice is preserved exactly: real repeats keep the events (and the latch) flowing. - keyState: exposes sinceKeyDown (seconds, null when unreadable) - repeatGate: releases on release or staleness; unreadable freshness falls back to trusting the state - index.ts: wires readKeys().sinceKeyDown - tests: repeat-keeps-latched, stale-releases, unreadable fallback, plus the pre-existing release/unreadable cases * docs(desktop): state the repeat gate's staleness release in the SPEC The native-menu section described the latch purely as 'until no non-modifier key is down'; the stale-state release (no key-down event for 750 ms while a key still reads down) is now recorded alongside the repeat guarantee it preserves (#1199 review). * Raise the repeat gate's stale-key release to 2.5 s so a long macOS delay-until-repeat cannot fire a held command twice, and move its rationale out of comments into the SPEC. * Assert the tall questionnaire's follow state against the reader's actual edge distance, since wheeling to the bottom-most Submit row can legitimately re-attach follow. --------- Co-authored-by: OLavrik <Olya_lavrik@inbox.ru> | 2 days ago | |
fix: show ThinkRail's icon and name on Windows executables instead of Bun's (#881) * feat(shared): derive Windows file properties from the release identity * fix(desktop): order the Windows icon's frames largest first * fix(cli): stamp ThinkRail's icon and file properties on the Windows binary * test(artifact-tests): check the Windows CLI binary's icon and file properties * fix(desktop): brand bun.exe, launcher.exe and the uninstaller as ThinkRail * fix(desktop): set the Windows window icon that Electrobun leaves unset * docs(specs): record how Windows executables get ThinkRail's identity * fix(desktop): add the DPI-scale frames to the Windows icon and pin signed-PE branding * fix(desktop): group a pinned ThinkRail and its window on the Windows taskbar (#883) * fix(desktop): give the Windows process an explicit AppUserModelID * fix(desktop): stamp ThinkRail shortcuts and pins with the process AppUserModelID * docs(specs): record the Windows taskbar identity * refactor(desktop): read Electrobun's shortcut manifest without a type cast * fix(desktop): match a shortcut's target by its canonical Windows path * fix(desktop): harden the taskbar-identity stamp after review * refactor: move the native icon set to packages/shared * fix(desktop): cache COM thunks, open shortcuts read-only until a stamp is needed, defer the taskbar stamp past readiness, and harden the Windows identity checks --------- Co-authored-by: OLavrik <Olya_lavrik@inbox.ru> | 12 days ago | |
refactor(desktop): standardize Electrobun builds and isolate artifact tests (#443) * chore(desktop): upgrade Electrobun to 2.0.1 * chore: align the Bun toolchain and types to 1.4.0 * refactor(desktop): replace handwritten types with the official SDK * refactor(desktop): use framework builds and isolate artifact tests * ci: expose the expanded macOS app for private signing * docs(ci): align signing ownership with the private pipeline * docs(testing): record artifact collector contract ownership * docs(ci): preserve private action ownership after rebase | 1 month ago | |
feat(desktop): ship the macOS x64 desktop build (#894) * feat(desktop): ship the macOS x64 desktop build Electrobun 2.0.1 publishes no macOS x64 core, so Intel Macs had no desktop installer. Pin 2.0.5 — the first release with a macos-x64 core and the paired Hutch 0.28.2 — and teach the release recipe about the new target. - collector maps bun-darwin-x64 to the macos-x64 DMG, update manifest, and expanded-app archive under thinkrail-desktop-darwin-x64.dmg - updater enablement accepts darwin-x64 like the other shipped targets - install.sh still refuses the Intel CLI, but now points at the DMG - specs and README drop the "no Intel build" claim * feat(install): ship the Intel macOS CLI and keep Rosetta shells on arm64 * docs(desktop): refresh Electrobun 2.0.5 behaviour notes and document the Intel CLI * docs(architecture): Cottontail is no longer Electrobun's default runtime --------- Co-authored-by: 金宇 <jinyu6@antcode.com> Co-authored-by: rsolmano <rinat.suleimanov@jetbrains.com> | 12 days ago | |
fix(desktop): rebrand Windows executables whose signature entry outlived its bytes (#946) * fix(desktop): rebrand Windows executables whose signature entry outlived its bytes * ci: build and smoke the desktop app on Windows * docs(specs): record Windows desktop CI and the stale signature entry Hutch leaves | 11 days ago | |
feat(extensions): ship web access as a ThinkRail extension whose switch also covers its skills (#965) * feat(extensions): ship web access as a ThinkRail extension whose switch also drops its skills * fix(extensions): keep a disabled extension's skills out of pi's inputs and reload again after a mid-reload toggle * fix(agent): keep web_search headless for a user's own pi-web-access while the web-access extension is off * fix(agent): reload again only when the extension policy moved during a reload | 10 days ago | |
build(ts): turn on unused, implicit-return and fallthrough tsc checks (#790) * build(ts): enable unused, implicit-return, and fallthrough checks in the base tsconfig Turn on noImplicitReturns, noUnusedLocals, noUnusedParameters, noFallthroughCasesInSwitch, allowUnreachableCode: false, and allowUnusedLabels: false for every project. Fix the four existing hits. Desktop keeps noImplicitReturns off because the Electrobun SDK sources it compiles fail that check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * build(ts): fix unused declarations upstream added since the checks were enabled * build(ts): keep desktop's own source clean under noImplicitReturns The desktop noImplicitReturns override hid one desktop site besides the two Electrobun SDK functions: runtimeSourceMap.test.ts's frameOf. An explicit annotation lets control flow see explode() never returns, so only the SDK sources need the override. The desktop spec now states when the override goes away (blackboardsh/electrobun#590). * docs(desktop): record the noImplicitReturns override as approved and temporary The override cannot be scoped to the Electrobun SDK files, so it also stops checking desktop's own source. Remove it once an Electrobun release ships blackboardsh/electrobun#590. --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: danyaberezun <danya.berezun@gmail.com> | 14 days ago |
| Files | Last commit | Last update |
|---|---|---|
| 2 days ago | ||
| 2 days ago | ||
| 12 days ago | ||
| 1 month ago | ||
| 12 days ago | ||
| 11 days ago | ||
| 10 days ago | ||
| 14 days ago |