Commit Graph
10 Commits
Author SHA1 Message Date
OrcaWinandm4air 5f308bfa9c revert: take the 26 Phase 3 (#16741 port) PRs back out of main (#24559)
* Revert "feat(orcad): source-side dormant export of a relay-hosted SSH target (#16741 T6-8) (#24519)"

This reverts commit 783101b304.

* Revert "feat(ssh): update, roll back, recover and stop a managed orcad server (#16741 T6-5 follow-up) (#24463)"

This reverts commit 38c2d1dcb9.

* Revert "feat(ssh): deploy and pair an empty managed orcad server over SSH (#16741 T6-5) (#24453)"

This reverts commit 8b76683b40.

* Revert "fix(ssh): orcad GC honors the activation journal; readiness requires proven daemon coverage (#16741 T6 follow-up) (#24451)"

This reverts commit d3f8c5063b.

* Revert "feat(ssh): remote orcad stop by request file and journaled decommission (#16741 T6-4) (#24449)"

This reverts commit 43d9b43d3f.

* Revert "feat(orcad): supervisable server: stop requests, managed stop receipts and a lifetime that keeps its lock on failed teardown (#16741 T6-3) (#24433)"

This reverts commit b093d3ab20.

* Revert "feat(ssh): crash-safe orcad activation, rollback and recovery (#16741 T6-2) (#24423)"

This reverts commit 1a9ac0e955.

* Revert "feat(runtime): SSH access links for paired servers in a downgrade-safe sidecar (#16741 T5-1+T5-2) (#24420)"

This reverts commit 99db2bfae4.

* Revert "feat(relay): capability-gated owner reset with a durable preparation journal (#16741 T3 R1) (#24418)"

This reverts commit 34a582bd39.

* Revert "feat(ssh): track connection-manager drains, test probes and provider continuations (#16741 T2 P3+P8a) (#24407)"

This reverts commit d53063d2b1.

* Revert "feat(daemon): idle retirement, session census and recovery-only provider (#16741 T2 P4b) (#24409)"

This reverts commit ff212dbbef.

* Revert "feat(ssh): add pty.resumeClient and split SSH PTY process listing (#16741 T2 P5+P6) (#24414)"

This reverts commit 92cb71765e.

* Revert "feat(relay): await owned watcher and agent children on shutdown (#16741 T2 P1) (#24400)"

This reverts commit 6b36e4f85b.

* Revert "feat(session): retry failed renderer session writes and verify local folder PTYs (#16741 T2 P9) (#24406)"

This reverts commit d23ecef301.

* Revert "feat(ssh): remote orcad primitives on the pinned Node runtime (#16741 T6-1) (#24419)"

This reverts commit dd87ae578d.

* Revert "fix(runtime): fence runtime-environment subscriptions and status probes by identity (#16741 T5-3) (#24421)"

This reverts commit ece9e4d2e3.

* Revert "feat(orcad): migration manifest and dormant-state contracts (#16741 T6-7) (#24422)"

This reverts commit 3fbdaba262.

* Revert "feat(ssh): wire SshConnection through the work and transport close ledgers (#16741 T2 P2) (#24401)"

This reverts commit 4e8edc8872.

* Revert "feat(profiles): carry markdown frontmatter visibility in project transfers (#16741 T2 P7) (#24405)"

This reverts commit 60c93263cc.

* Revert "fix(runtime): project the PTY incarnation onto mobile session tabs (#24413)"

This reverts commit 99e0303572.

* Revert "feat(daemon): tag daemon stream data with the PTY incarnation id (#16741 T2 P4a) (#24402)"

This reverts commit 817af768b0.

* Revert "feat(ssh): port the SSH connection work ledger and transport close ledger (#16741 T2) (#24210)"

This reverts commit c9918931c8.

* Revert "feat(relay): fence and drain file and git response streams on shutdown (#24185)"

This reverts commit dc08ffeba9.

* Revert "refactor(runtime-rpc): extract the Node WebSocket lifecycle; opt-in pinned port (#24186)"

This reverts commit a789233bbb.

* Revert "feat(relay): route relay handlers through work admission; producer publication drain (#24181)"

This reverts commit 0b812bd698.

* Revert "feat(relay): land the #16741 T1 seam (work drain, publication drain, release gate) (#24156)"

This reverts commit 3aa2d3af7c.

---------

Co-authored-by: m4air <m4air@Mac.localdomain>
2026-10-02 00:52:32 -07:00
OrcaWinandm4air d53063d2b1 feat(ssh): track connection-manager drains, test probes and provider continuations (#16741 T2 P3+P8a) (#24407)
* feat(ssh): track connection-manager drains, test probes and provider continuations (#16741 T2 P3+P8a)

The SSH connection manager now registers each connection it allocates against
the connection's transport-closure notice, and tracks every connect,
disconnect, reconnect and teardown per target, so later slices can tell when a
target's local work and transports are really gone. Ordinary connect,
disconnect and quit behavior is unchanged apart from cleanup.

Manager (ssh-connection-manager.ts):
- registerConnection counts every connection a target allocated, retired pool
  entries included, until its transport-closure notice arrives.
- connect/disconnect/reconnect/disconnectConnection/disconnectAll run through
  trackTargetOperation; a failed teardown is remembered as unconfirmed.
- A failed startup is now disconnected, not just dropped from the pool.
- disconnectAndDrain(targetId, signal) and disconnectConnection(..., drain),
  bounded by a 10s timeout.
- disconnectAll(shouldDisconnect) only tears down targets the filter allows.

IPC:
- ssh-connect-attempt-registry: runSshTestConnectionProbe publishes a probe per
  target before it starts and clears testingTargets / credential flags only
  when the target's last probe settles. ssh:testConnection uses it, so quit
  still joins an in-flight probe within the shutdown budget.
- ssh-target-lifecycle-queue: runTargetLifecycle returns the operation's value.
- ssh-shutdown-drain: a mayDetach predicate (default: every target) is plumbed
  through detach, invalidation and disconnectAll.
- ssh-renderer-broadcast: targets owned by a runtime are hidden by owner too,
  not only by id prefix.
- ssh-target-registry: direct-authority resolver, installed by
  ssh-active-relay-sessions.
- Provider dispatch: unregister*IfCurrent for git and filesystem providers.

P8a, SSH provider continuations: ssh-provider-continuations tracks local
settlement of SSH filesystem writes/deletes, imports, detected-worktree
listings and worktree/folder removals per target. It records only local
settlement, never remote execution or exit.

Porting note (source: #16741 head a68b6f3531, merge-base 277c289bd4):
- Left for later slices: connectExclusive and assertTargetTransportsClosed
  (T8), hasTargetActivity (T3), assertProfileLifetimeAdmission (P8b, stubbed
  out of the manager and continuations), the reset admission checks in
  ssh-connection-handlers and the reset predicate in the shutdown drain (T3),
  the network-tunnel resolver (T4), and the managed-orcad provisioning test
  hunks in ssh-target-registry.test.ts (T6).
- Tests read the manager's bookkeeping through
  ssh-connection-manager-test-probes until T3/T8 expose readers. Two of the
  four deferred disconnect-drain cases are restored; the two that need
  connectExclusive, two closure cases that need it and three profile-admission
  cases stay deferred.
- The removal and detected-worktree call sites were rebased onto main's
  background removal and execution-host routing. filesystem-import-ssh moved
  its remote-existence helpers out to stay under 300 lines.

* test(ssh): name the filesystem continuation handler payload type

---------

Co-authored-by: m4air <m4air@m4airs-Air.localdomain>
2026-10-01 11:25:29 -07:00
dfdcfcf61f feat(ssh): plain SSH terminals and SFTP browsing when no Orca runtime can run (#24147)
* feat(ssh): connect in plain SSH mode when no Orca runtime can run on the host

Runtime ladder rung D (design D6): instead of failing the connect, register an
ssh2 shell-channel PTY provider and an SFTP-only filesystem provider and publish
the classified reason on the SSH connection state.

* fix(ssh): harden plain SSH mode against stale reconnects, host sleep and tilde cwd

- Only the current connect or reconnect attempt may enter plain SSH mode; a superseded
  reconnect whose ladder ends at rung D no longer registers a second provider set.
- Host-sleep resume probes a plain session over SFTP instead of always reconnecting,
  which ended every open plain shell.
- A home-relative cwd keeps its tilde outside the quotes so the shell expands it.
- The SFTP provider implements folder download, which the connect state advertises.

* docs(ssh): rung D now means plain SSH mode, not a failed connect

---------

Co-authored-by: m4air <m4air@m4airs-Air.localdomain>
Co-authored-by: m4air <m4air@Mac.localdomain>
2026-10-01 03:24:26 -07:00
OrcaWinandm4air 4085e1cf60 fix(memory): release stale session registries (#21734)
* fix(memory): bound session and lifecycle registries

* fix(memory): bound transient filesystem registries

* fix(memory): cap path and locale caches

* fix(memory): bound runtime recovery registries

* fix(memory): bound host mirror gap verdicts

* fix(memory): bound shell startup env cache

* fix(memory): bound gitlab host context cache

* fix(memory): release removed ssh generations

* fix(memory): expire cloud refresh replay guards

* fix(memory): release retired plugin generations

* fix(memory): bound plugin log key retention

* fix(memory): bound automation authority generations

* fix(memory): bound native chat enrichment cache

* fix(memory): bound web session tracking generations

* fix(memory): bound codex credential absence paths

* fix(memory): bound WSL canonical path cache

* fix(memory): bound sparse checkout cache

* fix(memory): bound shared directory cache

* fix(memory): bound advertised URL scan snapshots

* fix(memory): bound automation manager cache

* fix(memory): bound web session reorder intents

* fix(memory): bound web session focus intents

* fix(memory): bound web session handoffs

* fix(memory): bound automation dispatch tokens

* fix(memory): bound host mirror waiters

* fix(memory): bound retained session activity

* fix(memory): bound retained session activity

* fix(memory): bound web session close intents

* fix(memory): bound cloud session cache

* fix(memory): bound WSL home cache

* fix(memory): bound SSH capability cache

* fix(memory): bound trust grant cooldowns

* fix(memory): bound WSL auth drain state

* fix(memory): bound Linear workspace credential cache

* fix(memory): bound local Git capability cache

* fix(memory): bound WSL Git environment cache

* fix(memory): bound WSL Git environment cache

* fix(memory): bound WSL preflight cache

* fix(memory): keep hot cache entries warm

* fix(memory): preserve generation fences across eviction

* fix(memory): close remaining eviction fences

* fix(memory): align evicted upstream generations

* fix(memory): trim successful capability probes

* fix(auth): retain expired refresh replay evidence

---------

Co-authored-by: m4air <m4air@Mac.localdomain>
2026-09-20 14:41:50 -07:00
NeilandOrca aab112933e Revert "fix(memory): bound OOM-prone accumulators (#10179)" (#10255)
Co-authored-by: Orca <help@stably.ai>
2026-07-23 18:35:31 -07:00
Neil 8f40ddf328 fix(memory): bound OOM-prone accumulators (#10179) 2026-07-23 06:22:56 -07:00
b259300032 perf(worktrees): bound runtime discovery scans (#8915)
* perf(worktrees): bound repeated runtime discovery scans (#8882)

* fix(worktrees): invalidate scans on SSH state changes (#8882)

* fix(worktrees): key scan reuse by execution runtime (#8882)

* test(worktrees): prove cached lineage variants (#8882)

* test(worktrees): exercise lineage through the shared scan cache (#8882)

* fix(worktrees): prevent stale runtime scans from repopulating cache (#8882)

* test(worktrees): prove stale generations stay out of cache (#8882)

* fix(worktrees): invalidate hidden SSH scans on relay state (#8882)

* fix(worktrees): scope SSH scan invalidation to provider changes (#8882)

* fix(worktrees): preserve enriched hidden SSH state notifications (#8882)

* test(worktrees): pin SSH provider generation monotonicity (#8882)

* test(worktrees): drain cached scan mock responses (#8882)

* fix(worktrees): scope resolved SSH invalidation to affected repos (#8882)

* fix(worktrees): separate SSH scan invalidation from client events (#8882)

* perf(worktrees): preserve raw scan reuse across metadata updates

# Conflicts:
#	src/main/runtime/orca-runtime.ts

* perf(worktrees): scope repo-local scan invalidation

# Conflicts:
#	src/main/runtime/orca-runtime.ts

* perf(worktrees): scope all repository scan invalidations

* fix(worktrees): drop scan cache on orphan-cleanup removal (#8882)

The orphan-cleanup fallback in removeManagedWorktree (git worktree remove
fails with 'not a working tree', Orca deletes the directory and prunes)
invalidated only the resolved cache, so the removed worktree kept being
served from the bounded raw scan cache for up to its 30s TTL.

Co-authored-by: Orca <help@stably.ai>

* Simplify SSH deploy-success handling to use broadcastSshState

Route the post-deploy "connected" notification through the shared
broadcastSshState helper instead of manually reimplementing window
broadcast and runtime cache invalidation inline, keeping SSH state
propagation consistent with other call sites.

* perf(worktrees): defer SSH enrichment, consolidate cache invalidation

- Skip enriching ephemeral-VM SSH state since it's not broadcast to the
  renderer, avoiding unnecessary withSshRemotePlatform() calls.
- Move invalidateResolvedWorktreeCache() outside the conditional branch
  to eliminate redundant calls (previously called in both if and else).

---------

Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
Co-authored-by: Orca <help@stably.ai>
2026-07-17 15:34:30 -07:00
Jinwoo HongandOrca f70802f31c Surface SSH relay loss in target state (#2265)
Co-authored-by: Orca <help@stably.ai>
2026-05-18 13:16:23 -07:00
b030257c3b feat(source-control): AI commit message generation (#1487)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-05-15 02:18:46 -07:00
Jinwoo Hong cc66e120eb feat: Add SSH remote support (beta) (#590) 2026-04-13 19:23:09 -07:00