Commit Graph
82 Commits
Author SHA1 Message Date
Bohdan Triapitsyn 2dcbbebf4e fix: build macOS x64 releases on Intel 2026-07-22 18:59:56 +03:00
Bohdan Triapitsyn 733bd37c37 feat: make AI review verdicts advisory
Removes the separate review check and relies on review labels/comments instead
Marks workflow/tooling failures with review:automation-failed
Updates review guidance to reflect the advisory verdict model
2026-07-22 10:33:25 +03:00
Bohdan Triapitsyn a62731bd6e feat: publish review check on reviewed HEAD
Adds a dedicated `review` check for the exact pull request HEAD
Keeps manual review commands reported separately from the default branch job
Documents the new review check behavior in contributing guidelines
2026-07-22 10:21:11 +03:00
Bohdan Triapitsyn c4ac55a7dd feat: enforce pull request readiness reviews 2026-07-21 23:50:04 +03:00
Bohdan Triapitsyn 5a80638fba release v1.16.1 2026-07-14 01:51:00 +03:00
502c96630e feat(desktop): Linux AppImage polish — window controls, updater UX, docs (#2144)
* feat(electron): add Linux AppImage releases

* ci: cache Linux OpenCode CLI artifacts

* fix(ci): await Linux release inventory check

* fix(electron): add frameless window controls on Linux desktop

Linux AppImages were created without native WM decorations and without
in-app controls, leaving users unable to close the window with a mouse.

Treat Linux like Windows: frameless BrowserWindow plus the existing
WindowsWindowControls header buttons and app-menu entry. macOS keeps
hidden title bar with traffic lights unchanged.

Shared usesFramelessElectronChrome() helper drives main window, mini
chat, header insets, and titlebar controls.

Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com>

* feat(desktop): add configurable window controls position by OS

Add desktopWindowControlsPosition setting (auto/left/right) with OS-aware
defaults: Linux left, Windows right. Wire frameless chrome controls in
Header, TitlebarLeftControls, and MiniChatLayout, plus a Sessions settings
control for Windows and Linux desktop shells.

Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com>

* fix(desktop): address Linux AppImage release review findings

Propagate updater capability errors to the UI, treat missing
latest-linux.yml feeds as no-update, stop installed-apps IPC spam on
Linux, document FUSE/AppImage limits, add CHANGELOG entry, migrate
remaining btriapitsyn URLs, and run Electron Linux unit tests on PRs.

Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com>

---------

Co-authored-by: jibanez-staticduo <staticduo@gmail.com>
Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com>
2026-07-13 08:59:31 +03:00
Bohdan Triapitsyn 44f44da212 ci: add friendly android release asset names 2026-07-07 20:38:05 +03:00
Bohdan Triapitsyn d447952344 ci: allow manual mobile release tag uploads 2026-07-07 20:26:20 +03:00
Bohdan Triapitsyn 7a508f1b14 ci: add mobile platform release toggles 2026-07-07 20:20:47 +03:00
Bohdan Triapitsyn d45cae485c feat: trigger mobile release from the main release workflow
Adds a reusable mobile release workflow call from the release pipeline
Passes version, build number, and release tag into Android artifact publishing
Tightens release workflow shell quoting and version handling
2026-07-07 13:00:11 +03:00
Bohdan Triapitsyn 00346fa6a1 ci: build ios release with macos 26 2026-07-07 12:37:42 +03:00
Bohdan Triapitsyn a92c4a335b ci: match ios extension signing blocks 2026-07-07 12:22:39 +03:00
Bohdan Triapitsyn ef9f8a01e2 ci: patch ios signing per target 2026-07-07 12:18:36 +03:00
Bohdan Triapitsyn 1434034dbf ci: install ios profiles by uuid 2026-07-07 12:13:27 +03:00
Bohdan Triapitsyn 4d13253cfe ci: use ios provisioning profile uuids 2026-07-07 12:07:19 +03:00
Bohdan Triapitsyn 8645802dc2 ci: force ios distribution signing 2026-07-07 12:02:10 +03:00
Bohdan Triapitsyn 29483997ea ci: match ios release signing blocks 2026-07-07 11:57:12 +03:00
Bohdan Triapitsyn ab3ce3354f ci: fix ios release signing patch 2026-07-07 11:51:25 +03:00
Bohdan Triapitsyn 1db8f5cc80 ci: use app store signing for mobile ios 2026-07-07 11:46:46 +03:00
Bohdan Triapitsyn e9ab5618c3 ci: add mobile release workflows 2026-07-07 11:39:17 +03:00
Bohdan Triapitsyn de1b85ac56 feat(voice): first-class voice input and local TTS across web, desktop, and mobile (#2018)
Complete rebuild of voice input on a server-authoritative streaming
architecture, replacing the legacy Web Speech / whole-blob / WASM engines
and the dead voice-agent layer (~4k lines removed).

Speech-to-text (dictation):
- Client streams 16 kHz mono PCM16 chunks over /api/dictation/ws with
  seq/ack ordering; buffered audio is retained and replayed on reconnect
- Server transcribes and streams live partial transcripts back;
  segments auto-commit every ~15s with silence suppression and adaptive
  finalization timeouts
- Local provider (default, zero config): sherpa-onnx models in a forked
  worker process — auto-download with progress, staged extraction with
  verification, corrupt-model auto-recovery, idle shutdown after 5 min
- Model catalog with settings picker (accuracy/speed ratings, sizes,
  download/delete): Parakeet TDT v2 (English) and v3 (25 European
  languages, auto-detected), Whisper base and tiny (multilingual, light)
- OpenAI-compatible provider for any Whisper endpoint
- Composer overlay with live transcript, volume meter, timer, and
  cancel / insert / insert-and-send actions; failed transcriptions keep
  their audio for retry or accepting the partial text as-is
- Configurable keyboard shortcut (default mod+alt+v) toggles dictation;
  Enter confirms and Escape cancels while recording
- Overlay is pixel-aligned with the composer (measured footer height,
  matching paddings/typography/gaps) — no layout shift when toggling

Text-to-speech:
- Local Kokoro provider (English, 11 voices) synthesized in the same
  worker via /api/dictation/tts/speak, managed by the shared model
  pipeline; sentence-pipelined playback keeps time-to-first-audio at
  ~1 sentence regardless of message length, and stop cancels in-flight
  synthesis
- Sanitizer keeps inline-code content (strips backticks only), reads
  interword slashes aloud, and removes only absolute file paths

Settings:
- Voice page unified: a single read-aloud toggle owns all playback
  options (the confusing "Enable Voice Mode" is gone); a new "Enable
  voice input" toggle (default on, persisted to settings.json) hides
  the composer mic entirely when disabled

Mobile and transport:
- iOS/Android microphone permissions added (dictation was previously
  impossible on mobile)
- Fixed Android WebSocket upgrades: the Capacitor WebView origin
  (https://localhost) was missing from the packaged-client allowlist,
  403-ing every WS connection — root cause of the old mobile SSE lock,
  which is now removed for all transports

Security and conventions:
- All HTTP routes sit behind the global /api auth gate; the WS upgrade
  explicitly validates the UI session and origin, with oc_url_token
  narrowly allowlisted and covered by tests; the dictation socket mints
  a fresh URL token before connecting
- Routes register before the generic OpenCode proxy; the client goes
  through runtimeFetch/getRuntimeUrlResolver, and runtime switches
  reset the dictation socket
- VS Code deliberately reports dictation as unavailable (no server
  process in that runtime)

CI: workflow Node bumped 20 -> 22 to match the repo engines and fix
better-sqlite3 installs broken by node-gyp@latest on Node 20.

New dependency: sherpa-onnx-node (prebuilt N-API; macOS/Linux x64+arm64,
Windows x64 — Windows-on-ARM falls back to the OpenAI-compatible provider)
2026-07-04 02:48:07 +03:00
Bohdan Triapitsyn 01e0905e8b fix(ci): run OpenCode CLI version step in bash
The release workflow reads the pinned @opencode-ai/sdk version with bash command-substitution syntax before caching the bundled OpenCode CLI artifact. On Windows jobs GitHub Actions defaults run steps to PowerShell, which treated VERSION= as a command and failed before the cache/build steps ran.

Set shell: bash on the release workflow version-discovery steps so macOS and Windows use the same syntax. The smoke workflow already used bash for the Windows version step, which is why the smoke artifact could pass while the production Windows release job failed.
2026-07-02 19:23:42 +03:00
Bohdan Triapitsyn 33ecd628bd feat(desktop): bundle pinned OpenCode CLI
Bundle the official OpenCode CLI into Electron desktop builds instead of relying on whichever opencode executable happens to be first on PATH. Pin @opencode-ai/sdk to an exact version and use that version as the source of truth for the downloaded CLI artifact.

Add an Electron prepare script that maps the current platform/arch to the official OpenCode release artifact, downloads it from GitHub releases, caches the archive under packages/electron/.cache, stages the binary under resources/opencode-cli, verifies opencode --version, and skips work when the staged binary already matches.

Prefer explicit OpenCode binary overrides first, then the bundled Electron CLI, then PATH/system installs. Keep rejecting the Windows OpenCode desktop app executable as a CLI candidate and add resolver tests for bundled priority, explicit override priority, resourcesPath lookup, and desktop-app rejection.

Suppress OpenCode CLI update prompts when the active CLI source is bundled. The server now reports upgrade-status as unavailable for bundled CLI while still returning the current OpenCode version for About, and rejects direct upgrade attempts with a 409 instead of trying to mutate the bundled binary.

Update desktop release, smoke, and manual macOS DMG workflows to prepare and verify the bundled CLI before packaging, verify the packaged app contains the expected CLI, cache downloads by OS/arch/OpenCode version, and align the Windows smoke runner with production windows-2022.

Document desktop bundling behavior, ignore generated CLI/cache files, add oc-dev helpers, and keep Web/VS Code behavior dependent on installed OpenCode CLI rather than desktop bundled resources.
2026-07-02 17:43:33 +03:00
Tom Rochette 4e0dded547 ci: add merge-conflict label automation workflow (#1942)
Adds label-merge-conflict workflow using eps1lon/actions-label-merge-conflict
to label PRs with merge-conflict:true when they have conflicts. Triggers on
push to main, pull_request_target (opened/synchronize/reopened), and manual
dispatch. Uses the bot app token for label writes and is scoped to the
openchamber/openchamber repo.
2026-07-01 04:42:59 +03:00
Bohdan Triapitsyn efdfbf3ce2 fix: improve PR review UX guidance
Adds behavioral contract checks for user-facing changes
Discourages raw schema-driven UI defaults in reviews
Applies guidance to automated review workflow prompts
2026-06-23 23:16:06 +03:00
Nicolas Charpentier 43f677d56d ci: skip stale workflow on forks (#1663) 2026-06-23 14:32:31 +03:00
Bohdan Triapitsyn 7290c4aa51 ci: pin Windows release runner to 2022 2026-06-15 15:51:37 +03:00
Nicolas Charpentier 20db4cbb27 chore: pin GitHub Actions to SHAs (#1625) 2026-06-13 00:44:12 +03:00
Bohdan Triapitsyn 72d814110a ci: fix bot help command responses 2026-06-11 01:51:04 +03:00
Bohdan Triapitsyn c7a43bb8ec ci: add openchamber bot mention commands 2026-06-10 14:01:10 +03:00
Bohdan Triapitsyn 0153f8787d ci: prevent review bot probe comments 2026-06-10 11:56:53 +03:00
Bohdan Triapitsyn ba786f3b89 ci: fix manual review reaction cleanup 2026-06-10 11:46:26 +03:00
Bohdan Triapitsyn 3dad22433b ci: clarify repeat PR review chronology 2026-06-10 11:40:43 +03:00
Bohdan Triapitsyn 92b9a9f88d ci: harden manual PR review workflow 2026-06-10 11:33:05 +03:00
Bohdan Triapitsyn b494dba8ed ci: use app token for remaining automation 2026-06-10 02:20:05 +03:00
Bohdan Triapitsyn 161d11021c ci: use app token for automation comments 2026-06-09 19:27:54 +03:00
Tom Rochette d4ef1fd8c0 Setup stale issue/pr cleanup workflow (#1546) 2026-06-06 10:58:06 +03:00
Bohdan Triapitsyn a5628b20df release v1.12.2 2026-06-05 15:32:13 +03:00
Tom Rochette ebc2168ceb Create and push branches in reproduce-issue and update reproduction labels (#1541) 2026-06-05 09:57:14 +03:00
Bohdan Triapitsyn 5d7b5c89f2 ci: add automated opencode PR review workflow
Adds safe PR review automation for pull requests and /oc-review comments
Supports fork PR review without checking out or executing untrusted code
Defines a dedicated read-only PR review agent
2026-06-04 03:50:05 +03:00
Tom Rochette 6fd46ded3a Fix concurrency in reproduce-issue (#1514) 2026-06-03 12:30:22 +03:00
Tom Rochette f5581585c8 Bun install in reproduce-issue (#1512)
* Bun install in reproduce-issue

* Update .github/workflows/reproduce-issue.yml
2026-06-03 12:29:38 +03:00
Bohdan Triapitsyn c7bc026b4b refactor: remove legacy Tauri desktop support
Electron updater now uses Electron release metadata only
Removed legacy Tauri package and migration workflow
Replaced Tauri shim usage with the desktop bridge
2026-06-03 02:42:00 +03:00
Tom Rochette aefbdbc52f Add reproduce-issue agent (#1497) 2026-06-02 10:19:00 +03:00
Tom Rochette 16294d84c2 Improve triage agent definition (#1498) 2026-06-02 10:15:58 +03:00
Bohdan Triapitsyn 51901b980e ci: disable Windows release artifact
Skips Windows desktop build in release workflow
Removes Windows manifest from release finalization
2026-05-26 19:18:22 +03:00
Bohdan Triapitsyn 00b654085a ci: update GitHub Actions runtime actions 2026-05-26 18:30:48 +03:00
Dave OteroandBohdan Triapitsyn becd240168 Add Windows Electron desktop support (#1093)
* fix: make upstream sync actions target the selected remote

Ensure fetch and pull actually honor upstream selection so fork maintenance works from the Git sidebar, and surface upstream branch status alongside the primary origin-tracking indicators.

* feat: add Windows Electron desktop foundation

* fix(electron): stabilize Windows desktop packaging

* fix(electron): stabilize Windows desktop chrome

Use native Windows titlebar behavior with an Alt-accessible hidden menu, and harden Windows dev command launching so the desktop app follows platform conventions.

* fix(electron): stabilize Windows dev startup

* fix(electron): clarify desktop artifact names

* fix(electron): harden Windows desktop release and launch

* fix(electron): address Windows release review

* fix(electron): point updater and release links to org repo

* Fix Windows settings persistence fallback

* Fix Windows Electron dev startup

* Add Windows Electron window controls

* Fix Windows Electron install and opencode launch

* fix: resolve git status for repositories without upstream

Fixes repository detection stuck on Checking repository
Handles git status when no upstream is configured
Adds regression coverage for git status loading

* Add Windows app menu button

* fix: preserve file editor line endings

* ci: add desktop release smoke workflow

---------

Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
2026-05-26 18:13:59 +03:00
Bohdan Triapitsyn c61f16e0dd feat: add GitHub Actions workflows for opencode and triage 2026-05-26 11:03:07 +03:00
Bohdan Triapitsyn 6f4e0068c1 docs: add localized documentation pages
Adds translated docs for Spanish, Korean, Polish, Portuguese, Ukrainian, and Chinese
Covers install, quickstart, themes, troubleshooting, tunnels, and reverse proxy guides
Updates docs workflow, sidebar, and contributor documentation
2026-05-23 00:33:39 +03:00