100 Commits
Author SHA1 Message Date
jinyeandClaude Opus 5.5 c2e77d1473 refactor(contracts): import inline fully qualified names in contracts (#16534)
Replace 183 inline fully qualified type names across 56 Contracts files
with ordinary imports, using the same skip rules as the Runtime batch.
The compiled classes are unchanged: all 604 classes are identical under
javap -c -p ignoring constant-pool indices.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-07 18:43:31 +08:00
jinye 1b9aef2264 refactor(adapters): import inline fully qualified names in adapters (#16533) 2026-11-07 18:36:04 +08:00
jinye 157664acb2 refactor(runtime-broker): import inline fully qualified names (#16535) 2026-11-07 18:09:32 +08:00
jinyeandClaude Opus 5.5 0acd2851cd refactor(runtime-broker): extract binding provisioning from RuntimeBrokerService (#16501)
* refactor(runtime-broker): extract binding provisioning from RuntimeBrokerService

RuntimeBrokerService still carried the whole Runtime binding lifecycle:
durable provisioning and attestation, the bounded reconciliation loop,
lost-binding cleanup and the trusted maintenance recovery path. Those
members only depend on each other and on the operation claim, so they
move into a package-private RuntimeBindingProvisioning collaborator,
alongside the existing dispatcher, reconciler and recovery classes.

This is a pure move. The service delegates binding acquisition, recovery,
the deadline and step-timeout helpers and attestation checks to the new
class. The provision failure handler is now owned by the collaborator,
which removes the service's constructor-time method reference cycle.
BindingRenewal stays in the service because the drain path also uses it;
the collaborator receives its constructor as a factory.

RuntimeBrokerService shrinks from 4174 to 2948 lines.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* fix(runtime-broker): tighten class-size ratchet after binding extraction

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-07 17:01:35 +08:00
jinyeandClaude Opus 5.5 2258518d46 refactor(runtime): import inline fully qualified names in runtime modules (#16504)
The runtime provisioner, transport and host modules spelled 80 type
references as inline fully qualified names. They now use imports.

The conversion only touches code (never strings or comments) and leaves a
name qualified whenever importing it could change what any name in the
file resolves to: an existing or same-package type with that simple name,
a declared or nested type, java.lang, a bare identifier already in use, or
a wildcard import.

The compiled bytecode is unchanged: javap -c -p of all 49 classes in the
seven modules is identical before and after, ignoring constant-pool
indices.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-07 09:42:14 +08:00
jinyeandClaude Opus 5.5 da30adcc2e refactor(managed-agent): fold the last CSI statement helper copies (#16503)
The CSI ready admission and application progress stores kept their own
copies of the 10 second query-timeout statement helper because #16485
was still editing the adjacent lines when #16486 introduced the shared
helper. Both now use the shared one; the timeout is unchanged.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-07 08:51:40 +08:00
jinyeandQwen-Coder 11c83aa21e feat(managed-agent): allow concurrent child questions (#16484)
Release local execution membership while questions wait, recover the original runtime owner, and isolate root-page action selection and drafts.

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-07 05:19:56 +08:00
jinyeandClaude Opus 5.5 754b27dcf1 refactor(managed-agent): share JDBC statement helper and reuse JSON mappers (#16486)
Six runtime broker persistence classes each carried an identical private
helper that prepares a statement with the default 10 second query timeout.
The helper now lives once in the package's JDBC support class and the
copies are removed; the timeout value is unchanged.

Three call sites built a new ObjectMapper on every invocation: the Hosted
Harness lifecycle settlement, the resident Workspace registration check
and the preflight version readers. Each now reuses a static mapper with
exactly the configuration it built before.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-07 02:51:37 +08:00
jinyeandClaude Opus 5.5 a63a26dc84 refactor(managed-agent): consolidate storage alias keys and use DigestUtils (#16485)
The qwen-csi-alias/1 storage alias key had four independent copies of the
same length-prefixed SHA-256 routine. The JDBC repository entry point now
delegates to the shared registration key, and the two private copies in the
CSI ready/progress admissions are removed.

Hand-rolled MessageDigest.getInstance("SHA-256") calls are replaced with
Commons Codec DigestUtils as the module guide requires; incremental
length-prefixed digests keep their exact input bytes. runtime-local now
declares commons-codec directly.

A golden-value test pins the alias, physical, value and raw SHA-256 outputs
to independently computed digests so stored keys cannot drift.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-07 02:47:06 +08:00
jinyeandClaude Opus 5.5 1ea05364a6 perf(managed-agent): take tool execution admission off tenant placement (#16478)
* docs(managed-agent): design tool execution admission without tenant placement

Admission still takes tenant placement on every tool call. It orders
admission's plain read of the harness drain fence against
requestHarnessDrain, the only fence writer that holds no row admission
takes. Lifecycle phases already hold the Session root, and the storage fence
is backstopped by migration's retirement check. The design has the drain
take the Session root after placement, and lets an ordinary session-class
admission with an existing root skip placement, taking the root as its first
statement so a REPEATABLE READ snapshot cannot predate the drain.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* docs(managed-agent): record the storage alias order blocker for placement-free admission

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* perf(managed-agent): take tool execution admission off tenant placement

Every tool call still took tenant placement in admitExecution. Placement
ordered admission's plain read of the Harness drain fence against
requestHarnessDrain, the only fence writer holding no row admission takes.

requestHarnessDrain now locks the Session root after placement. An ordinary
session-class admission with an existing root, no lifecycle authority and no
storage or LOCAL storage skips placement and locks that root as its first
statement, so its REPEATABLE READ snapshot cannot predate a committed drain.
Other admissions take placement first, as before.

completeStoppedSessionRelease locked the storage alias and owner rows before
the binding, the reverse of admission and createSession. It now locks the
binding first, so a placement-free admission cannot close a cycle with it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* docs(managed-agent): format the admission design with the pinned Prettier

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-06 10:10:58 -08:00
jinyeandClaude Opus 5.5 06a0cb3250 perf(managed-agent): take runtime binding control off the tenant guards (#16480)
Binding control took tenant placement and the publication guard for every
session-class binding, so each periodic lease renewal queued on both
tenant-wide rows. The publication guard only tells whether a CSI profile
original's retention root exists; any other binding is answered null or
refused whatever it says, so lockBindingControl now takes it for profile
bindings only.

Claim, renew and release change only the operation lease and move no binding
out of its state. Like dispatch, they now decide the CSI pin under the Session
root alone when it exists. compareAndSet keeps placement, which it takes next
and which must precede the root.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-06 18:04:36 +00:00
jinyeandQwen-Coder 45cde86998 feat(cli): align managed agent basic tools with daemon (#16445)
Expose glob in ordinary file sessions, durable todos in Shell sessions, and PDF page selection in Hosted read_file. Restore saved todo state on session reload while keeping exact current-schema validation and restricted resident/CSI tools.

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-07 00:13:05 +08:00
jinyeandQwen-Coder e777fc7502 feat(managed-agent): enable automation by default (#16448)
* feat(managed-agent): enable automation by default

Co-authored-by: Qwen-Coder <[email protected]>

* style(docs): match pinned Prettier formatting

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-06 18:42:51 +08:00
jinyeandQwen-Coder 32d22f950c feat(managed-agent): support durable structured user questions (#16433)
Connect Hosted question actions, structured answers, durable continuation, and the WebShell question form. Cover canonical response replay and pending-question recovery across Harness and Java context restarts.

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-06 09:23:44 +00:00
jinyeandQwen-Coder 738c4bbf7e fix(serve): bound command snapshot replay memory (#16413)
* fix(serve): bound command snapshot replay memory

Suppress unchanged command snapshots and retain only the latest full skill details so periodic refreshes cannot grow daemon heap indefinitely. Bound replay rings by serialized bytes while preserving ACP live delivery and reconnect IDs, and expose retention diagnostics.

* fix(serve): avoid redundant replay seed serialization

Size only retained complete command snapshots when seeding replay history, and forward the replay byte limit through the development daemon launcher. Pin snapshot accounting and lifetime eviction counters with independent regression assertions, and document the count/byte retention bounds and conditional command notifications.

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-06 16:13:17 +08:00
jinye 6fb741642f perf(managed-agent): take tool execution control off the tenant guards (#16415)
Every tool call admits an execution and authorizes its dispatch. Both went
through lockBindingControl, which for a session-class binding (the default
isolation class) took tenant placement, the publication guard, every slot and
binding row of the Session and then its root, only to prove the Session is
not CSI-pinned.

lockExecutionControl now decides that under the Session root alone: the pin
lives on the root, and profile slots and bindings require a committed pin.
lockManagedSession and requireProvisionPin lock the root before slot and
binding rows, so every placement owner shares the root-then-binding order
that guard-free dispatch uses. Without an existing root, a locking read takes
only a gap lock and orders nothing; dispatch then keeps the guarded path (a
MySQL stress test reproduced the deadlock between the binding's unique-index
and primary-key lookups otherwise). Admission still takes placement for the
harness drain fence.
2026-11-06 06:25:42 +00:00
jinyeandClaude Opus 5.5 c4f9899eea perf(managed-agent): take native journal snapshots off the tenant guards (#16410)
lockSnapshotWriter took tenant placement and the publication guard on each of
its three calls per snapshot, so every snapshot of a tenant queued behind
binding transitions, provisioning, retention, maintenance, collectors and
writer acquisition. It now uses the guard-free publication writer.

The build transaction cannot lock the Session root first, because its
nested journal reads take read leases on that root and head. When it reaches
the root it holds only the snapshot's own new rows. Any transaction that
could hold the root and wait for those rows already closes a cycle with it
today through the guards, so dropping them adds no cycle. Root and head
order the writer checks, and the read lease keeps the copied resources. A
pinned CSI Session still takes both guards behind its root.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 18:09:10 +00:00
11f6163f0f perf(managed-agent): narrow SSH settlement and worktree locking (#16386)
Settle SSH registrations using their operation and exact physical owner.
Allow ordinary Runtime members and uploads during main worktree preparation
while retaining maintenance ownership and cleanup exclusion.

Co-authored-by: Qwen-Coder <[email protected]>
Co-authored-by: Shaojin Wen <[email protected]>
2026-11-05 16:26:28 +00:00
jinyeandQwen-Coder de940c41cb perf(managed-agent): remove ordinary journal and publication storage locks (#16370)
* perf(managed-agent): remove ordinary publication storage locks

Use nonlocking physical storage checks for ordinary publication and reuse the verified check for final receipts while preserving generic journal and lifecycle locking.

Co-authored-by: Qwen-Coder <[email protected]>

* perf(managed-agent): unify ordinary journal storage reads

Use nonlocking storage checks for ordinary commits and inline results, and remove the receipt-specific commit route. Preserve session ownership and offline maintenance boundaries.

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-05 08:16:46 +00:00
jinyeandQwen-Coder 046b02e521 feat(managed-agent): allow concurrent workspace rewinds (#16369)
Allow neighboring Sessions, uploads and rewinds to coexist while retaining pending rewind recovery on the originating Runtime Session.

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-05 07:13:17 +00:00
jinye cf6b4270c6 perf(managed-agent): take ordinary publication lanes off the placement guard (#16354)
* docs(managed-agent): design publication lanes without the placement guard

Placement owners lock the original binding and the Session root in both
orders (lockBindingControl: binding then root; lifecycle verification and
hosted cleanup: root then binding), so a lane cannot replace placement with
a binding lock in one fixed position. Ordinary lanes instead lock the Session
root first, read a session-class binding without a lock (its transitions out
of READY hold that root) and share-lock a workspace-class binding.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* perf(managed-agent): take ordinary publication lanes off the placement guard

An ordinary (non-CSI, non-Resident) publication lane now locks its Session
root where it took tenant placement. It reads a session-class original
binding without a lock, on the repository's own connection: every move of
such a binding out of READY holds that root. It share-locks a
workspace-class binding, whose writers take no root. Placement owners lock
the binding and the root in both orders, so neither fixed binding position
would be safe without placement.

Placement stays for CSI and Resident Workspace originals, a session-class
binding of another Session, and lifecycle-authority receipts. The writer
takes placement only when the lane took it first. Receipts refuse hosted
cleanup records, whose commit would take placement after the root.
Operator recovery locks a session-class binding's Session root before its
storage rows and the binding.

---------
2026-11-05 02:32:46 +00:00
jinyeandClaude Opus 5.5 83248491cf perf(managed-agent): take queue dispatch and workspace session creation off the tenant lock (#16327)
startNext locked the tenant placement guard before its Session row, a
leftover from when Turn admission took the guard; the Session row now
comes first, as in Turn admission.

Workspace Session creation now locks the selected Workspace row as its
first statement instead of the tenant guard, so creations in different
Workspaces of a tenant run at once. Selections that may resolve to a
configured Resident Workspace keep the guard, because its single-Session
range check shares gaps across Workspaces. The default Workspace is
resolved through its generated unique key, so a locking resolution
takes one row instead of every Workspace row of the tenant.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 02:24:56 +00:00
f3488b47fa perf(managed-agent): take ordinary tool publication and read leases off the tenant lock (#16335)
* docs(managed-agent): design publication lanes without tenant-wide guards

Publication lanes take the placement and output_publication tenant rows
on every call. The design separates their three roles: tenant byte quota
on a dedicated guard domain for reserve only, a per-Session lock order
shared by lanes and collection, and a shared lock on the original
Runtime binding in place of placement.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* perf(managed-agent): take publication reserve and renew off the tenant lock

The ordinary apply lane (reserve, renew, fence, no-start release) took
the tenant output_publication guard for every call, mostly so that a
reservation's tenant byte and active-capture sums were exact. Those
limits are protective caps, so a bounded, self-correcting overshoot by
concurrent reservations of different Sessions is accepted. The lane
runs at READ COMMITTED and its Session root keeps the Session limit
exact.

The lane already locks the Session root and head before the
publication row, as collection does. Its evidence reads took a read
lease through the tenant guard after the root, which inverts
retention's order; they now take the lease under the Session locks the
writer already holds. CSI publications keep the guard.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* docs(managed-agent): correct the publication lane order in the guard design

Ordinary publication lanes already lock the Session root and head before
publication rows, as collection does; only CSI lanes lock the publication
row first. C2 therefore needs the post-root guard audit, not a reorder.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* perf(managed-agent): take ordinary publication lanes and read leases off the tenant lock

Ordinary producer, admission and receipt lanes and the tool-result
projection worker no longer take the output_publication guard. Below
the guard they already lock the Session root and head before
publication rows, as collection does, so no lane changes its order.
CSI originals keep the guard, as does a receipt whose commit carries
lifecycle authority.

Read leases take only the Session root and head: every collector that
checks them holds the same root and head, and retirement updates the
root. This replaces the Session-locked read variant added for the
apply lane and removes the guard from Artifact and resource reads.

The convoy test now runs every ordinary lane while the guard is held,
so a lane that takes it after its root stalls there.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* fix(managed-agent): avoid tenant guard during read lease renewal

Keep renewal serialized by the Session root and preserve retirement generation and expiry checks. Add a MySQL regression that forces renewal while another connection holds the tenant guard, and synchronize the bilingual design.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(managed-agent): bound publication cleanup and preserve lock order

Co-authored-by: Qwen-Coder <[email protected]>

* fix(managed-agent): keep projection completion off tenant guard

Reuse the root and head held by projection admission while retaining private Session mutation refusal. Add a full-completion contention regression and align the lock registry, dead helper pin and bilingual design.

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
Co-authored-by: Qwen-Coder <[email protected]>
2026-11-05 00:31:29 +00:00
jinyeandQwen-Coder 5f997b69d7 fix(managed-agent): bound runtime concurrency and improve error handling (#16318)
* fix(managed-agent): add guideline reports and bound runtime concurrency

Co-authored-by: Qwen-Coder <[email protected]>

* chore(managed-agent): remove PMD integration

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-05 00:30:28 +00:00
jinyeandClaude Opus 5.5 b2463bf606 perf(managed-agent): share the storage fence in session command admissions (#16329)
MCP and extension management checks, model and approval changes,
context compression, task cancel and action responses checked the
storage fence with exclusive locks, so every Session on one storage
queued on its alias and directory rows. None of them writes those rows
later in its transaction, so they now use the read-only admission form
(FOR SHARE on MySQL, the exclusive fallback on H2). Fence writers still
wait for every admitted command. The publication writer stays exclusive
because its receipt lane may commit with lifecycle authority in the
same transaction.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 01:28:41 +08:00
jinyeandQwen-Coder b9f4a9ee43 fix(managed-agent): bound runtime thread pools (#16330)
Bound HTTP dispatch and local runtime operations, readers, and stop escalation. Preserve retryable admission refusal and durable recovery identity under saturation.

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-04 17:22:03 +00:00
jinye 624d10532a perf(managed-agent): avoid storage locks in read preflight (#16312)
* perf(managed-agent): avoid storage locks in read preflight

* codex: fix CI failure on PR #16312
2026-11-05 00:13:09 +08:00
jinye 98ef7b2cd3 fix(managed-agent): reject dangling Hosted cleanup references (#16275)
* fix(managed-agent): reject dangling Hosted cleanup references

* fix(managed-agent): honor JSONL framing for cleanup admission

* test(managed-agent): align CWD migration lock witness
2026-11-04 13:25:20 +00:00
jinye 93fdebb8fb perf(managed-agent): narrow default workspace admission locking (#16283) 2026-11-04 11:32:23 +00:00
jinye 572ee4f6ba fix(managed): Reap Git descendants before terminating parents (#16298) 2026-11-04 11:23:07 +00:00
jinye b3e9cc7c4d fix(managed-agent): use current state for approval changes (#16296) 2026-11-04 10:24:07 +00:00
jinye 33e3d39d50 fix(managed-agent): use current state for approval changes (#16296) 2026-11-04 10:23:52 +00:00
jinye 26ed1a322b fix(managed-agent): enforce strict SQL mode per embedded connection (#16288) 2026-11-04 17:27:30 +08:00
jinyeandQwen-Coder 14a5a2d98d fix(core): preserve Gemini thought signatures for tool replay (#16270)
Co-authored-by: Qwen-Coder <[email protected]>
2026-11-04 06:53:01 +00:00
jinye 4e9c2ad739 perf(managed-agent): narrow output, lifecycle, and storage lock scopes (#16268)
* perf(managed-agent): remove tenant guard from answered watermarks

* perf(managed-agent): publish inline tool results without tenant guards

* perf(managed-agent): share read-only storage admission locks

* perf(managed-agent): queue lifecycle claim updates on Sessions

* refactor(managed-agent): avoid duplicate storage admission reads

* refactor(managed-agent): remove redundant outer monitors

* docs(managed-agent): record narrower lock scopes and validation
2026-11-04 13:10:03 +08:00
jinyeandClaude Opus 5.5 651bd66b36 perf(managed-agent): queue journal commits on the Session row instead of the tenant lock (#16256)
* docs(managed-agent): design journal commit without the tenant lock

Journal commit queues on its own Session row instead of the tenant
placement guard. The design covers why each guard reader stays
correct and converts missing-key locking reads on the commit path.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* perf(managed-agent): probe commit-path keys before locking them

Resource writes and hosted cleanup references probed a key that is
often missing with FOR UPDATE, which gap-locks an index shared across
the tenant's Sessions. Probe with a plain read, lock only rows that
exist, and let the unique key decide a racing insert with a locking
re-read and the existing identity checks. Safe with the tenant guard
still in place; it prepares commits of different Sessions to run at
once.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* perf(managed-agent): queue journal commits on the Session row

An ordinary journal commit took the tenant placement guard first and
held it to the end, so every commit in a tenant ran one at a time.
It now locks its own Session row as its first statement: lifecycle
begin, settle and Harness placement lock that row before they write,
so none of them can land mid-commit, and the plain reads after it see
what they committed. The storage fence check keeps its alias and
directory locks without the guard. Lifecycle-authority and CSI-pinned
commits still take the guards.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* fix(managed-agent): lock the Session row before the storage fence in publication lanes

The publication writer and tool-result lanes checked the storage fence
(alias and directory rows) before locking their Session row. Turn
admission, Session commands and journal commits now lock the Session
row first without the tenant guard, so the old order could close a
cycle on one Session. Both lanes keep the placement guard and check
the fence after the Session row and before the head.

A commit also reuses the CSI pin its first root lock read, so the root
is locked once per commit as the journal lock contract expects. The
design records both changes and notes that commits sharing one storage
still queue on its alias row.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-04 03:14:22 +00:00
jinyeandClaude Opus 5.5 51bf9c3666 perf(managed-agent): take session commands off the tenant lock (#16225)
* perf(managed-agent): take session commands off the tenant lock

Fourteen Session commands no longer take the tenant placement guard:
rename delivery claim, settle, abandon and retry; session mutation and
parked rename settlement; cwd change completion; model and approval
changes; context compression; task cancel; action response admission;
and MCP and extension management checks.

Each starts with a locking read of its Session row or root, uses a
Session-scoped idempotency key or settles an existing row, checks the
storage fence before creating work migration counts, and takes no
guard later in its transaction. Rename and mutation admission (tenant
scoped keys), Session creation and lifecycle keep the guard.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* perf(managed-agent): take rename and mutation admission off the tenant lock

Rename and session mutation keys are tenant-scoped, so the tenant guard
was what serialized two Sessions reusing one key. Admission no longer
takes the guard: the receipt's unique key decides that race. A
DuplicateKeyException on the receipt insert re-reads the winner with a
locking read and answers idempotency_conflict for another Session or
digest, as the serialized path did.

The mutation replay probe becomes a nonlocking read for every kind, so
admissions of different keys no longer gap-lock the tenant-shared
receipt index and deadlock on insert without the guard.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* codex: address PR review feedback (#16225)

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-04 10:29:48 +08:00
jinye 4203138bc7 perf(managed-agent): reuse local workspace file capability probes (#16229) 2026-11-04 05:51:46 +08:00
jinye 42aeddc6d7 test(managed-agent): refresh concurrent membership snapshot (#16240) 2026-11-04 04:43:28 +08:00
jinye 632b06094e perf(managed-agent): take harness admission checks off the tenant lock (#16221)
The standalone Harness admission, recovery, cleanup and Hook checks in
JdbcRuntimeBindingRepository only read the Session and Harness head
rows and write nothing. Drop the tenant placement guard and keep the
snapshot transaction, so tool dispatch no longer queues every call of
every Session in a tenant on the placement row. authorizeDispatch still
locks the binding row and requires it READY at the same generation.
2026-11-03 19:02:11 +00:00
jinyeandClaude Opus 5.5 caa67b2cf4 perf(managed-agent): take turn admission off the tenant lock (#16223)
Turn submit no longer takes the tenant placement guard. Its Session row
lock already orders it against lifecycle begin, and requireOpen's
locking reads of the storage's alias (fence) and directory rows order
it against migration fence installation and physical fencing.

Migration prepare locks that fence row in migrationSource but could
check idleness on a REPEATABLE READ snapshot taken before the lock. It
now reads committed work on a separate autocommit connection after the
lock, so a Turn admitted before it is seen and a later one is refused
by the fence.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-03 10:11:58 -08:00
jinye 44e5c646ee perf(managed-agent): take resident claim off the tenant lock (#16217)
The resident branch of WorkspaceExecutionStore.claim and release only
reads: it writes no row a concurrent transition could observe. Drop the
tenant placement guard and keep the snapshot transaction, so resident
Runtime Session acquisition and release no longer wait for unrelated
tenant work. assertHeld already runs the same check unguarded, and CSI
reclamation still requires released Sessions and settled executions
through locking reads.
2026-11-04 01:06:30 +08:00
jinye 3bc04af45d fix(managed-agent): keep workspace execution off the tenant lock (#16205)
Directory occupancy is decided by a short conditional update on the storage owner, so a held tenant placement guard no longer stalls tool admission, release, or rewind.
2026-11-03 14:17:40 +00:00
jinye b1cd4ac0c6 refactor(managed-agent): align shared MySQL schema conventions (#16143)
* docs(managed-agent): document database tables and columns

* refactor(managed-agent): align shared MySQL schema conventions
2026-11-03 12:00:29 +00:00
jinye 07ed0e260e feat(managed-agent): support full model configuration at session creation (#16153)
* feat(managed-agent): support session model configuration

* codex: fix CI failure on PR #16153

* codex: address PR review feedback (#16153)

* codex: address PR review feedback (#16153)

* codex: address PR review feedback (#16153)

* codex: address PR review feedback (#16153)
2026-11-03 04:23:45 +00:00
jinyeandQwen-Coder e42e57fce8 refactor(managed-agent): simplify row locking and runtime verification (#16139)
Co-authored-by: Qwen-Coder <[email protected]>
2026-11-03 03:15:52 +00:00
jinyeandQwen-Coder 90eb13e4c6 refactor(managed-agent): Make runtime backends optional Maven modules (#16141)
* refactor(managed-agent): Split runtime backends into optional modules

Extract five backend implementations behind the shared provider SPI and support selected-backend executable distributions. Preserve SQL ownership, defer unavailable historical work, and make Spring own SSH connection cleanup.

Co-authored-by: Qwen-Coder <[email protected]>

* refactor(managed-agent): Narrow backend split to Maven modules

Keep optional backend dependencies and safe assembly while deferring selective standalone distributions. Restore default packaging and document the provider configuration.

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-03 02:04:43 +00:00
jinyeandQwen-Coder 0441faff21 refactor(managed-agent): trim store delegation boilerplate (#16142)
Co-authored-by: Qwen-Coder <[email protected]>
2026-11-03 00:12:05 +08:00
jinyeandQwen-Coder f643e579c5 fix(managed-agent): Restore profile-owned runtime verification (#16134)
Keep the shared Failsafe configuration in pluginManagement so ordinary
release verification does not activate environment-specific integration tests.
Preserve the dedicated profiles and executable artifact assertions.

Backport the same POM repair to the pinned 0.26.5 source with checked patch
digests, and verify both patches before applying either one.

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-02 13:50:11 +00:00
jinyeandQwen-Coder d9d6fc4a4b refactor(managed-agent): split Agent and Session stores (#16090)
* test(managed-agent): audit lock order across store collaborators

Record the bilingual Store decomposition contract and entry ownership,
transaction, lock and caller inventories. Follow final collaborator fields
across source files while preserving owner-bound facade populations and
existing ambiguity, transaction and compiled-member checks.

Co-authored-by: Qwen-Coder <[email protected]>

* refactor(managed-agent): split Agent and Session stores

Move Agent and Journal responsibilities into immutable internal collaborators while retaining transaction facades and compatibility bridges. Resolve Journal dependencies at construction and migrate factories, fixtures, lock auditing and the bilingual implementation contract.

Record focused verification and outstanding full-gate requirements separately.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(managed-agent): repair store decomposition verification

Keep declared field receivers visible across method-local type scopes while retaining fail-closed nested class handling. Preserve the Hosted CSI dependency identity assertion at its new owner.

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-02 12:46:43 +00:00
jinyeandQwen-Coder 85943db2b3 fix(ci): repair Javadoc for the 0.26.5 managed runtime release (#16114)
Apply the already merged documentation-only repair to the original release source before the unchanged full verification and missing-only publication gates.

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-02 17:12:10 +08:00
jinyeandQwen-Coder cd1e5feda5 test(managed-agent): Reconnect Hosted fault transport probes (#16101)
Co-authored-by: Qwen-Coder <[email protected]>
2026-11-02 12:43:17 +08:00
jinye 95e647754f fix(managed-agent): keep javadoc valid after the module split (#16099)
The Maven module split promoted the ECMAScript number formatter to public
API and moved the external runtime kinds into the contracts module. Both
changes left javadoc that doclint now rejects:

- The formatter's comment compares against 1e21 with a bare "<", which
  doclint reads as the start of an HTML tag. While the method was
  package-private the comment was never documented, so it went unnoticed.
- The external provisioner links to the kinds class without importing it.
  That resolved when both lived in the same package and no longer does.

The release profile is the only place that runs javadoc, so the failure
surfaced while publishing rather than in PR CI, and the managed runtime JAR
for the latest release was never built.
2026-11-02 11:42:31 +08:00
jinyeandQwen-Coder 87c1918a6a refactor(managed-agent): Extract runtime execution dispatcher (#16084)
Co-authored-by: Qwen-Coder <[email protected]>
2026-11-02 01:21:15 +08:00
jinyeandQwen-Coder 1bdad7d4b7 refactor(managed-agent): Inject store dependencies through constructors (#16061)
Make dependency references final while preserving optional collaborators, lazy cycle resolution and standalone construction. Migrate verification fixtures and add a synchronized bilingual design.

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-01 16:21:00 +00:00
jinyeandQwen-Coder 456a49c14f refactor(managed-agent): Separate runtime broker execution workflows (#16029)
* refactor(managed-agent): Separate runtime broker execution workflows

Give process-local Binding and Session state a registry and separate execution reconciliation, takeover scans and cancellation while preserving the existing fenced state transitions and dispatch boundary. Add a deterministic cooldown completion-order regression and synchronized bilingual designs.

Co-authored-by: Qwen-Coder <[email protected]>

* style(managed-agent): Remove extra blank lines from runtime workflows

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-01 13:08:45 +00:00
jinyeandQwen-Coder cf7e77810e refactor(managed-agent): Share the session event delivery loop (#15952)
Share Public and WebShell delivery while preserving replay, permissions, timestamp projections, heartbeats and deletion handling. Keep the session creation command already merged upstream and document the focused stream verification.

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-31 23:04:59 +08:00
jinyeandQwen-Coder 4cd3372bb6 fix(managed-agent): close post-split verification gaps (#15927)
* test(managed-agent): close post-split verification gaps

Establish an active response before probing caller cancellation, retain close deadlines, run both independent embedding hosts from the full MySQL lane, and record post-merge acceptance boundaries.

Co-authored-by: Qwen-Coder <[email protected]>

* ci(managed-agent): keep embedding checks within workflow size gate

Move the existing embedding-host verification commands unchanged into a shell script so sdk-java.yml stays within the existing growth allowance. Extend the workflow guards to inspect the script and retain the test and cache-lock requirements.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(cli): finish hosted settle budget call migration

Replace the 25 remaining references to the removed settle timeout constant with the existing per-test budget function. This repairs the TypeScript compilation failure exposed by the main merge while preserving the new shared deadline policy.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(managed-agent): preserve Hosted fault checks after module split

Preserve the typed stream-idle failure and its duration across the SDK boundary. Update fault-injection fixtures for wrapped connectors and the verification module directory, and wait for the documented pending Items projection within the existing bounded poll.

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-31 18:31:00 +08:00
jinye 9ebd2de171 feat(managed): add experimental Kubernetes deployment (#15492)
* feat(managed): add experimental Kubernetes Helm deployment

* feat(managed): add trusted-node tools and dedicated WebShell gateway

* test(web-shell): isolate Managed gateway in boot tests

* docs(managed): clarify Kubernetes gateway requirements

* fix(managed): align Helm workspace identity with runtime broker

* fix(web-shell): keep managed permission rules key distinct

* fix(managed): align Helm lint and web test boundaries

* codex: address PR review feedback (#15492)
2026-10-30 18:26:43 +00:00
jinyeandQwen-Coder f3af3dd857 refactor(managed-agent): Split server into Maven modules (#15871)
* refactor(managed-agent): split server into Maven modules

Separate contracts, orchestration, persistence, adapters, assembly, and verification while retaining the existing service delivery model. Move tests and build consumers together and document local evidence and pending CI acceptance.

Co-authored-by: Qwen-Coder <[email protected]>

* refactor(managed-agent): reduce configuration and SDK boilerplate

Co-authored-by: Qwen-Coder <[email protected]>

* refactor(managed-agent): narrow contracts and simplify test scaffolding

Co-authored-by: Qwen-Coder <[email protected]>

* fix(managed-agent): repair verification after module migration

Resolve shared fixtures and worker paths from the Maven module root, update CI packaging assertions, and align existing test fixtures with the extracted contracts. Restore restricted Workspace constructors and remove redundant test visibility changes without altering inherited MySQL coverage.

Co-authored-by: Qwen-Coder <[email protected]>

* test(managed-agent): align remaining Harness and OSS fixtures

Preserve SDK refusal messages and register the managed OSS adapter at fixture injection points. Keep the existing retry and client shutdown assertions intact.

Co-authored-by: Qwen-Coder <[email protected]>

* style(managed-agent): order Hosted cleanup Harness imports

Co-authored-by: Qwen-Coder <[email protected]>

* test(managed-agent): fix recovery smoke fixture and import order

Supply the required transcript coverage in the recovery browser fixture and wait for history before testing a complete handoff. Preserve its existing safety and submission assertions. Order the cleanup coordinator test imports for Checkstyle.

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-30 14:56:35 +00:00
jinyeandQwen-Coder 619a601b39 refactor(managed): Remove persisted public message snapshots (#15870)
Use bounded live message pages for public history and exports, remove the public snapshot schema and background lifecycle, and retain native recovery history.

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-30 08:56:08 +08:00
jinyeandQwen-Coder 89d3aaea62 feat(managed): Add live message paging to WebShell (#15865)
Read bounded current SQL messages for initial and older Managed pages,
resume SSE from projection coverage, and export live bodies.

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-29 16:09:33 +00:00
jinyeandQwen-Coder fa7421bdc1 feat(managed): Add bounded SQL history queries (#15839)
* feat(managed): Bound SQL session history and recovery

Extract the Managed H2/MySQL history and authority window from Draft #15696 onto main. Preserve daemon Legacy readers and notification admission, and defer standalone file-terminal streaming and residency work.

Retain captured canonical prefixes, exact receipts and CSI proof validation. Adopt the validated compact activation lease during streamed authority restoration.

Co-authored-by: Qwen-Coder <[email protected]>

* feat(managed): Scope SQL history to paged reads and lookups

Replace the broad authority and recovery changes with recent published Item pages and bounded canonical journal queries. Preserve existing execution, Legacy, schema and CSI behavior.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(managed): Advance contract version for recent history query

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-29 19:34:29 +08:00
jinyeandQwen-Coder 3b1a266dc0 perf(managed): Bound activation renewal journal growth (#15813)
Co-authored-by: Qwen-Coder <[email protected]>
2026-10-29 06:48:02 +00:00
jinyeandQwen-Coder b969de851a ci(java): remove MariaDB full integration lane (#15827)
Keep the complete MySQL 8.4 integration profile and per-fork isolation. Retain JDBC precision and CAS coverage on the supported database and align workflow guards and documentation.

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-29 06:09:57 +00:00
jinyeandQwen-Coder 4afe1a28fd feat(managed): add independent worktrees for main sessions (#15745)
* feat(managed): add independent worktrees for main sessions

* fix(managed): reconcile session worktree contract guards

Join worktree descriptors into session pages while preserving the existing query budgets. Keep schema, CSI inventory, surface captures and lock-order witnesses consistent with the new feature, and memoize cleanup blockers and maintenance operation kinds.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(managed): require initial worktree checkout completion

Record checkout completion only after Git succeeds and refuse reentry or verification without the matching durable receipt. Preserve incomplete directories and user edits.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(managed): allow shared local project imports

Keep registration metadata private to each local installation so existing projects can be imported without taking over the parent marker. Refuse operations that require exclusive authority over shared storage.

Co-authored-by: Qwen-Coder <[email protected]>

* feat(web-shell): streamline managed worktree controls

Show the actual Git branch and use a one-click worktree choice that creates isolation on the first message. Keep ready worktree metadata in session details and match Local sidebar markers while preserving frozen retries and preparation feedback.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(managed): address worktree lifecycle regressions

Keep cancellation available before worktree readiness, bind persistence to the Managed catalog, use maintenance-safe cleanup IDs and isolate Git scan scheduling. Refuse new checkouts nested under their source repository while retaining existing cleanup, and repair the affected CI fixtures.

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-29 00:55:09 +00:00
jinyeandQwen-Coder db88f2da5e fix(ci): Decouple managed runtime distribution from Maven Central (#15782)
Co-authored-by: Qwen-Coder <[email protected]>
2026-10-28 11:07:56 +00:00
jinyeandQwen-Coder 414efe80a7 feat(runtime): add resident workspace reclamation and reuse (#15729)
* feat(runtime): add resident workspace reclamation and reuse

Add administrator-driven cleanup receipts, atomic resident release, and explicit same-tenant handoff with retained files. Preserve uncertain outcomes, prior operation history, and exact ownership revisions across reuse.

Co-authored-by: Qwen-Coder <[email protected]>

* test(runtime): align retirement alias fixture with tenant ownership

Admit a same-tenant contender before sealing the original binding so the busy-volume assertion reaches reservation. Assert foreign-tenant registration is refused while an unrelated volume remains reservable.

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-28 13:04:05 +08:00
jinyeandQwen-Coder dee6ace9d8 fix(ci): Preserve canonical artifacts across job retries (#15713)
Download the immutable artifact emitted by the successful producer when only a distribution consumer is rerun.

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-27 13:10:57 +00:00
jinyeandQwen-Coder eda42b7592 test(managed-agent): initialize the snapshot pool connection synchronously (#15715)
Co-authored-by: Qwen-Coder <[email protected]>
2026-10-27 10:06:41 +00:00
jinyeandQwen-Coder dd243bd019 fix(serve): Fix Hosted local state and foreground Shell validation (#15670)
* fix(serve): isolate Hosted sessions from local transcript state

Co-authored-by: Qwen-Coder <[email protected]>

* fix(serve): Skip local PR refresh in Hosted Harness

Co-authored-by: Qwen-Coder <[email protected]>

* fix(serve): Match advertised foreground Shell arguments

Co-authored-by: Qwen-Coder <[email protected]>

* test(managed-agent): Stabilize release verification fixtures

Co-authored-by: Qwen-Coder <[email protected]>

* fix(serve): Normalize Hosted Shell inputs and complete isolation

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-27 07:48:06 +00:00
jinyeandQwen-Coder 34769f9d41 fix(ci): Isolate Managed runtime release test classes (#15676)
Co-authored-by: Qwen-Coder <[email protected]>
2026-10-26 20:09:55 +00:00
jinye ca9d5f7ffa feat(core): add local managed journal snapshot recovery (#15626) 2026-10-26 22:47:40 +08:00
jinye 72834cb425 fix(managed-agent)!: simplify Web Shell controls and retire cwd submissions (#15616) 2026-10-26 19:07:39 +08:00
jinyeandQwen-Coder b63b733642 feat(managed-agent): add native journal snapshot storage (#15569)
Co-authored-by: Qwen-Coder <[email protected]>
2026-10-26 16:23:29 +08:00
jinye b668ad54c5 fix(managed-agent): retry read-only attestation after EOF (#15608) 2026-10-26 14:07:51 +08:00
jinyeandQwen-Coder 1143a9d2e1 test(managed-agent): Fix workspace upload admission fixtures (#15588)
Co-authored-by: Qwen-Coder <[email protected]>
2026-10-26 11:10:57 +08:00
jinyeandQwen-Coder 162ad9f8b2 test(managed-agent): align S1 acceptance fixtures with runtime contracts (#15585)
Co-authored-by: Qwen-Coder <[email protected]>
2026-10-26 01:17:31 +00:00
jinyeandQwen-Coder 92a851d019 feat(core): Add durable terminal identity lookup (#15566)
Add journal-validated terminal query records for local activation and inbox duplicate replay, preserving terminal commit acknowledgements.

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-26 01:10:52 +00:00
jinye 06d82d786a feat(managed-agent): support Workspace file uploads (#15586) 2026-10-26 01:10:18 +00:00
jinye 41ce46af24 feat(managed-agent): add pinned extension package management (#15490)
* feat(managed-agent): support pinned managed extension packages

* fix(managed-agent): align extension package CI contracts

* test(managed-agent): pin package audit ambiguities

* fix(managed-agent): report unavailable settings and satisfy broker style

* fix(managed-agent): retain queue inventory in extension integration

* test(managed-agent): preserve pinned context across Todo refresh
2026-10-26 01:19:27 +08:00
jinyeandQwen-Coder 1876eb4997 test(managed-agent): Add shared Harness Kubernetes qualification tools (#15519)
* test(managed-agent): Add Kubernetes pool qualification tools

Build from immutable source, constrain deployment to explicit business workers,
and verify deployment identity plus signed multi-tenant public flows.
Include the cross-Pod foreground publication configuration exercised on ACK.

Co-authored-by: Qwen-Coder <[email protected]>

* style(managed-agent): Match Kubernetes qualification YAML lint rules

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-25 20:48:38 +08:00
jinyeandQwen-Coder 33e80fc1aa fix(runtime): unblock independent resident workspaces and tool admission (#15457)
* docs(runtime): revise resident Workspace delivery scope

Remove complete CSI auditing from the first-release prerequisites and retain bounded retirement with ownership preserved. Record platform-managed reclamation as separately designed and qualified work.

Co-authored-by: Qwen-Coder <[email protected]>

* docs(runtime): distinguish withdrawal and acceptance baselines

Keep the historical audit withdrawal baseline separate from the source pinned for S1 qualification.

Co-authored-by: Qwen-Coder <[email protected]>

* docs(runtime): record resident cold placement acceptance blocker

Co-authored-by: Qwen-Coder <[email protected]>

* docs(runtime): record resident public tool admission blocker

Co-authored-by: Qwen-Coder <[email protected]>

* fix(runtime): unblock independent resident workspaces and tool admission

Keep independent resident mount paths distinct from storage ownership and reject unsupported tools before dispatch while preserving public Plan approval and existing unknown outcomes.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(runtime): preserve hosted capability lookup compatibility

Limit resident capability discovery to file profiles, reuse validated warm metadata on legacy route absence, and allow failed queries to be retried. Preserve existing nonresident paths and fault-driver identity assertions.

Co-authored-by: Qwen-Coder <[email protected]>

* test(cli): drain pending hosted approval turns before teardown

Cancel and await the test-owned execution when approval observation or assertions fail, retaining the original happy-path awaits and timeout.

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-25 19:05:04 +08:00
jinye 2a245baff5 fix(cli): Hide unavailable Managed background tools (#15497) 2026-10-25 10:07:21 +00:00
jinye a4ce90270e feat(managed): add durable mid-turn user message queue (#15449) 2026-10-25 17:53:56 +08:00
jinyeandQwen-Coder 08a06a46bd fix(web-shell): Prevent duplicate Managed composers (#15496)
Co-authored-by: Qwen-Coder <[email protected]>
2026-10-25 14:08:39 +08:00
jinyeandQwen-Coder 395c7a820a fix(managed-agent): retire registered zombies before startup waits (#15459)
Co-authored-by: Qwen-Coder <[email protected]>
2026-10-24 16:24:24 +00:00
jinyeandQwen-Coder 832accc014 test(cli): cover remaining Managed Workspace activation refusals (#15460)
Co-authored-by: Qwen-Coder <[email protected]>
2026-10-24 16:17:04 +00:00
jinye 0d7518f0a2 feat(managed): add session permission rules and auto approval (#15448) 2026-10-24 14:14:42 +00:00
jinyeandQwen-Coder a147c39712 feat(managed-agent): Add a shared Harness pool for Kubernetes (#15255)
Route sessions to durable instance and boot placements with fenced writer grants, resource-idle ownership release, EndpointSlice discovery, and private mTLS deployment templates.

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-23 17:22:19 +00:00
jinyeandQwen-Coder 7ab5a95c61 feat(managed-agent): Add web_fetch to Workspace Sessions (#15313)
Execute bounded public HTTPS text fetches in the bound Runtime with approval, durable results, and recovery support. Preserve local fetch behavior and CSI tool contracts.

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-23 16:11:04 +00:00
jinye a98615bedb feat(managed-agent): Enable unified Shell session lifecycle (#15330) 2026-10-23 11:05:46 +00:00
jinyeandQwen-Coder ab4b4920ee fix(web-shell): align Managed sidebar with daemon navigation (#15331)
Co-authored-by: Qwen-Coder <[email protected]>
2026-10-23 08:12:42 +00:00
jinyeandQwen-Coder f0a47611ab refactor(managed-agent): Remove pre-release compatibility paths (#15263)
* refactor(managed-agent): Simplify first-release contracts

Remove unreleased compatibility paths across the managed runtime, Java control plane and WebShell. Keep one fresh V1 baseline and document that schema versions stay at V1 until the first formal release.

Co-authored-by: Qwen-Coder <[email protected]>

* test(managed-agent): Align remaining tool fixture with current contract

Restore schema rationale comments while retaining the V1 baseline.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(managed-agent): Align CSI proof with current checkpoint encoding

Require the three current nullable checkpoint fields in the native proof, keep malformed and missing fields rejected, and synchronize retained fixture bytes and digest chains. Update tests that still expected retired pre-release state and replay compatibility.

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-23 02:09:21 +00:00
jinyeandQwen-Coder c61044fae4 feat(managed-agent): Start daemon and Managed locally with one command (#14928)
* feat(managed-agent): add local serve and lightweight runtime packages

Co-authored-by: Qwen-Coder <[email protected]>

* feat(managed-agent): download local server runtime on first use

Require local Java 21, install the exact-version service JAR atomically from OSS or GitHub, and reuse verified runtime caches offline. Add protected signed Central publication and identical release distribution without bundling Java in the CLI.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(ci): register managed runtime workflow size

Record the new release workflow in the repository size baseline so the static CI gate can track it.

Co-authored-by: Qwen-Coder <[email protected]>

* feat(managed-agent): Share the local daemon and Managed entry

Serve daemon APIs and the signed Managed proxy from one loopback listener. Keep workspace ownership explicit, enable authorized local directory import and preserve the daemon trust boundary.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(cli): expose configured models in local Managed tasks

Co-authored-by: Qwen-Coder <[email protected]>

* test(web-shell): Cover Managed and local deep-link restoration

Co-authored-by: Qwen-Coder <[email protected]>

* test(managed-agent): Align local database expectation with main schema

Co-authored-by: Qwen-Coder <[email protected]>

* fix(managed): Keep local model and approval choices independent

Use native initial model selection for local model presets and persist it with the selected approval mode before admitting the first Turn. Preserve custom Agent definition policy pins and creation replay semantics.

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-22 16:25:18 +00:00
jinyeandQwen-Coder 49f1f623c2 feat(managed-agent): Enable public subagent delegation by default (#15171)
Expose qualified public child Sessions with immutable launch policy, aggregated approvals, prompt-scoped stopping and recovery, and WebShell task and transcript views.

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-22 15:32:36 +00:00
jinye 4ee2bb4e47 feat(managed-agent): manage MCP servers without recreating sessions (#15119)
* feat(managed-agent): compose Shell Sessions with pinned MCP servers

* feat(managed): manage MCP servers within existing sessions
2026-10-22 14:07:46 +00:00
jinyeandQwen-Coder 7773fa313a feat(managed-agent): Page checkpoint history and improve session feedback (#15170)
* feat(managed): Page durable checkpoint history

Preserve complete logical receipts through bounded immutable history pages and shared SQL/native recovery validation.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(managed): Restore workspace history maintenance

Co-authored-by: Qwen-Coder <[email protected]>

* fix(managed): Explain model API turn failures

Co-authored-by: Qwen-Coder <[email protected]>

* fix(web-shell): Show running status for managed sessions

Reuse daemon sidebar indicators and retain confirmed session summaries across navigation and delayed catalog responses. Refresh known running background sessions until they settle.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(web-shell): Remove persistent managed composer hints

Keep loading, error and confirmation feedback while hiding routine model and approval explanations below the composer.

Co-authored-by: Qwen-Coder <[email protected]>

* docs(managed-agent): Clarify paging rollout and sidebar evidence

Co-authored-by: Qwen-Coder <[email protected]>

* test(managed-agent): Align packaged model failure expectations

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-22 12:07:40 +00:00
jinyeandQwen-Coder 288e4c481d perf(ci): Optimize MySQL integration verification (#15200)
Close Spring contexts before fixture database cleanup, run integration classes in isolated reusable forks, and remove redundant fixture validation and duplicate load-test execution. Document bounded local validation and preserve full CI gates.

Co-authored-by: Qwen-Coder <[email protected]>
2026-10-22 12:03:13 +00:00
jinyeandQwen-Coder 51f1d2c8bb fix(managed): Align checkpoint limits and expose recovery blocks (#15094)
Co-authored-by: Qwen-Coder <[email protected]>
2026-10-22 11:37:11 +00:00