From 88f93b99694888882af93df15635db6ca224af03 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 6 Sep 2026 23:09:17 +0000 Subject: [PATCH 1/2] chore: version packages --- .changeset/atomic-project-state-migration.md | 7 - .changeset/bootstrap-coordinator.md | 5 - .changeset/bootstrap-storage.md | 5 - .changeset/bright-studios-start.md | 5 - .changeset/canvas-resize-release.md | 5 - .changeset/desktop-managed-installs.md | 7 - .changeset/durable-delegation-state.md | 5 - .../durable-project-root-compatibility.md | 5 - .changeset/focused-project-briefs.md | 15 -- .changeset/fresh-studio-agent-clis.md | 8 - .../immutable-project-version-contracts.md | 5 - .../initialize-existing-project-agent-maps.md | 16 -- .changeset/managed-agent-runtime.md | 7 - .changeset/manual-builder-session.md | 6 - .changeset/native-codex-delegation-startup.md | 5 - .changeset/neutral-shared-plan-versions.md | 5 - .changeset/one-studio-dialog-shell.md | 6 - .../ordinary-project-session-identity.md | 25 --- .changeset/ordinary-session-input.md | 9 - .changeset/owned-child-session-lifecycle.md | 7 - .changeset/project-bootstrap-activation.md | 14 -- .changeset/project-session-shortcut.md | 6 - .../remove-empty-project-create-action.md | 7 - .changeset/sandbox-publishing-repository.md | 6 - .changeset/studio-created-agent-membership.md | 12 -- .changeset/studio-onboarding-followups.md | 21 --- .changeset/studio-terminal-teardown.md | 7 - .changeset/unified-project-agents.md | 28 ---- .changeset/writable-project-subsessions.md | 9 - packages/agent-studio/CHANGELOG.md | 32 ++++ packages/agent-studio/package.json | 2 +- packages/cli/CHANGELOG.md | 32 ++++ packages/cli/package.json | 4 +- packages/harness-desktop/CHANGELOG.md | 66 ++++++++ packages/harness-desktop/package.json | 2 +- packages/harness/CHANGELOG.md | 157 ++++++++++++++++++ packages/harness/package.json | 2 +- packages/sandbox/CHANGELOG.md | 7 + packages/sandbox/package.json | 2 +- pnpm-lock.yaml | 2 +- 40 files changed, 301 insertions(+), 275 deletions(-) delete mode 100644 .changeset/atomic-project-state-migration.md delete mode 100644 .changeset/bootstrap-coordinator.md delete mode 100644 .changeset/bootstrap-storage.md delete mode 100644 .changeset/bright-studios-start.md delete mode 100644 .changeset/canvas-resize-release.md delete mode 100644 .changeset/desktop-managed-installs.md delete mode 100644 .changeset/durable-delegation-state.md delete mode 100644 .changeset/durable-project-root-compatibility.md delete mode 100644 .changeset/focused-project-briefs.md delete mode 100644 .changeset/fresh-studio-agent-clis.md delete mode 100644 .changeset/immutable-project-version-contracts.md delete mode 100644 .changeset/initialize-existing-project-agent-maps.md delete mode 100644 .changeset/managed-agent-runtime.md delete mode 100644 .changeset/manual-builder-session.md delete mode 100644 .changeset/native-codex-delegation-startup.md delete mode 100644 .changeset/neutral-shared-plan-versions.md delete mode 100644 .changeset/one-studio-dialog-shell.md delete mode 100644 .changeset/ordinary-project-session-identity.md delete mode 100644 .changeset/ordinary-session-input.md delete mode 100644 .changeset/owned-child-session-lifecycle.md delete mode 100644 .changeset/project-bootstrap-activation.md delete mode 100644 .changeset/project-session-shortcut.md delete mode 100644 .changeset/remove-empty-project-create-action.md delete mode 100644 .changeset/sandbox-publishing-repository.md delete mode 100644 .changeset/studio-created-agent-membership.md delete mode 100644 .changeset/studio-onboarding-followups.md delete mode 100644 .changeset/studio-terminal-teardown.md delete mode 100644 .changeset/unified-project-agents.md delete mode 100644 .changeset/writable-project-subsessions.md diff --git a/.changeset/atomic-project-state-migration.md b/.changeset/atomic-project-state-migration.md deleted file mode 100644 index 493b56ccd..000000000 --- a/.changeset/atomic-project-state-migration.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@sapiom/harness": minor ---- - -Store project maps atomically with immutable version histories and role-neutral proposal attribution, alongside shared build plans. Map and brief quotas, malformed aggregates and unsupported storage schemas now report terminal manual-intervention recovery through MCP; operation history is explicitly bounded before writes. This storage contract does not preserve format-1 maps: startup resets those maps under the legacy-reset policy. - -**Breaking:** `ProposalActor` and proposal-history payloads now contain only trusted `userId` and `sessionId` attribution. Consumers must stop reading or constructing the removed `role` and `assignment` fields and use `sessionId` for attribution. Those fields never represented write or implementation authority. diff --git a/.changeset/bootstrap-coordinator.md b/.changeset/bootstrap-coordinator.md deleted file mode 100644 index 1becc7796..000000000 --- a/.changeset/bootstrap-coordinator.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@sapiom/harness": patch ---- - -Support automatic Agent Map bootstrap with recovery, FIFO delivery, and shutdown handling. Recovery events describe committed state. diff --git a/.changeset/bootstrap-storage.md b/.changeset/bootstrap-storage.md deleted file mode 100644 index f0210715e..000000000 --- a/.changeset/bootstrap-storage.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@sapiom/harness": patch ---- - -Add durable project intents for automatic Agent Map bootstrap. Clean up temporary state after failed writes and ignore unrelated files when reading project intents. diff --git a/.changeset/bright-studios-start.md b/.changeset/bright-studios-start.md deleted file mode 100644 index 6c729f570..000000000 --- a/.changeset/bright-studios-start.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@sapiom/harness": minor ---- - -Agent Studio now defaults to light mode when no explicit light or dark preference is stored. Previously it followed the OS `prefers-color-scheme`; that fallback is removed. A stored light or dark choice still wins — in a browser, toggling once pins it. diff --git a/.changeset/canvas-resize-release.md b/.changeset/canvas-resize-release.md deleted file mode 100644 index 06b3e420f..000000000 --- a/.changeset/canvas-resize-release.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@sapiom/harness": patch ---- - -Keep canvas overview resizing responsive when the pointer is released over the embedded canvas. The drag now finishes and its height persists instead of leaving the panel stuck in resize mode. diff --git a/.changeset/desktop-managed-installs.md b/.changeset/desktop-managed-installs.md deleted file mode 100644 index 753decdd1..000000000 --- a/.changeset/desktop-managed-installs.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@sapiom/harness-desktop": patch ---- - -Install and verify isolated coding-provider versions using the bundled runtime, -with bounded installer processes and cancellation. Keep Electron's runtime -startup flag out of commands launched by managed providers. diff --git a/.changeset/durable-delegation-state.md b/.changeset/durable-delegation-state.md deleted file mode 100644 index 71437e0c0..000000000 --- a/.changeset/durable-delegation-state.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@sapiom/harness": minor ---- - -Publish delegation request/result contracts, lifecycle record types, bounded limits and canonical codec/digest helpers. Add durable reservations, exact child bindings, request receipts and release history in preparation for tool activation. Retain unfinished private cleanup proof until cleanup completes, clear completed spawn claims on lifecycle transitions, and use locale-independent release-key ordering for durable replay. diff --git a/.changeset/durable-project-root-compatibility.md b/.changeset/durable-project-root-compatibility.md deleted file mode 100644 index 3f77d7606..000000000 --- a/.changeset/durable-project-root-compatibility.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@sapiom/harness": patch ---- - -Resolve and retain durable project roots consistently for Studio and System Graph, including descendant sessions after a recent directory is evicted. Compare Windows drive and UNC roots without case sensitivity and migrate legacy case aliases while preserving durable project identities. diff --git a/.changeset/focused-project-briefs.md b/.changeset/focused-project-briefs.md deleted file mode 100644 index 759749636..000000000 --- a/.changeset/focused-project-briefs.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -"@sapiom/harness": minor ---- - -Add deterministic role-neutral focused brief compilation, categorized impact, -immutable scope-keyed lifecycle refresh, and bounded prompt-safe context -projection for canonical and ad-hoc project work. Build-plan apply and rebase -now perform a best-effort brief-history refresh after committing the plan and -return separate `briefRefresh` recovery guidance; the universal -`build_plan_brief_refresh` tool retries the exact source independently. Brief -refresh receipts use bounded retention, while durable history exhaustion is -reported as terminal manual intervention rather than an endlessly retryable -storage failure. - -Publish the compiler functions and `DeterministicAgentBriefCompiler`, `AgentBriefService`, impact evaluator, and `serializeFocusedSessionContext` with its discriminated result and branded projection type. These helpers support exact-version offline compilation and safe context composition; Studio attaches projections through its internal session manager. Automatic refresh uses a trusted receipt namespace that caller map, plan and brief request IDs cannot occupy. diff --git a/.changeset/fresh-studio-agent-clis.md b/.changeset/fresh-studio-agent-clis.md deleted file mode 100644 index 0adacdd82..000000000 --- a/.changeset/fresh-studio-agent-clis.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@sapiom/harness-desktop": patch ---- - -Update installed Claude Code and Codex before desktop sessions start. Verify -each new executable before selecting it and retain the working version when -updates fail or the device is offline. Preserve provider configuration and history. -Remove unpublished installation files from failed or cancelled update attempts. diff --git a/.changeset/immutable-project-version-contracts.md b/.changeset/immutable-project-version-contracts.md deleted file mode 100644 index 19955a04e..000000000 --- a/.changeset/immutable-project-version-contracts.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@sapiom/harness": minor ---- - -Publish immutable Agent Map, build-plan and brief contracts with strict codecs and canonical digest helpers. The public types, exact-reference helpers, codecs and digest functions support offline contract validation independently of later storage and tool activation; documented compatibility aliases remain supported. diff --git a/.changeset/initialize-existing-project-agent-maps.md b/.changeset/initialize-existing-project-agent-maps.md deleted file mode 100644 index 68f40fc8e..000000000 --- a/.changeset/initialize-existing-project-agent-maps.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -"@sapiom/harness": minor ---- - -Delete only legacy format-1 Agent Map workspace records during shared desktop and -CLI startup. Automatically generate missing maps for existing agents in the -background with one isolated, structured Claude Code or Codex inference pass. -Protect authored format-2 history from automatic edits, expose named initialization -status types and authenticated status/retry endpoints, and pack disconnected -components into compact layouts. - -Back up and convert exact, unused historical format-2 containers before map -discovery, allowing their existing agents to receive an initial map. Preserve -current format-2 files and historical records containing authored state or history. -Exclude linked dependency/build/metadata directories from static source inspection -just like ordinary ignored directories, without following links into external sources. diff --git a/.changeset/managed-agent-runtime.md b/.changeset/managed-agent-runtime.md deleted file mode 100644 index b58d12e7c..000000000 --- a/.changeset/managed-agent-runtime.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@sapiom/harness": minor ---- - -Add optional interpreter arguments and environment to coding-provider adapters -and export `createCodexAdapter`. Preserve managed launch configuration across -new sessions, resume, and private structured inference for both providers. diff --git a/.changeset/manual-builder-session.md b/.changeset/manual-builder-session.md deleted file mode 100644 index ddd5521a6..000000000 --- a/.changeset/manual-builder-session.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@sapiom/harness": patch -"@sapiom/harness-desktop": patch ---- - -Keep new-agent composer submissions in their standalone coding session instead of automatically switching to Plan Agents. diff --git a/.changeset/native-codex-delegation-startup.md b/.changeset/native-codex-delegation-startup.md deleted file mode 100644 index 5c54e2f60..000000000 --- a/.changeset/native-codex-delegation-startup.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@sapiom/harness": patch ---- - -Fix fresh Codex delegation waiting for a transcript that Codex creates only after the first turn. Exact owned children now receive one marked kickoff before transcript discovery, and concurrent rollouts are correlated to that runtime without crossing session identities. Retried requests preserve the same child and do not repeat its kickoff. diff --git a/.changeset/neutral-shared-plan-versions.md b/.changeset/neutral-shared-plan-versions.md deleted file mode 100644 index 792fc9acb..000000000 --- a/.changeset/neutral-shared-plan-versions.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@sapiom/harness": minor ---- - -Add shared build-plan read, validate, apply and rebase tools for trusted project sessions, with deterministic assignment IDs, conflict handling and idempotent write receipts. Keep validation errors visible within bounded diagnostics and timestamp semantic no-op receipts at the time they are accepted. diff --git a/.changeset/one-studio-dialog-shell.md b/.changeset/one-studio-dialog-shell.md deleted file mode 100644 index 95bfa7b71..000000000 --- a/.changeset/one-studio-dialog-shell.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@sapiom/harness": patch -"@sapiom/harness-desktop": patch ---- - -Studio's dialogs now behave the same as each other. Add existing agents, Add a project, Create an agent, Use a template, Remove project, End session and Clone agent share one shell, so Tab stays inside the open dialog instead of walking into the rail behind it, the page behind the dialog stops taking clicks and screen-reader attention while it is up, and focus opens on the dialog's subject rather than its close button. Closing a dialog hands focus back to the control that opened it — through the close button, the backdrop and Cancel, not only Escape — wherever that control is still on screen to receive it. Enter submits from a single-line field and Cmd/Ctrl+Enter from a text area, one rule everywhere, and the three confirmation dialogs take neither, so a removal is never one stray Return away. Dialog titles are one size instead of the two they had drifted into. diff --git a/.changeset/ordinary-project-session-identity.md b/.changeset/ordinary-project-session-identity.md deleted file mode 100644 index 82b5a1978..000000000 --- a/.changeset/ordinary-project-session-identity.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -"@sapiom/harness": minor ---- - -Give every Studio project session the same writable coding-agent prompt and -map capabilities, with durable project ownership revalidated before launch -and resume. - -**Breaking for embedders** (minor while `@sapiom/harness` is pre-1.0): -`HarnessSession.agentMapIdentity` now exposes only -`ProjectAgentSession { projectId, userId, sessionId }`. Replace branches on -`role` and `assignment` with neutral project identity. Optional -`projectBootstrap` carries startup status without granting authority. Valid -persisted legacy metadata is normalized while session/provider IDs, cwd, -title, transcript, and Canvas are preserved. Malformed or conflicting -authority fails closed; unavailable project scope prevents resume until the -current owner and root binding are valid again. - -`AgentMapToolEvent.role` is also removed. Telemetry consumers should use the -neutral project/session identifiers and the tool name and outcome instead of -branching on a session role. - -Persisted bootstrap failures with `scope_unavailable` are recognized on -restart, so valid conversation metadata is retained and can resume after -scope is restored. diff --git a/.changeset/ordinary-session-input.md b/.changeset/ordinary-session-input.md deleted file mode 100644 index 53c3b0705..000000000 --- a/.changeset/ordinary-session-input.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@sapiom/harness": minor ---- - -Track ordinary session input delivery and runtime ownership so partial input, preemption, stale ingest events, and shutdown are handled consistently. - -Background input now yields to terminal keystrokes received while its durable pre-write hook is pending. A submission displaced before writing compensates its durable claim so it can be recovered safely. - -**Breaking for embedders** (minor while the package is pre-1.0): `SessionManager.write()` can throw an isolation error with code `SESSION_INPUT_ISOLATION_REQUIRED` when prior partial input cannot be cleared. Callers forwarding terminal bytes should handle this failure and keep the terminal available for a later retry instead of assuming every call returns a boolean. diff --git a/.changeset/owned-child-session-lifecycle.md b/.changeset/owned-child-session-lifecycle.md deleted file mode 100644 index 4210a9d27..000000000 --- a/.changeset/owned-child-session-lifecycle.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@sapiom/harness": minor ---- - -Add trusted child-session creation, recovery and closure with exact binding checks, plus exclusive Codex rollout attribution for simultaneous runtimes. Failed launches retain retryable ownership, and finished discovery releases pending runtime registrations. - -The SessionManager returned by startServer exposes the owned-session lifecycle methods. Callers can handle the public SubsessionBindingMismatchError when an operation does not match its coordinator binding and SubsessionFreshRestartForbiddenError when a fresh restart would overwrite a recorded or explicitly closed conversation. The close() operation must be awaited because durable closure bookkeeping can reject. diff --git a/.changeset/project-bootstrap-activation.md b/.changeset/project-bootstrap-activation.md deleted file mode 100644 index 3cfad9f50..000000000 --- a/.changeset/project-bootstrap-activation.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -"@sapiom/harness": minor ---- - -Activate one recoverable first-session map bootstrap for newly opened Studio projects. Durable project intent, input receipts, readiness, preemption, and restart recovery share the ordinary session lifecycle. - -Breaking changes for embedders and HTTP clients: - -- Remove `HarnessSession.planning`, `SessionManager.setPlanningMetadata()`, and the trusted create/resume `planning` options. Read the neutral `agentMapIdentity` for project identity and optional `projectBootstrap` for lifecycle state. The server migrates valid persisted legacy metadata and input queues automatically. -- Remove the planner contracts `PlannerGreetingErrorCode`, `PlannerGreetingState`, `PlannerSessionMetadata`, `PlannerQueuedInput`, `PlannerSessionRequest`, `PlannerSessionResponse`, `PlannerMessageRequest`, `PlannerSessionMetadataResponse`, and `PlannerLifecycleEvent`. Use ordinary session request/response types and `ProjectBootstrapMetadata`, `ProjectBootstrapState`, and `ProjectBootstrapInputReceipt` for bootstrap state and input acknowledgements. -- Remove `POST /api/projects/:projectId/planner-sessions`, `POST /api/projects/:projectId/planner-sessions/:sessionId/messages`, and `POST /api/projects/:projectId/planner-sessions/:sessionId/greeting/retry`. Create, resume, and send input through `POST /api/sessions`, `POST /api/sessions/:id/resume`, and `POST /api/sessions/:id/input`. Bootstrap recovery is server-owned. Clients supplying the first prompt should set `initialUserInputPending: true` when creating a session. -- Replace the `planner_session.*` and `planner_greeting.*` analytics event names with `project_agent.identity_*` and `project_bootstrap.*`. Their remote projections remain content-free. - -Project creation and root binding can return `202` with a committed project identity when automatic initialization must retry; treat that identity as successfully created. Settings updates return their committed values while new-root initialization continues in the background. Server shutdown keeps admission fenced and bounds its wait for bootstrap, persistence, archive, and telemetry drains before releasing the listener. diff --git a/.changeset/project-session-shortcut.md b/.changeset/project-session-shortcut.md deleted file mode 100644 index 0b94b59e9..000000000 --- a/.changeset/project-session-shortcut.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@sapiom/harness": minor -"@sapiom/harness-desktop": patch ---- - -The project-row `+` now starts an ordinary coding-agent session at that project root. Sessions can create agents and work on the shared Agent Map; Plan Agents is an ordinary session without exclusive creation authority. diff --git a/.changeset/remove-empty-project-create-action.md b/.changeset/remove-empty-project-create-action.md deleted file mode 100644 index 999a7c5b3..000000000 --- a/.changeset/remove-empty-project-create-action.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@sapiom/harness": patch ---- - -Remove the inline first-agent creation button from empty projects, including -projects reopened without a live session and clients connected to older servers. -Keep ordinary project session shortcuts, menu actions, and scan boundary notes. diff --git a/.changeset/sandbox-publishing-repository.md b/.changeset/sandbox-publishing-repository.md deleted file mode 100644 index fc0b0c4ff..000000000 --- a/.changeset/sandbox-publishing-repository.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@sapiom/sandbox": patch ---- - -Declare the package's GitHub repository so npm trusted publishing can match the -release workflow to the package. diff --git a/.changeset/studio-created-agent-membership.md b/.changeset/studio-created-agent-membership.md deleted file mode 100644 index da5b50cb9..000000000 --- a/.changeset/studio-created-agent-membership.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -"@sapiom/harness": patch ---- - -Register successfully scaffolded agents immediately under their creating Studio -project, including folders beside its root. Preserve the project's existing -conversation when selecting those agents, and restore membership from recorded -scaffold completions on restart without moving files or creating extra sessions. - -Accept native Codex timed MCP results and relative scaffold targets while preserving exact creator-path and project ownership checks. Previously recorded successful Codex completions recover membership on restart. - -Keep an explicitly selected archived conversation when selecting its project's created agents after restart. Remember that conversation across browser reloads only while its exact session ID remains in the server's state, without resuming a runtime, creating a session, or replaying input. Existing browser preferences remain compatible; absent or stale conversation selections use the existing live-session fallback. diff --git a/.changeset/studio-onboarding-followups.md b/.changeset/studio-onboarding-followups.md deleted file mode 100644 index 6a64fb7a3..000000000 --- a/.changeset/studio-onboarding-followups.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -"@sapiom/harness": minor ---- - -Deliver a new-agent request directly to Claude Code or Codex at startup after -scaffolding and attachment preparation, without requiring a second Enter or -placing internal authoring instructions in the user's prompt. Preserve project -scope during launch and retain the composer draft when preparation fails. -Session creation and attachment uploads each retain an independent limit of -30 requests per minute, so uploading files does not block a new conversation. - -Add optional `CreateSessionRequest.initialPrompt`, `initialAttachments`, and -`scaffold` fields, `LaunchOpts.initialPrompt` for fresh interactive launches, -and `CREATE_SESSION_JSON_LIMIT_BYTES` for embedders configuring HTTP parsers. -Export `PROJECT_AGENT_PROMPT_APPENDIX` and `projectAgentPromptAppendix` so -embedders can compose Studio's shared project guidance and optional focused -context offline without starting a server. - -Strengthen shared Agent Map, build-plan, and writable subsession guidance while -keeping authoring and runtime capabilities primary. Document project-tool -contracts and replace the known stale Studio orientation at prompt delivery. diff --git a/.changeset/studio-terminal-teardown.md b/.changeset/studio-terminal-teardown.md deleted file mode 100644 index 4e697f031..000000000 --- a/.changeset/studio-terminal-teardown.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@sapiom/harness": patch ---- - -Prevent terminal mount cleanup from disposing the renderer before xterm's -queued viewport initialization runs. Ignore callbacks from closed terminal -connections and preserve workspace preferences across reloads in the Studio demo. diff --git a/.changeset/unified-project-agents.md b/.changeset/unified-project-agents.md deleted file mode 100644 index 128f5a520..000000000 --- a/.changeset/unified-project-agents.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -"@sapiom/harness": minor -"@sapiom/harness-desktop": patch ---- - -Unify Agent Studio project sessions around one ordinary coding-agent identity, make the project name open the shared Agent Map, and seed new projects through a durable, retry-safe bootstrap in the first `Plan Agents` session. - -**Breaking for embedders** (minor while `@sapiom/harness` is pre-1.0): -`HarnessSession.agentMapIdentity` is now the role-neutral -`ProjectAgentSession { projectId, userId, sessionId }`; `role` and `assignment` -are no longer present. `AgentMapToolEvent.role` is also removed; telemetry -consumers use neutral project/session/tool/outcome fields. Valid persisted pre-upgrade session metadata is migrated -into the optional `projectBootstrap` lifecycle field and then removed. Retired -project-session HTTP aliases and public API names are removed; live clients use -the generic session routes. - -**Migration:** stop branching on `agentMapIdentity.role` or `.assignment`, read -optional `projectBootstrap` only for bootstrap status, and use the generic -session routes. An -embedder that already owns a new session's first prompt should send -`initialUserInputPending: true` in the same `CreateSessionRequest`, so automatic -bootstrap yields before launch. New telemetry consumers should recognize the -neutral `project_agent.*` and `project_bootstrap.*` events. Valid legacy state -keeps its session/provider IDs, cwd, title, transcript, and Canvas; malformed or -conflicting authority is retained and fails closed. Released infrastructure -bootstrap event markers remain read-compatible so their private control prompt -never becomes a human transcript turn after upgrade. Downgrading does not -restore the superseded session authority model. diff --git a/.changeset/writable-project-subsessions.md b/.changeset/writable-project-subsessions.md deleted file mode 100644 index e87939957..000000000 --- a/.changeset/writable-project-subsessions.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@sapiom/harness": minor ---- - -Add `project_subsession_delegate` on Studio's project MCP endpoint, with delegate, focused-context refresh, release and dormant-release operations. Delegation supports 16 children per batch, four nesting levels and 64 active or explicitly re-referenced coordinator-owned sessions per project. - -Readiness waits share a 30-second batch budget and return partial retry results with durable session identities. Treat uncertain kickoff delivery as terminal until acknowledged, and use a new request key when canonical content changes. Dormant cleanup remains recoverable after an earlier request expires. - -**Breaking:** `AnalyticsEventType` includes new `subsession.*` events. Update exhaustive event consumers to handle the added values. diff --git a/packages/agent-studio/CHANGELOG.md b/packages/agent-studio/CHANGELOG.md index 687497e6c..a5d8c74eb 100644 --- a/packages/agent-studio/CHANGELOG.md +++ b/packages/agent-studio/CHANGELOG.md @@ -1,5 +1,37 @@ # @sapiom/agent-studio +## 0.1.24 + +### Patch Changes + +- Updated dependencies [7d947b1] +- Updated dependencies [d10f605] +- Updated dependencies [2b5ee34] +- Updated dependencies [aad9500] +- Updated dependencies [e0c1f47] +- Updated dependencies [58fb5cf] +- Updated dependencies [fe9d7d5] +- Updated dependencies [74884b1] +- Updated dependencies [d5c26ae] +- Updated dependencies [4622f40] +- Updated dependencies [9fadbae] +- Updated dependencies [73e7f46] +- Updated dependencies [e0c1f47] +- Updated dependencies [143787a] +- Updated dependencies [30dce20] +- Updated dependencies [69f2a6e] +- Updated dependencies [3d105bc] +- Updated dependencies [4aa4784] +- Updated dependencies [2168491] +- Updated dependencies [1cc232a] +- Updated dependencies [0cbdd86] +- Updated dependencies [e0c1f47] +- Updated dependencies [e0c1f47] +- Updated dependencies [40fe3e8] +- Updated dependencies [cf2369c] +- Updated dependencies [4af416a] + - @sapiom/harness@0.15.0 + ## 0.1.23 ### Patch Changes diff --git a/packages/agent-studio/package.json b/packages/agent-studio/package.json index 9f8a704d6..8323d55d2 100644 --- a/packages/agent-studio/package.json +++ b/packages/agent-studio/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/agent-studio", - "version": "0.1.23", + "version": "0.1.24", "description": "Agent Studio — build, test, deploy, and run Sapiom agents with your coding agent in a local workspace.", "keywords": [ "sapiom", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 59d97e6e9..bb0bdfbc3 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,37 @@ # @sapiom/cli +## 14.0.0 + +### Patch Changes + +- Updated dependencies [7d947b1] +- Updated dependencies [d10f605] +- Updated dependencies [2b5ee34] +- Updated dependencies [aad9500] +- Updated dependencies [e0c1f47] +- Updated dependencies [58fb5cf] +- Updated dependencies [fe9d7d5] +- Updated dependencies [74884b1] +- Updated dependencies [d5c26ae] +- Updated dependencies [4622f40] +- Updated dependencies [9fadbae] +- Updated dependencies [73e7f46] +- Updated dependencies [e0c1f47] +- Updated dependencies [143787a] +- Updated dependencies [30dce20] +- Updated dependencies [69f2a6e] +- Updated dependencies [3d105bc] +- Updated dependencies [4aa4784] +- Updated dependencies [2168491] +- Updated dependencies [1cc232a] +- Updated dependencies [0cbdd86] +- Updated dependencies [e0c1f47] +- Updated dependencies [e0c1f47] +- Updated dependencies [40fe3e8] +- Updated dependencies [cf2369c] +- Updated dependencies [4af416a] + - @sapiom/harness@0.15.0 + ## 13.0.0 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index fe37eb929..0504a7937 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/cli", - "version": "13.0.0", + "version": "14.0.0", "description": "The Sapiom command-line interface — scaffold, validate, and ship Sapiom agents.", "license": "MIT", "author": "Sapiom", @@ -46,7 +46,7 @@ "zod": "^3.25.76" }, "peerDependencies": { - "@sapiom/harness": ">=0.14.0" + "@sapiom/harness": ">=0.15.0" }, "peerDependenciesMeta": { "@sapiom/harness": { diff --git a/packages/harness-desktop/CHANGELOG.md b/packages/harness-desktop/CHANGELOG.md index fad8cdd7f..53a50385d 100644 --- a/packages/harness-desktop/CHANGELOG.md +++ b/packages/harness-desktop/CHANGELOG.md @@ -1,5 +1,71 @@ # @sapiom/harness-desktop +## 0.4.5 + +### Patch Changes + +- 56c4cdc: Install and verify isolated coding-provider versions using the bundled runtime, + with bounded installer processes and cancellation. Keep Electron's runtime + startup flag out of commands launched by managed providers. +- 50f982a: Update installed Claude Code and Codex before desktop sessions start. Verify + each new executable before selecting it and retain the working version when + updates fail or the device is offline. Preserve provider configuration and history. + Remove unpublished installation files from failed or cancelled update attempts. +- 73e7f46: Keep new-agent composer submissions in their standalone coding session instead of automatically switching to Plan Agents. +- 30dce20: Studio's dialogs now behave the same as each other. Add existing agents, Add a project, Create an agent, Use a template, Remove project, End session and Clone agent share one shell, so Tab stays inside the open dialog instead of walking into the rail behind it, the page behind the dialog stops taking clicks and screen-reader attention while it is up, and focus opens on the dialog's subject rather than its close button. Closing a dialog hands focus back to the control that opened it — through the close button, the backdrop and Cancel, not only Escape — wherever that control is still on screen to receive it. Enter submits from a single-line field and Cmd/Ctrl+Enter from a text area, one rule everywhere, and the three confirmation dialogs take neither, so a removal is never one stray Return away. Dialog titles are one size instead of the two they had drifted into. +- 1cc232a: The project-row `+` now starts an ordinary coding-agent session at that project root. Sessions can create agents and work on the shared Agent Map; Plan Agents is an ordinary session without exclusive creation authority. +- cf2369c: Unify Agent Studio project sessions around one ordinary coding-agent identity, make the project name open the shared Agent Map, and seed new projects through a durable, retry-safe bootstrap in the first `Plan Agents` session. + + **Breaking for embedders** (minor while `@sapiom/harness` is pre-1.0): + `HarnessSession.agentMapIdentity` is now the role-neutral + `ProjectAgentSession { projectId, userId, sessionId }`; `role` and `assignment` + are no longer present. `AgentMapToolEvent.role` is also removed; telemetry + consumers use neutral project/session/tool/outcome fields. Valid persisted pre-upgrade session metadata is migrated + into the optional `projectBootstrap` lifecycle field and then removed. Retired + project-session HTTP aliases and public API names are removed; live clients use + the generic session routes. + + **Migration:** stop branching on `agentMapIdentity.role` or `.assignment`, read + optional `projectBootstrap` only for bootstrap status, and use the generic + session routes. An + embedder that already owns a new session's first prompt should send + `initialUserInputPending: true` in the same `CreateSessionRequest`, so automatic + bootstrap yields before launch. New telemetry consumers should recognize the + neutral `project_agent.*` and `project_bootstrap.*` events. Valid legacy state + keeps its session/provider IDs, cwd, title, transcript, and Canvas; malformed or + conflicting authority is retained and fails closed. Released infrastructure + bootstrap event markers remain read-compatible so their private control prompt + never becomes a human transcript turn after upgrade. Downgrading does not + restore the superseded session authority model. + +- Updated dependencies [7d947b1] +- Updated dependencies [d10f605] +- Updated dependencies [2b5ee34] +- Updated dependencies [aad9500] +- Updated dependencies [e0c1f47] +- Updated dependencies [58fb5cf] +- Updated dependencies [fe9d7d5] +- Updated dependencies [74884b1] +- Updated dependencies [d5c26ae] +- Updated dependencies [4622f40] +- Updated dependencies [9fadbae] +- Updated dependencies [73e7f46] +- Updated dependencies [e0c1f47] +- Updated dependencies [143787a] +- Updated dependencies [30dce20] +- Updated dependencies [69f2a6e] +- Updated dependencies [3d105bc] +- Updated dependencies [4aa4784] +- Updated dependencies [2168491] +- Updated dependencies [1cc232a] +- Updated dependencies [0cbdd86] +- Updated dependencies [e0c1f47] +- Updated dependencies [e0c1f47] +- Updated dependencies [40fe3e8] +- Updated dependencies [cf2369c] +- Updated dependencies [4af416a] + - @sapiom/harness@0.15.0 + ## 0.4.4 ### Patch Changes diff --git a/packages/harness-desktop/package.json b/packages/harness-desktop/package.json index 7cf67d991..84613c527 100644 --- a/packages/harness-desktop/package.json +++ b/packages/harness-desktop/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/harness-desktop", - "version": "0.4.4", + "version": "0.4.5", "private": true, "description": "Agent Studio desktop app — a one-click native host for running Claude Code or Codex in a Sapiom-configured environment. The npx CLI (@sapiom/harness) remains the backup host over the same startServer().", "homepage": "https://sapiom.ai", diff --git a/packages/harness/CHANGELOG.md b/packages/harness/CHANGELOG.md index 24015a3b8..94d3d11a4 100644 --- a/packages/harness/CHANGELOG.md +++ b/packages/harness/CHANGELOG.md @@ -1,5 +1,162 @@ # @sapiom/harness +## 0.15.0 + +### Minor Changes + +- 7d947b1: Store project maps atomically with immutable version histories and role-neutral proposal attribution, alongside shared build plans. Map and brief quotas, malformed aggregates and unsupported storage schemas now report terminal manual-intervention recovery through MCP; operation history is explicitly bounded before writes. This storage contract does not preserve format-1 maps: startup resets those maps under the legacy-reset policy. + + **Breaking:** `ProposalActor` and proposal-history payloads now contain only trusted `userId` and `sessionId` attribution. Consumers must stop reading or constructing the removed `role` and `assignment` fields and use `sessionId` for attribution. Those fields never represented write or implementation authority. + +- aad9500: Agent Studio now defaults to light mode when no explicit light or dark preference is stored. Previously it followed the OS `prefers-color-scheme`; that fallback is removed. A stored light or dark choice still wins — in a browser, toggling once pins it. +- 58fb5cf: Publish delegation request/result contracts, lifecycle record types, bounded limits and canonical codec/digest helpers. Add durable reservations, exact child bindings, request receipts and release history in preparation for tool activation. Retain unfinished private cleanup proof until cleanup completes, clear completed spawn claims on lifecycle transitions, and use locale-independent release-key ordering for durable replay. +- 74884b1: Add deterministic role-neutral focused brief compilation, categorized impact, + immutable scope-keyed lifecycle refresh, and bounded prompt-safe context + projection for canonical and ad-hoc project work. Build-plan apply and rebase + now perform a best-effort brief-history refresh after committing the plan and + return separate `briefRefresh` recovery guidance; the universal + `build_plan_brief_refresh` tool retries the exact source independently. Brief + refresh receipts use bounded retention, while durable history exhaustion is + reported as terminal manual intervention rather than an endlessly retryable + storage failure. + + Publish the compiler functions and `DeterministicAgentBriefCompiler`, `AgentBriefService`, impact evaluator, and `serializeFocusedSessionContext` with its discriminated result and branded projection type. These helpers support exact-version offline compilation and safe context composition; Studio attaches projections through its internal session manager. Automatic refresh uses a trusted receipt namespace that caller map, plan and brief request IDs cannot occupy. + +- d5c26ae: Publish immutable Agent Map, build-plan and brief contracts with strict codecs and canonical digest helpers. The public types, exact-reference helpers, codecs and digest functions support offline contract validation independently of later storage and tool activation; documented compatibility aliases remain supported. +- 4622f40: Delete only legacy format-1 Agent Map workspace records during shared desktop and + CLI startup. Automatically generate missing maps for existing agents in the + background with one isolated, structured Claude Code or Codex inference pass. + Protect authored format-2 history from automatic edits, expose named initialization + status types and authenticated status/retry endpoints, and pack disconnected + components into compact layouts. + + Back up and convert exact, unused historical format-2 containers before map + discovery, allowing their existing agents to receive an initial map. Preserve + current format-2 files and historical records containing authored state or history. + Exclude linked dependency/build/metadata directories from static source inspection + just like ordinary ignored directories, without following links into external sources. + +- 9fadbae: Add optional interpreter arguments and environment to coding-provider adapters + and export `createCodexAdapter`. Preserve managed launch configuration across + new sessions, resume, and private structured inference for both providers. +- 143787a: Add shared build-plan read, validate, apply and rebase tools for trusted project sessions, with deterministic assignment IDs, conflict handling and idempotent write receipts. Keep validation errors visible within bounded diagnostics and timestamp semantic no-op receipts at the time they are accepted. +- 69f2a6e: Give every Studio project session the same writable coding-agent prompt and + map capabilities, with durable project ownership revalidated before launch + and resume. + + **Breaking for embedders** (minor while `@sapiom/harness` is pre-1.0): + `HarnessSession.agentMapIdentity` now exposes only + `ProjectAgentSession { projectId, userId, sessionId }`. Replace branches on + `role` and `assignment` with neutral project identity. Optional + `projectBootstrap` carries startup status without granting authority. Valid + persisted legacy metadata is normalized while session/provider IDs, cwd, + title, transcript, and Canvas are preserved. Malformed or conflicting + authority fails closed; unavailable project scope prevents resume until the + current owner and root binding are valid again. + + `AgentMapToolEvent.role` is also removed. Telemetry consumers should use the + neutral project/session identifiers and the tool name and outcome instead of + branching on a session role. + + Persisted bootstrap failures with `scope_unavailable` are recognized on + restart, so valid conversation metadata is retained and can resume after + scope is restored. + +- 3d105bc: Track ordinary session input delivery and runtime ownership so partial input, preemption, stale ingest events, and shutdown are handled consistently. + + Background input now yields to terminal keystrokes received while its durable pre-write hook is pending. A submission displaced before writing compensates its durable claim so it can be recovered safely. + + **Breaking for embedders** (minor while the package is pre-1.0): `SessionManager.write()` can throw an isolation error with code `SESSION_INPUT_ISOLATION_REQUIRED` when prior partial input cannot be cleared. Callers forwarding terminal bytes should handle this failure and keep the terminal available for a later retry instead of assuming every call returns a boolean. + +- 4aa4784: Add trusted child-session creation, recovery and closure with exact binding checks, plus exclusive Codex rollout attribution for simultaneous runtimes. Failed launches retain retryable ownership, and finished discovery releases pending runtime registrations. + + The SessionManager returned by startServer exposes the owned-session lifecycle methods. Callers can handle the public SubsessionBindingMismatchError when an operation does not match its coordinator binding and SubsessionFreshRestartForbiddenError when a fresh restart would overwrite a recorded or explicitly closed conversation. The close() operation must be awaited because durable closure bookkeeping can reject. + +- 2168491: Activate one recoverable first-session map bootstrap for newly opened Studio projects. Durable project intent, input receipts, readiness, preemption, and restart recovery share the ordinary session lifecycle. + + Breaking changes for embedders and HTTP clients: + + - Remove `HarnessSession.planning`, `SessionManager.setPlanningMetadata()`, and the trusted create/resume `planning` options. Read the neutral `agentMapIdentity` for project identity and optional `projectBootstrap` for lifecycle state. The server migrates valid persisted legacy metadata and input queues automatically. + - Remove the planner contracts `PlannerGreetingErrorCode`, `PlannerGreetingState`, `PlannerSessionMetadata`, `PlannerQueuedInput`, `PlannerSessionRequest`, `PlannerSessionResponse`, `PlannerMessageRequest`, `PlannerSessionMetadataResponse`, and `PlannerLifecycleEvent`. Use ordinary session request/response types and `ProjectBootstrapMetadata`, `ProjectBootstrapState`, and `ProjectBootstrapInputReceipt` for bootstrap state and input acknowledgements. + - Remove `POST /api/projects/:projectId/planner-sessions`, `POST /api/projects/:projectId/planner-sessions/:sessionId/messages`, and `POST /api/projects/:projectId/planner-sessions/:sessionId/greeting/retry`. Create, resume, and send input through `POST /api/sessions`, `POST /api/sessions/:id/resume`, and `POST /api/sessions/:id/input`. Bootstrap recovery is server-owned. Clients supplying the first prompt should set `initialUserInputPending: true` when creating a session. + - Replace the `planner_session.*` and `planner_greeting.*` analytics event names with `project_agent.identity_*` and `project_bootstrap.*`. Their remote projections remain content-free. + + Project creation and root binding can return `202` with a committed project identity when automatic initialization must retry; treat that identity as successfully created. Settings updates return their committed values while new-root initialization continues in the background. Server shutdown keeps admission fenced and bounds its wait for bootstrap, persistence, archive, and telemetry drains before releasing the listener. + +- 1cc232a: The project-row `+` now starts an ordinary coding-agent session at that project root. Sessions can create agents and work on the shared Agent Map; Plan Agents is an ordinary session without exclusive creation authority. +- e0c1f47: Deliver a new-agent request directly to Claude Code or Codex at startup after + scaffolding and attachment preparation, without requiring a second Enter or + placing internal authoring instructions in the user's prompt. Preserve project + scope during launch and retain the composer draft when preparation fails. + Session creation and attachment uploads each retain an independent limit of + 30 requests per minute, so uploading files does not block a new conversation. + + Add optional `CreateSessionRequest.initialPrompt`, `initialAttachments`, and + `scaffold` fields, `LaunchOpts.initialPrompt` for fresh interactive launches, + and `CREATE_SESSION_JSON_LIMIT_BYTES` for embedders configuring HTTP parsers. + Export `PROJECT_AGENT_PROMPT_APPENDIX` and `projectAgentPromptAppendix` so + embedders can compose Studio's shared project guidance and optional focused + context offline without starting a server. + + Strengthen shared Agent Map, build-plan, and writable subsession guidance while + keeping authoring and runtime capabilities primary. Document project-tool + contracts and replace the known stale Studio orientation at prompt delivery. + +- cf2369c: Unify Agent Studio project sessions around one ordinary coding-agent identity, make the project name open the shared Agent Map, and seed new projects through a durable, retry-safe bootstrap in the first `Plan Agents` session. + + **Breaking for embedders** (minor while `@sapiom/harness` is pre-1.0): + `HarnessSession.agentMapIdentity` is now the role-neutral + `ProjectAgentSession { projectId, userId, sessionId }`; `role` and `assignment` + are no longer present. `AgentMapToolEvent.role` is also removed; telemetry + consumers use neutral project/session/tool/outcome fields. Valid persisted pre-upgrade session metadata is migrated + into the optional `projectBootstrap` lifecycle field and then removed. Retired + project-session HTTP aliases and public API names are removed; live clients use + the generic session routes. + + **Migration:** stop branching on `agentMapIdentity.role` or `.assignment`, read + optional `projectBootstrap` only for bootstrap status, and use the generic + session routes. An + embedder that already owns a new session's first prompt should send + `initialUserInputPending: true` in the same `CreateSessionRequest`, so automatic + bootstrap yields before launch. New telemetry consumers should recognize the + neutral `project_agent.*` and `project_bootstrap.*` events. Valid legacy state + keeps its session/provider IDs, cwd, title, transcript, and Canvas; malformed or + conflicting authority is retained and fails closed. Released infrastructure + bootstrap event markers remain read-compatible so their private control prompt + never becomes a human transcript turn after upgrade. Downgrading does not + restore the superseded session authority model. + +- 4af416a: Add `project_subsession_delegate` on Studio's project MCP endpoint, with delegate, focused-context refresh, release and dormant-release operations. Delegation supports 16 children per batch, four nesting levels and 64 active or explicitly re-referenced coordinator-owned sessions per project. + + Readiness waits share a 30-second batch budget and return partial retry results with durable session identities. Treat uncertain kickoff delivery as terminal until acknowledged, and use a new request key when canonical content changes. Dormant cleanup remains recoverable after an earlier request expires. + + **Breaking:** `AnalyticsEventType` includes new `subsession.*` events. Update exhaustive event consumers to handle the added values. + +### Patch Changes + +- d10f605: Support automatic Agent Map bootstrap with recovery, FIFO delivery, and shutdown handling. Recovery events describe committed state. +- 2b5ee34: Add durable project intents for automatic Agent Map bootstrap. Clean up temporary state after failed writes and ignore unrelated files when reading project intents. +- e0c1f47: Keep canvas overview resizing responsive when the pointer is released over the embedded canvas. The drag now finishes and its height persists instead of leaving the panel stuck in resize mode. +- fe9d7d5: Resolve and retain durable project roots consistently for Studio and System Graph, including descendant sessions after a recent directory is evicted. Compare Windows drive and UNC roots without case sensitivity and migrate legacy case aliases while preserving durable project identities. +- 73e7f46: Keep new-agent composer submissions in their standalone coding session instead of automatically switching to Plan Agents. +- e0c1f47: Fix fresh Codex delegation waiting for a transcript that Codex creates only after the first turn. Exact owned children now receive one marked kickoff before transcript discovery, and concurrent rollouts are correlated to that runtime without crossing session identities. Retried requests preserve the same child and do not repeat its kickoff. +- 30dce20: Studio's dialogs now behave the same as each other. Add existing agents, Add a project, Create an agent, Use a template, Remove project, End session and Clone agent share one shell, so Tab stays inside the open dialog instead of walking into the rail behind it, the page behind the dialog stops taking clicks and screen-reader attention while it is up, and focus opens on the dialog's subject rather than its close button. Closing a dialog hands focus back to the control that opened it — through the close button, the backdrop and Cancel, not only Escape — wherever that control is still on screen to receive it. Enter submits from a single-line field and Cmd/Ctrl+Enter from a text area, one rule everywhere, and the three confirmation dialogs take neither, so a removal is never one stray Return away. Dialog titles are one size instead of the two they had drifted into. +- 0cbdd86: Remove the inline first-agent creation button from empty projects, including + projects reopened without a live session and clients connected to older servers. + Keep ordinary project session shortcuts, menu actions, and scan boundary notes. +- e0c1f47: Register successfully scaffolded agents immediately under their creating Studio + project, including folders beside its root. Preserve the project's existing + conversation when selecting those agents, and restore membership from recorded + scaffold completions on restart without moving files or creating extra sessions. + + Accept native Codex timed MCP results and relative scaffold targets while preserving exact creator-path and project ownership checks. Previously recorded successful Codex completions recover membership on restart. + + Keep an explicitly selected archived conversation when selecting its project's created agents after restart. Remember that conversation across browser reloads only while its exact session ID remains in the server's state, without resuming a runtime, creating a session, or replaying input. Existing browser preferences remain compatible; absent or stale conversation selections use the existing live-session fallback. + +- 40fe3e8: Prevent terminal mount cleanup from disposing the renderer before xterm's + queued viewport initialization runs. Ignore callbacks from closed terminal + connections and preserve workspace preferences across reloads in the Studio demo. + ## 0.14.0 ### Minor Changes diff --git a/packages/harness/package.json b/packages/harness/package.json index 6507044fd..f04fdc72a 100644 --- a/packages/harness/package.json +++ b/packages/harness/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/harness", - "version": "0.14.0", + "version": "0.15.0", "description": "Agent Studio — a CLI-launched local web app that runs your coding agent (Claude Code or Codex) in a Sapiom-configured environment: MCP pre-wired, agents tracked, one-click deploy/run, and a live canvas for previews.", "keywords": [ "sapiom", diff --git a/packages/sandbox/CHANGELOG.md b/packages/sandbox/CHANGELOG.md index 8ae45ba24..819a1a37b 100644 --- a/packages/sandbox/CHANGELOG.md +++ b/packages/sandbox/CHANGELOG.md @@ -1,5 +1,12 @@ # @sapiom/sandbox +## 0.8.5 + +### Patch Changes + +- df7667c: Declare the package's GitHub repository so npm trusted publishing can match the + release workflow to the package. + ## 0.8.4 ### Patch Changes diff --git a/packages/sandbox/package.json b/packages/sandbox/package.json index 4f0e5cdc4..556e4a8fe 100644 --- a/packages/sandbox/package.json +++ b/packages/sandbox/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/sandbox", - "version": "0.8.4", + "version": "0.8.5", "description": "Sandbox environment management for Sapiom SDK", "repository": { "type": "git", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 99a872883..912c6e092 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -256,7 +256,7 @@ importers: specifier: workspace:^ version: link:../analytics-core '@sapiom/harness': - specifier: '>=0.14.0' + specifier: '>=0.15.0' version: link:../harness '@sapiom/sandbox-preview': specifier: workspace:^ From 3f43afdf67d460382ff67c2419fd0b025fb54fdd Mon Sep 17 00:00:00 2001 From: Yash Date: Sun, 6 Sep 2026 23:15:43 +0000 Subject: [PATCH 2/2] docs(release): clarify Agent Map migration and session notes --- packages/harness/CHANGELOG.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/harness/CHANGELOG.md b/packages/harness/CHANGELOG.md index 94d3d11a4..3adc09926 100644 --- a/packages/harness/CHANGELOG.md +++ b/packages/harness/CHANGELOG.md @@ -9,7 +9,7 @@ **Breaking:** `ProposalActor` and proposal-history payloads now contain only trusted `userId` and `sessionId` attribution. Consumers must stop reading or constructing the removed `role` and `assignment` fields and use `sessionId` for attribution. Those fields never represented write or implementation authority. - aad9500: Agent Studio now defaults to light mode when no explicit light or dark preference is stored. Previously it followed the OS `prefers-color-scheme`; that fallback is removed. A stored light or dark choice still wins — in a browser, toggling once pins it. -- 58fb5cf: Publish delegation request/result contracts, lifecycle record types, bounded limits and canonical codec/digest helpers. Add durable reservations, exact child bindings, request receipts and release history in preparation for tool activation. Retain unfinished private cleanup proof until cleanup completes, clear completed spawn claims on lifecycle transitions, and use locale-independent release-key ordering for durable replay. +- 58fb5cf: Publish delegation request/result contracts, lifecycle record types, bounded limits and canonical codec/digest helpers. Add durable reservations, exact child bindings, request receipts and release history for delegated sessions. Retain unfinished private cleanup proof until cleanup completes, clear completed spawn claims on lifecycle transitions, and use locale-independent release-key ordering for durable replay. - 74884b1: Add deterministic role-neutral focused brief compilation, categorized impact, immutable scope-keyed lifecycle refresh, and bounded prompt-safe context projection for canonical and ad-hoc project work. Build-plan apply and rebase @@ -22,7 +22,7 @@ Publish the compiler functions and `DeterministicAgentBriefCompiler`, `AgentBriefService`, impact evaluator, and `serializeFocusedSessionContext` with its discriminated result and branded projection type. These helpers support exact-version offline compilation and safe context composition; Studio attaches projections through its internal session manager. Automatic refresh uses a trusted receipt namespace that caller map, plan and brief request IDs cannot occupy. -- d5c26ae: Publish immutable Agent Map, build-plan and brief contracts with strict codecs and canonical digest helpers. The public types, exact-reference helpers, codecs and digest functions support offline contract validation independently of later storage and tool activation; documented compatibility aliases remain supported. +- d5c26ae: Publish immutable Agent Map, build-plan and brief contracts with strict codecs and canonical digest helpers. The public types, exact-reference helpers, codecs and digest functions support offline contract validation independently of running Studio; documented compatibility aliases remain supported. - 4622f40: Delete only legacy format-1 Agent Map workspace records during shared desktop and CLI startup. Automatically generate missing maps for existing agents in the background with one isolated, structured Claude Code or Codex inference pass. @@ -31,8 +31,10 @@ components into compact layouts. Back up and convert exact, unused historical format-2 containers before map - discovery, allowing their existing agents to receive an initial map. Preserve - current format-2 files and historical records containing authored state or history. + discovery, allowing their existing agents to receive an initial map. Do not + reset current format-2 storage. Protect authored maps and history from automatic + edits; eligible projects without authored maps can receive an initial map. + Preserve historical records containing authored state or history. Exclude linked dependency/build/metadata directories from static source inspection just like ordinary ignored directories, without following links into external sources. @@ -102,7 +104,7 @@ keeping authoring and runtime capabilities primary. Document project-tool contracts and replace the known stale Studio orientation at prompt delivery. -- cf2369c: Unify Agent Studio project sessions around one ordinary coding-agent identity, make the project name open the shared Agent Map, and seed new projects through a durable, retry-safe bootstrap in the first `Plan Agents` session. +- cf2369c: Unify Agent Studio project sessions around one ordinary coding-agent identity, make the project name open the shared Agent Map, and seed new projects through a durable, retry-safe bootstrap in the first ordinary session, titled `Plan Agents`. **Breaking for embedders** (minor while `@sapiom/harness` is pre-1.0): `HarnessSession.agentMapIdentity` is now the role-neutral