Commit Graph
160 Commits
Author SHA1 Message Date
FumingPower adc0c67f75 docs: remove duplicate Muse badge from README (#22497) 2026-09-23 17:23:29 -07:00
Jinjing 49121c32d8 docs(wechat): point community QR code at group 10 (#22403)
Group 9 is full; swap the README QR code and copy (all locales) to the new group 10 invite.
2026-09-22 22:33:16 -07:00
NeilandAdrien De oliveira ebed0964a2 feat(agents): add first-class Muse Code harness (#22216)
* feat(agents): add first-class Muse Code harness

Add Muse as a supervised Orca agent across desktop, mobile, session history, source control, local hooks, SSH, WSL, and native Windows. Preserve user settings, support Muse 1.3 hook environment allowlists, and recognize versioned foreground processes. Include question, waiting, completion, resume, and readiness coverage.

Co-authored-by: homesh-dev <300847526+homesh-dev@users.noreply.github.com>

Co-authored-by: jeffhuen <32542276+jeffhuen@users.noreply.github.com>

Co-authored-by: John Cusack <johncusackccm@gmail.com>

Co-authored-by: Adrien De oliveira <75085839+adriendeoliveira@users.noreply.github.com>

* test(agents): cover Muse remote hook registration

* test(agents): cover Muse hook and source-control contracts

* test(agents): exclude Muse hook metadata from script mode check

* test(agents): keep Muse skill picker coverage stable

* test(ai-vault): include Muse in every-agent fixture

* test(mobile): repin Muse agent icon closure

* fix(muse): detect questions and approvals from structured Muse signals

Muse 1.3 fires no hook for request_user_input, so a pending question left
the pane "working". Its internal reminder subagents also post hooks with
their own session ids (even after Stop), which surfaced "tool failed" rows
and flipped finished panes back to working.

- Read pending questions from Muse's session log
  (user_input_prompt_requested/settled) via the existing transcript poll,
  now generalized from Codex subagents to Muse on main and relay.
- Drop child-session hooks (SubagentStart ids, or turn_id === session_id).
- Treat Notification permission_prompt as the approval wait; PermissionRequest
  also fires for auto-approved calls, so it only caches the approval card.
- Ignore Notification copy as the prompt; poll replays are not new prompts
  or turn boundaries.
- Allowlist USERPROFILE so Windows cmd AutoRun doesn't fail every hook.

* perf(muse): parse only question events from the session log

Most Muse session-log lines are large model/tool records. Filter raw lines
by the user_input_prompt_ marker before JSON.parse via an optional
readJsonlCursor line filter.

* fix(muse): unwrap batched log records and scope questions to the live turn

Review follow-ups: question events inside retained_frame batches were
skipped, and a question left open by a crash or interrupt stayed pending
for the pane's life. Share the history scanner's retained_frame unwrapper,
and only report a pending question whose run_id matches the hook turn_id.

* refactor(muse): drop type assertion in retained_frame unwrap

* fix(agent-hooks): satisfy exhaustive-switch lint in transcript poll policy

---------

Co-authored-by: Adrien De oliveira <75085839+adriendeoliveira@users.noreply.github.com>
2026-09-22 19:13:11 -07:00
0677271709 fix(orchestration): reap leaked worker terminals via process-incarnation fallback — stops an unbounded PTY/process leak on Remote Server (OOM / cgroup PID exhaustion) (#18790)
* fix(orchestration): remint live handle from process incarnation on worker release

When a durable terminal handle goes stale (rendererGraphEpoch fence),
inspectWorkerTerminal re-mints a live handle via
resolveTerminalHandleByProcessIncarnation + matchesProcessIncarnation so
release/stop/read act on the still-running PTY instead of reporting
missing and leaking the agent process tree.

- keep main shared host-scope re-exports; add matchesProcessIncarnation
- wire observation.terminalHandle through control/stop/release
- rebuild release-completion on main structured paths
- on missing/unattached + provably exited: settleDead fence first, then
  same-incarnation settleWorker fall back (archive may block settleDead
  mid-request); settle before recovery defer

* fix(orchestration): derive SSH host scope from the reminted handle; reuse fresh-request recovery guidance for structured workers

Addresses two open CodeRabbit review comments on PR #18790.

inspectWorkerTerminal read the dispatch authority with the stale durable
terminalHandle, so after a remint the lookup resolved nowhere and
currentHostScope was always undefined — an SSH worker with no liveness
verdict and no persisted host_scope got classified from terminal.connected
instead of unverifiable. It now reads the same effectiveHandle every other
observation in the function uses.

stopStructuredWorkerForRelease told the caller to repeat the release with
the same --retry-request, which only replays the stale release_unknown
receipt and made a structured-worker close failure permanently unretryable.
It now sources releaseUnknownRecovery from worker-release-completion so the
fresh-request-ID guidance lives in one place.

Pre-commit lint-staged (oxlint + oxfmt) run manually: clean.

* test(orchestration): exercise incarnation recovery through runtime paths

* test(orchestration): pin the incarnation read scenario to the reminted terminal

The read scenario only asserted that the call resolved, so it documented
nothing about which handle the read reached. Assert that the handle
readTerminal received resolves to the registered pane and incarnation, so
the scenario proves the read went through the reminted terminal instead of
passing on the incarnation fence's throw.

* refactor(orchestration): drop redundant incarnation prefix check; require liveTerminalHandle

* feat: add freebuff as a first-class TUI agent (#42)

<!-- orca-pr-loc -->
<!-- Programmatic LoC summary. Do not edit by hand; rewritten on every
commit. -->

| | Files | Added | Deleted | Net |
| :--- | ---: | ---: | ---: | ---: |
| Test | 0 | 0 | 0 | 0 |
| Prod | 28 | $\color{#1a7f37}{\Huge{\mathbf{+}}}$​37 | 0 |
$\color{#1a7f37}{\Huge{\mathbf{+}}}$​37 |

<!-- /orca-pr-loc -->

## ELI5

Add Freebuff (`freebuff`) as a recognized first-class TUI coding agent
in Orca alongside Codebuff and other supported agents.

## What Changed

- Registered `freebuff` across shared TUI agent definitions,
configuration catalogs, display names, and telemetry schemas.
- Added agent icons, favicons, status mappings, and mobile asset
references for Freebuff.
- Added localization strings across supported language packs (`en`,
`es`, `fr`, `ja`, `ko`, `zh`) and updated locale translation policy.
- Documented Freebuff CLI in README agent table (`npm i -g freebuff`).

## Why

Freebuff is a CLI coding agent twin of Codebuff (`npm i -g freebuff`).
Adding it to the catalog enables users to launch worktrees, run
automated sessions, and pick Freebuff directly within Orca.

## Linked Issue

N/A

## Visual Proof

`N/A` - Catalog registration and metadata definition for CLI agent
launch; UI rendering uses existing TUI agent picker and status
components.

## Testing

- Verified TypeScript contracts, schemas, and catalog configurations.
- Tested CLI detection / agent picker integration locally on Linux
(`worktree create --agent freebuff`).

## AI Disclosure

Assisted by AI coding tooling.

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why (including ELI5)
- [x] Before/after screenshots or videos attached for UI changes, or
`N/A` with reason
- [x] Self-reviewed for correctness, security, and performance
- [x] Cross-platform, SSH/remote, and path/shortcut impact considered
(or N/A)

---------

Co-authored-by: Lesley Murfin <lesley@revivebusiness.ca>

* test(orchestration): erase method overloads in worker reap fixtures

* test: document worker fixture type boundaries

* test: simplify worker fixture typing

---------

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
Co-authored-by: svc-orca[bot] <313947298+svc-orca[bot]@users.noreply.github.com>
Co-authored-by: m4air <m4air@Mac.localdomain>
2026-09-21 17:23:33 -07:00
Jinjing 3bb10e3f0c docs: remove obsolete WeChat group 8 QR code (#21927) 2026-09-20 23:14:15 -07:00
Jinjing 6a7d86ef50 docs: update Android APK link to 0.0.50 (#21605) 2026-09-19 00:18:18 -07:00
Neil 7b0701aefa chore: remove 20.7 MiB of duplicate and unused media (#20416)
* chore: remove duplicate and unused documentation media

* chore: guard README local links and refresh tile-01 vendor metadata

- Add config/scripts/check-readme-local-links.mjs: every local src/srcset/href
  in README.md and docs/readme/*.md must resolve to a tracked file. Runs in the
  ungated root_directory_guard job so docs-only diffs (which skip static_analysis)
  still catch a deleted docs-site or feature-wall asset the README embeds.
- Refresh tile-01.recorded-at.json to what vendor-feature-wall-assets.mjs now
  emits for the tab-split source path.
- Drop the pr-19217 evidence prose that cited the removed screenshots.

* fix: accept single-quoted attributes in README local link check

The parser only matched double-quoted src/srcset/href, so <img src='missing.gif'>
was skipped and the guard passed a README that GitHub renders with a broken image.
Regression test fails without the parser change.
2026-09-12 19:40:18 -07:00
Brennan BensonandMerge Sim 6fcd82918d Update mobile 0.0.48 Android download links (#19117)
* Update mobile 0.0.48 Android download links

* Update the mobile docs page APK link to 0.0.48

The docs page the READMEs link to still pointed at 0.0.46, two releases stale.

---------

Co-authored-by: Merge Sim <sim@local>
2026-09-06 13:29:08 -07:00
Jinjing 01d7228b7e docs: add WeChat group 9 QR code
Adds group 9 QR fallback QR codes and capacity guidance to the README variants.
2026-09-04 01:44:52 -07:00
OrcaWin 5a2bbef9d1 Revert "docs: add Ukrainian README translation" (#18570)
This reverts commit 963839aa4f.
2026-09-03 21:37:49 -07:00
Ihor 963839aa4f docs: add Ukrainian README translation
iho <4000375+iho@users.noreply.github.com>
2026-09-03 17:33:02 -07:00
Jinwoo Hong 3eec77c11a chore(cloud): add the relay fence broker, ops console, Terraform root, scripts, and 24 cloud-* workflows (#18413)
Phase 6 of the relay split: the relay's deploy/operate surface moves under cloud/ with 24 cloud-* workflows gated on ORCA_CLOUD_OPERATIONS_ENABLED, the Cloud SQL rollout lease action, the relay Terraform root (dual-accept identities for both repositories), scripts, docs, CODEOWNERS, and a terraform validate job in Cloud Verify.
2026-09-03 06:55:14 -04:00
Jinjing e3de6b2ce8 Add automation runs dashboard with pagination and filtering (#18226)
* Add automation runs dashboard with pagination and filtering

Adds a new Runs view in the Automations page that lets users browse all runs across automations with status/host filtering, search, and pagination support. Includes virtualized table rendering for efficient handling of large run histories and summary cards showing 24h/7d success/failure counts.

* Fix missing dependencies in useCallback hooks and imports

Missing dependencies in useCallback can cause stale closure bugs. This
adds missing state setters to dependency arrays and consolidates type
imports for consistency.

* Use keyset pagination for stable automation runs pages

Pagination now uses createdAt:id boundaries instead of offsets, so new
runs arriving between pages don't shift the window. Maintains backwards
compatibility with legacy offset cursors.

Move pagination to shared module, fix outcome counting for future-dated
runs, and improve hook state tracking on authority re-pairing or target
changes.

* Extract automation run details to top-level page view

Moves run display from detail pane to dedicated page, establishing
three-level navigation (Automations → Runs → Run Details) and simplifying
the detail pane component.

* Fix pagination stability when automation runs share createdAt

- Define a stable total order with createdAt and id tiebreaker to prevent runs tied on createdAt from being dropped when the boundary run is pruned between page requests
- Retain cursor on failed pagination so pages remain retryable
- Update ownerNotice type to AutomationActionNotice

* Extract automations list panel and worktree map logic

Split AutomationsPageSurface into smaller, focused modules for better maintainability and reusability. Move list panel UI rendering to AutomationsPageListPanel component and worktree map selection logic to a standalone utility function.

* Add i18n strings for automation runs dashboard

Adds localized strings for the automation runs dashboard view, including search, filtering by host and status, run counts for 24h/7d windows, and empty state messaging across all supported languages.

* fix missing translation

* fix missing translation
2026-09-02 13:42:14 -07:00
Jinjing 6dcab30608 Update WeChat community to group 8 (#18095)
- Remove group 7 QR code asset
- Consolidate to group 8 only
- Update all localized documentation
2026-09-02 00:11:10 -07:00
Jinjing f546f53a4e docs: update Android APK link to 0.0.47 (#17764)
Update the README download links to the latest mobile Android release.
2026-08-31 17:03:39 -07:00
Jinjing c4b39295c1 style: format codebase (#16935)
* style: format codebase

* style: format codebase

* refactor: extract skill install dialog footer and content

Extract footer and content sections from SkillInstallDialog and
SkillInstallManagementDialog into separate components for improved
maintainability and clarity of component responsibilities.
2026-08-28 00:59:21 -07:00
Jinjing b63c006ae9 Update Android download links to 0.0.46 (#16899) 2026-08-27 17:05:44 -07:00
Jinjing 9725654855 Revert "Revert "Update Android download links to 0.0.44 (#15898)" (#15899)" (#15905)
This reverts commit a04fe24c80.
2026-08-22 00:47:07 -07:00
Jinjing a04fe24c80 Revert "Update Android download links to 0.0.44 (#15898)" (#15899)
This reverts commit 5ce356cc4a.
2026-08-22 00:18:20 -07:00
Jinjing 5ce356cc4a Update Android download links to 0.0.44 (#15898) 2026-08-22 00:06:42 -07:00
OrcaWinandm4air 4fc8b65792 docs: add WeChat group 8 as fallback when group 7 is full (#15466)
Provides alternative community group with QR code when primary group
reaches capacity. Updates documentation in both English and Chinese.

Co-authored-by: m4air <m4air@m4airs-Air.localdomain>
2026-08-19 00:57:49 -07:00
Jinwoo Hong 19ba83d496 docs(mobile): add Android APK install guidance (#14978) 2026-08-17 21:38:25 -07:00
Brennan Benson 34eca1ecc7 Update mobile 0.0.43 Android download links (#14696)
* Update mobile 0.0.43 Android download links

* Sync French and Portuguese APK labels to 0.0.43
2026-08-14 22:47:00 -07:00
Jinjing 3d8c8c3d4c docs: update Android APK to 0.0.42 (#13700) 2026-08-10 17:12:53 -07:00
Neil 6cdd019367 docs(mobile): keep Android links on published release (#13565) 2026-08-10 02:22:35 -07:00
Neil bbcf89e221 chore(mobile): prepare 0.0.43 releases (#13549) 2026-08-10 01:49:33 -07:00
Jinjing 7c4c021aa6 docs: update Android APK link to v0.0.37 (#12515) 2026-08-04 03:12:23 -07:00
Jinjing 6f28c118bb docs: drop WeChat group 5/6 QRs; keep group 7 only
Older groups are full; community join path is group 7 only.
2026-08-02 19:48:51 -07:00
Jinjing 616d22406e docs: add WeChat group 7 QR with overflow guidance
Groups 5/6 filled; point community join flow at group 6 + group 7.
2026-08-02 19:47:46 -07:00
Jinjing c676b6aa3b docs: update mobile APK link to 0.0.36 (#11438) 2026-07-29 17:02:13 -07:00
Jinjing efcc015d69 docs: add WeChat group 6 QR with overflow guidance
Show group 5 and group 6 QR codes side by side so people can join group 6 if group 5 is full.
2026-07-28 01:36:06 -07:00
Jinjing a9d21b4d38 docs: update Android APK to 0.0.32 (#10245) 2026-07-23 17:04:01 -07:00
OrcaWin 569e9d88f8 docs: update WeChat QR to group 5 (#10126)
All earlier WeChat groups are full; point the README QR and copy at group 5.
2026-07-23 00:19:06 -07:00
Jinjing 99df4158b9 docs(readme): drop Windows RC download notice
Stable v1.4.147 includes the Windows fixes, so point users at latest again.
2026-07-20 11:40:17 -07:00
Jinjing 53aeeb710c docs(readme): point Windows users to v1.4.147-rc.4
Bump the Windows RC download notice and installer link to the newer RC.
2026-07-20 01:43:22 -07:00
Jinjing c240271c72 docs(readme): add French translation and reorder language links
Add a native French README and put Chinese, Japanese, and Korean first in the language switcher.
2026-07-20 01:18:55 -07:00
Neil 24cfb97d39 fix(readme): stop star/license badges showing 429 from badgen
badgen.net rate-limits against GitHub and paints "429" into the badge.
Switch stars to shields.io (repo stargazers_count), use a static MIT
license badge, and drop /stargazers links which now 404 for the public
after GitHub's July 2026 stargazer access restrictions.
2026-07-20 01:14:55 -07:00
Jinjing 207db02798 docs(readme): shorten Windows RC notice under Download Orca
Keep the callout secondary and clear that the RC has Windows-specific fixes.
2026-07-20 01:11:48 -07:00
Jinjing a69943432e Direct Windows users to v1.4.147-rc.3 for bug fixes
Updated README to guide Windows users to the latest RC release,
which includes critical Windows-specific bug fixes not yet in the
stable build. Added prominent notices at the top of the download
section and in the direct-download links.
2026-07-20 01:10:12 -07:00
Jinjing 5cdf83be5e docs: rotate WeChat QR to group 3
Groups 1 and 2 are full; point readers at the new third-group QR in EN/ZH README.
2026-07-18 12:46:58 -07:00
Jinjing 3874734dca Update README WeChat section: single group, new QR image
- Replace outdated dual-QR (primary + backup) layout with one QR code, since the first group filled up and members should join the second group instead
- Applies to both README.md and the zh-CN translation
- Remove the now-unused backup/png QR image assets
2026-07-16 00:41:34 -07:00
Jinjing e84bd666f1 Update wechat QR codes and add spacing between them in README
- Refresh star-history chart and backup WeChat QR image assets
- Add spacing between the primary and backup WeChat QR codes in both README.md and README.zh-CN.md
2026-07-16 00:30:30 -07:00
Neil 730aa7fba6 Update README.md 2026-07-15 01:23:26 -07:00
Jinwoo HongandOrca 1c275336ed chore(mobile): prepare 0.0.31 releases (#8820)
Co-authored-by: Orca <help@stably.ai>
2026-07-14 22:51:02 -07:00
Neil fb2f25e8f6 Update mobile 0.0.27 Android download links (#8257) 2026-07-11 02:21:28 -07:00
Neil 9f078567e5 Update mobile 0.0.26 Android download links (#8246) 2026-07-11 00:48:01 -07:00
Brennan BensonandOrca 7e85db4130 Update mobile 0.0.25 Android download links (#7917)
Co-authored-by: Orca <help@stably.ai>
2026-07-09 02:44:52 -07:00
Jinjing 7385494560 Add backup WeChat QR to main README 2026-07-07 18:42:57 -07:00
Jinjing 7c7ffd64ad docs: update Android APK release link (#7609) 2026-07-06 17:06:17 -07:00
Jinjing 014a06a14e Add Portuguese README 2026-07-04 17:14:11 -07:00