镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
8b8afc4
fix(release): refresh carried patches for nightly 3956
Microck Oct 31, 2026
75263ec
fix(release): retain background monitors and stable Grok test checkpo…
Microck Oct 31, 2026
bfafc22
ci: run fork checks on standard GitHub-hosted runners
Microck Oct 31, 2026
dba0330
ci: separate hosted-runner queue from stranded Blacksmith runs
Microck Oct 31, 2026
648669b
fix(ci): preserve stoppable RPC work and deterministic release checks
Microck Oct 31, 2026
558d7dd
fix(acp): route surviving failed-turn commands to their original owner
Microck Oct 31, 2026
b1d7260
fix(acp): settle retained work on confirmed runtime termination
Microck Oct 31, 2026
6c37cf7
fix(release): replay nightly 3977 and settle retained ACP lifecycle e…
Microck Oct 31, 2026
5150a2b
fix(acp): own Stop teardown across providers and client terminals
Microck Oct 31, 2026
c03f7c7
fix(acp): keep retained work live and reject unsafe session switches
Microck Oct 31, 2026
15b50bc
fix(acp): backport session replacement and retained child projection …
Microck Oct 31, 2026
13e0ab7
fix(test): narrow heterogeneous Effect exits by their discriminant
Microck Oct 31, 2026
a754720
fix(acp): keep retained work stoppable before soft-interrupt recovery
Microck Oct 31, 2026
070d2aa
fix(test): narrow recovered terminal before asserting its status
Microck Oct 31, 2026
a3c9d25
fix(acp): retain independent task tracking after provider cancellation
Microck Oct 31, 2026
f8c11c5
fix(acp): narrow authoritative terminal statuses to native states
Microck Nov 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ permissions:
contents: read

concurrency:
group: ci-${{ github.event.pull_request.number || github.sha }}
group: ci-github-hosted-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
Expand All @@ -22,7 +22,7 @@ jobs:
# open: if the diff cannot be resolved, everything runs.
changes:
name: Changes
runs-on: blacksmith-2vcpu-ubuntu-2404
runs-on: ubuntu-24.04
timeout-minutes: 5
outputs:
typecheck: ${{ steps.detect.outputs.typecheck }}
Expand Down Expand Up @@ -60,7 +60,7 @@ jobs:
# when every other job passes or was skipped by `changes`.
lint:
name: Lint
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -111,7 +111,7 @@ jobs:
name: Build and Typecheck
needs: changes
if: ${{ !cancelled() && (needs.changes.outputs.build != 'false' || needs.changes.outputs.typecheck != 'false') }}
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -200,7 +200,7 @@ jobs:
name: Test
needs: changes
if: ${{ !cancelled() && needs.changes.outputs.test != 'false' }}
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Checkout
Expand All @@ -212,7 +212,7 @@ jobs:
!/apps/mobile/modules/t3-terminal/Vendor/**/*.a
sparse-checkout-cone-mode: false

# Blacksmith boots GitHub's Ubuntu runner image (gcc is usually present),
# GitHub's Ubuntu runner image usually has gcc,
# but ACP process-tree live tests compile a small pthread fixture with `cc`
# and soft-skip when it is missing. Install build-essential so that path
# always runs in CI instead of silently no-oping.
Expand Down Expand Up @@ -281,7 +281,7 @@ jobs:
name: Test Web
needs: changes
if: ${{ !cancelled() && needs.changes.outputs.test_web != 'false' }}
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -334,7 +334,7 @@ jobs:
# ~15s for `changes`: a shard the change cannot affect stops after checkout.
test_server:
name: Test Server ${{ matrix.shard }}
runs-on: blacksmith-4vcpu-ubuntu-2404
runs-on: ubuntu-24.04
timeout-minutes: 10
strategy:
fail-fast: false
Expand Down Expand Up @@ -435,7 +435,7 @@ jobs:
name: Rust
needs: changes
if: ${{ !cancelled() && needs.changes.outputs.rust != 'false' }}
runs-on: blacksmith-4vcpu-ubuntu-2404
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -468,7 +468,7 @@ jobs:
name: Mobile Native Static Analysis
needs: changes
if: ${{ !cancelled() && needs.changes.outputs.mobile_native != 'false' }}
runs-on: blacksmith-6vcpu-macos-26
runs-on: macos-26
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -498,7 +498,7 @@ jobs:
name: Release Smoke
needs: changes
if: ${{ !cancelled() && needs.changes.outputs.release_smoke != 'false' }}
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -536,7 +536,7 @@ jobs:
mobile_native_static_analysis,
release_smoke,
]
runs-on: blacksmith-2vcpu-ubuntu-2404
runs-on: ubuntu-24.04
timeout-minutes: 5
steps:
- name: Require every job to pass
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mobile-fingerprint-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ concurrency:
jobs:
fingerprint:
name: Native fingerprint diff
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ubuntu-24.04
permissions:
contents: read
issues: write
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/personal-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,9 @@ jobs:
vp test run apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts -t 'OMP wrapper truncates'
vp test run packages/effect-codex-app-server/src/client.test.ts apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.test.ts
vp test run apps/server/src/orchestration-v2/ProviderSessionManager.test.ts -t 'releases sessions when provider event streams fail'
vp test run apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts -t 'closes unfinished ACP tools|terminalizes an empty|direct Stop on a deferred|background work when interrupted|quarantine drops late|recovers from .* cancellation|preserves ACP agent tool labels|command description|elicitation'
vp test run apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts
vp test run apps/server/src/orchestration-v2/Adapters/FxAdapterV2.test.ts apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts
vp test run packages/provider-acp/src/server/clientTerminals.test.ts
vp test run apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.test.ts packages/effect-acp/src/protocol.test.ts
vp test run packages/provider-acp-registry/src/server/omp-acp.test.ts packages/effect-acp/src/schema.test.ts
vp test run packages/provider-acp-registry/src/server/omp-maintenance.test.ts packages/provider-acp-registry/src/server/driver.test.ts apps/server/src/provider/providerMaintenanceRunner.test.ts
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/windows-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ permissions:
jobs:
test:
name: Test (${{ inputs.package || 'all non-server' }})
runs-on: blacksmith-8vcpu-windows-2025
runs-on: windows-2025
timeout-minutes: 45
steps:
- name: Checkout
Expand Down
7 changes: 7 additions & 0 deletions apps/server/scripts/acp-mock-agent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1595,6 +1595,13 @@ const program = Effect.gen(function* () {
}

if (emitActiveToolThenHang || activeToolOutcome !== undefined) {
if (process.env.T3_ACP_CREATE_CLIENT_TERMINAL === "1") {
yield* agent.raw.request("terminal/create", {
sessionId: requestedSessionId,
command: process.execPath,
args: ["-e", "setInterval(() => {}, 1000)"],
});
}
const toolCallId = "tool-call-long-running-1";
yield* agent.client.sessionUpdate({
sessionId: requestedSessionId,
Expand Down
Loading
Loading