From 554f446f1783dc7aeb9129240e9d4ec34079c28d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 9 Nov 2026 17:05:29 +0000 Subject: [PATCH] Version Packages --- .../2026-11-09-ai-search-built-in-storage.md | 16 -- ...026-11-09-commit-manual-test-recordings.md | 9 - .tegami/publish-lock.yaml | 192 +----------------- CHANGELOG.md | 19 ++ VERSION | 2 +- docs/solzero-release-notes.png | Bin 46411 -> 40120 bytes 6 files changed, 26 insertions(+), 212 deletions(-) delete mode 100644 .tegami/2026-11-09-ai-search-built-in-storage.md delete mode 100644 .tegami/2026-11-09-commit-manual-test-recordings.md diff --git a/.tegami/2026-11-09-ai-search-built-in-storage.md b/.tegami/2026-11-09-ai-search-built-in-storage.md deleted file mode 100644 index 05b669e9..00000000 --- a/.tegami/2026-11-09-ai-search-built-in-storage.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -packages: - "release:solzero": major ---- - -## Upload documents directly to AI Search - -AI Search sources now use built-in storage. Administrators can upload and delete documents and -inspect indexing status without an external-storage service token. Workflows can ingest text and -JSON with the new Upload to AI Search node. - -R2 and website source creation is removed. Existing source records and original content remain -intact and are marked as requiring migration; these sources are unavailable for retrieval until -operators copy their originals into new built-in sources and update their selections. Follow -`docs/ai-search.md` before cutover. Deployment does not copy or delete legacy content. Workflow -artifact and skill storage remain unchanged. diff --git a/.tegami/2026-11-09-commit-manual-test-recordings.md b/.tegami/2026-11-09-commit-manual-test-recordings.md deleted file mode 100644 index 893ca39d..00000000 --- a/.tegami/2026-11-09-commit-manual-test-recordings.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -packages: - "release:solzero": patch ---- - -## Complete manual test-recording refreshes - -Successful manual validation runs now execute the requested recording-commit step when release -detection is skipped. Failed or cancelled tests cannot publish recordings. diff --git a/.tegami/publish-lock.yaml b/.tegami/publish-lock.yaml index 4be3613d..26d68e73 100644 --- a/.tegami/publish-lock.yaml +++ b/.tegami/publish-lock.yaml @@ -1,193 +1,13 @@ core:changelogs: - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Open created bot details\n\nThe bot route now renders its detail page after creation and direct navigation.\n" - filename: 2026-10-04-bot-detail.md + - content: "---\npackages:\n release:solzero:\n type: major\n---\n\n## Upload documents directly to AI Search\n\nAI Search sources now use built-in storage. Administrators can upload and delete documents and\ninspect indexing status without an external-storage service token. Workflows can ingest text and\nJSON with the new Upload to AI Search node.\n\nR2 and website source creation is removed. Existing source records and original content remain\nintact and are marked as requiring migration; these sources are unavailable for retrieval until\noperators copy their originals into new built-in sources and update their selections. Follow\n`docs/ai-search.md` before cutover. Deployment does not copy or delete legacy content. Workflow\nartifact and skill storage remain unchanged.\n" + filename: 2026-11-09-ai-search-built-in-storage.md v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Honor Codex reasoning effort for Cloudflare GPT-OSS\n\nCodex now forwards the selected reasoning effort when running the supported Cloudflare GPT-OSS models. A pinned harness compatibility patch enables their reasoning metadata while keeping summaries disabled; other models retain their existing configuration.\n" - filename: 2026-10-04-codex-reasoning.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: minor\n---\n\n## Show AI usage in end-to-end checks\n\nEnd-to-end checks now report model requests, measured token counts, cache results,\ndurations and estimated charges. Same-repository pull requests receive a summary when\nuncached inference occurs. Missing provider measurements remain unknown. Summaries\nexclude request content and credentials.\n" - filename: 2026-10-04-e2e-ai-usage.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Release isolated test gateways after validation\n\nCloudflare end-to-end checks reuse dedicated test gateway names and destroy their owned\ninfrastructure after each CI run, including revoking the generated application run token.\nLocal test operators can run `nub run test:e2e:cleanup` after stopping the stack. Cleanup\nvalidates ownership and leaves production and shared gateways unchanged.\n" - filename: 2026-10-04-e2e-gateway-lifecycle.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Start container harnesses with their required bootstrap dependency\n\nThe agent container includes the pinned pnpm runtime required by the AI SDK harness bootstrap recipes. This supplies the missing executable needed at startup. The non-root runtime user also owns the OpenCode cache directory so its native CLI can complete bootstrap. Isolated end-to-end container runs build the current runtime sources and Dockerfile locally; deployed environments receive the change when release CI publishes updated image digests. Repository development continues to use Nub.\n" - filename: 2026-10-04-harness-bootstrap.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Continue existing harness sessions\n\nThe session run API now inherits an existing session's kind when a follow-up request omits it. OpenCode and Codex follow-ups no longer fail with an incorrect isolate-kind conflict.\n" - filename: 2026-10-04-harness-follow-up.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Complete delegated GPT-OSS turns\n\nIsolate parent and child turns now use a 4096-token output budget for native Cloudflare GPT-OSS when no explicit limit is supplied, avoiding its short default during tool execution and delegation.\n" - filename: 2026-10-04-isolate-output-budget.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Register Cloudflare model IDs in the OpenCode harness\n\nOpenCode registers custom Cloudflare Responses model IDs in its generated OpenAI provider configuration, allowing the configured Workers AI model to resolve. Typed OpenCode errors retain their display message instead of becoming `[object Object]`. The isolated local launcher supplies trusted macOS system roots to Alchemy and workerd without overriding a caller's CA bundle or disabling certificate verification.\n" - filename: 2026-10-04-opencode-cloudflare-model.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Search secrets with long names\n\nSecret search applies literal matching after user-scoped database selection, avoiding D1 pattern-length errors for longer names.\n" - filename: 2026-10-04-secret-search.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Restore idle controls after reopening a session\n\nReopening a completed or failed session no longer leaves the agent thinking indicator and Stop button active. The message composer and model selector become available when there is no processing message.\n" - filename: 2026-10-04-session-replay-idle.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Keep sign-in input when the page first opens\n\nThe sign-in form now waits until its event handlers are attached before accepting input. This prevents early input from being lost and stops credentials from being submitted as a native GET request during hydration. Authenticated forms show the existing loader until they are interactive.\n" - filename: 2026-10-04-sign-in-hydration.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Select subagent preferences in the tools dialog\n\nSubagent options now appear above the tools dialog and accept pointer selection.\n" - filename: 2026-10-04-subagent-menu.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Run OpenCode and Codex with Cloudflare GPT-OSS\n\nOpenCode and Codex can now complete prompts, execute shell tools, and continue sessions with the configured Cloudflare GPT-OSS model. SolZero bridges buffered native Chat output to the Responses stream required by the harnesses, preserving actual text, tool calls, and results. Output is delivered after the provider finishes generating it.\n" - filename: 2026-10-04-workers-ai-harness.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Export the current workflow name\n\nWorkflow YAML exports now use the saved name after renaming a workflow, matching the workflow detail page.\n" - filename: 2026-10-04-workflow-export-name.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Keep sign-in on Better Auth 1.7\n\nSolZero now uses Better Auth 1.7.7. Email and password sign-in, GitHub linking, and session cookies stay the same.\n\nIf this deployment registers a custom OIDC provider, set the identity-provider redirect URI to `/api/auth/callback/`. The previous `/api/auth/oauth2/callback/` path is no longer used.\n" - filename: 2026-10-05-better-auth-1-7.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Clean test resources after failures and cancellation\n\nEnd-to-end runs now isolate simulator data, containers, gateways and application tokens by run ownership and verify their removal after success, failure or cancellation. Interrupted runs retain guarded recovery receipts instead of sweeping shared development data. Preview cleanup verifies the current pull request lifetime and owned resource absence before reporting success.\n" - filename: 2026-10-05-clean-owned-e2e-resources.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Reuse verified browser actions across test runs\n\nEnd-to-end checks can replay recorded browser actions with fresh fixture data while\nstill checking exact results. CI restores recordings from the same branch and saves a\nnew archive after each successful run, including rerun attempts. Reports show action\nreplay and live model calls separately from AI Gateway response caching.\n" - filename: 2026-10-05-e2e-action-replay.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Preserve unsaved runtime settings\n\nBackground provider refreshes no longer discard an edited Isolate step limit when the saved value is unchanged. The input becomes editable after its saved baseline is initialized.\n" - filename: 2026-10-05-preserve-runtime-settings-draft.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: minor\n---\n\n## Deploy from the alchemy.new registry\n\n\n\nalchemy.new deploys SolZero from registry package `solzero/platform`. The release workflow publishes that package for the release it just created. The project manifest is uploaded separately and is not inside the archive. The deploy sandbox does not clone the tag or install dependencies. Agent container images stay pinned by digest. A release that did not publish the package cannot be deployed on alchemy.new. Releases published before this package, including v1.8.0, stay undeployable there until you select a release that published it.\n\nAllow the publisher at alchemy.new before the first deploy. The repository is `SolZeroAI/platform`, the workflow file is `release.yml`, the git ref is `refs/heads/master`, and the GitHub Environment is `alchemy-new`.\n" - filename: 2026-10-07-ready-deploy-artifact.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Validate complete deployment profiles\n\nConfiguration checks now include a named profile's test-stage file when it exists. Rewriting an\nexisting stage-secret file also restores private file permissions, rather than preserving a broader\nmode from an earlier copy.\n" - filename: 2026-10-23-config-profile-validation.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: minor\n---\n\n## Customize a deployment without changing application code\n\nDeployment profiles can now define a complete product brand for the browser, API documentation, agents, and Slack.\nCustom logos also replace the primary loading mark. Existing brand environment overrides remain\nsupported when the profile does not define a brand.\n\nOperators can configure a pull-request helper alias while preserving existing skill identities.\nDeploy an updated agent-container image before using this alias. Health responses now identify the\nconfigured application as `-agent-control-plane`.\n\nPrivate deployment templates support named profiles, configurable runners, Okta credentials, and\nPlanetScale credentials for standing environments. Ephemeral pull-request previews remain on D1.\n\nRemote PlanetScale capacity, region and logical database name can be configured without code changes.\n" - filename: 2026-10-23-fork-configuration.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: minor\n---\n\n## Verify an offline migration before cutover\n\nThe D1-to-Postgres copier now uses bounded batches, rejects unmapped data, preserves legacy built-in\nskill identities, and independently verifies row counts and checksums. Apply requires an explicit\nwrite-freeze acknowledgement. Reports omit secret values.\n\nOperators can export and verify R2, KV and schema-compatible session state through a separate temporary\nauthenticated Worker. Rehearse first: running work, alarms, external resources and incompatible historical\nschemas require explicit cutover handling. Keep both stacks offline during the final transfer and follow\nthe migration runbook before enabling the destination.\n" - filename: 2026-10-23-offline-migration.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: major\n---\n\n## Serve the API from the web origin\n\nThe API is now served only at the web application's `/api` path. Public requests route directly to the API Worker, while server-rendered pages use a private service binding. Workflow webhooks, Slack callbacks, agent URLs and OpenAPI use the `/api` base.\n\n**Breaking:** the separate `api.` hostname and the `deployment.apiFqdn` setting are removed, and configuration files that still set `apiFqdn` fail validation. Update external callers, OAuth provider callbacks, GitHub App webhooks and Slack request URLs to the `/api` base before upgrading a deployment.\n" - filename: 2026-10-23-same-origin-api.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Skip Cloudflare deploys until a fork opts in\n\nDeploy and Deploy Preview run only when the repository variable `CLOUDFLARE_DEPLOY` is `true`.\nThe public repository does not set that variable, so it does not need `CLOUDFLARE_API_TOKEN`.\n\nA fork that deploys sets `CLOUDFLARE_DEPLOY` to `true` and sets `CLOUDFLARE_API_TOKEN`.\nPut production deploy secrets in a `prod` environment limited to `master`. Only the Deploy job uses that environment.\n" - filename: 2026-10-25-cloudflare-deploy-switch.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: minor\n---\n\n## Run a local stage without an account AI Gateway\n\nSet the optional top-level `aiGatewayLayer` to `mock` in a stage configuration to answer Workers AI model calls inside the Worker. Each answer repeats the user's message. That stage does not provision an account AI Gateway, secrets store, or run token, and it does not need a Cloudflare API token for model calls. Use it only for local testing. Omit the field or set it to `live` for every deployed stage.\n" - filename: 2026-10-27-mock-ai-gateway-layer.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Select end-to-end test models with shared settings\n\nEnd-to-end checks read the decision model from `E2E_DECISION_MODEL` and the language\nmodel from `E2E_LANGUAGE_MODEL`. CI reads both from SolZeroAI organization Actions\nvariables. Without them, local runs use Cloudflare Clef and Claude Haiku 5.5 through the\naccount's default AI Gateway. Third-party models such as Claude Haiku bill through\nCloudflare Unified Billing.\n" - filename: 2026-10-28-e2e-shared-models.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Build agent container images with each release\n\nThe OpenCode, Codex and Claude Code agent containers now use images built from the same commit as\nthe release. Each release pushes its images to GHCR with the release tag, and the alchemy.new\npackage deploys those exact images. A deploy from a git checkout builds the images from\n`packages/agent-container/Dockerfile` and rebuilds them only when that source changes, so Docker\nmust run during the deploy. The repository no longer stores image digests.\n" - filename: 2026-10-29-agent-image-digests.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Run Workers AI models through the Agents SDK provider\n\nIsolate sessions now reach Workers AI models through `createAI` from the Cloudflare Agents SDK (`agents` 0.30) instead of the deprecated `workers-ai-provider` package. The Think runtime moves to 0.20. Model selection, reasoning effort, and the deployment's AI Gateway stay the same. No operator action is required.\n" - filename: 2026-10-29-agents-createai.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Declare 201 Created for new API keys\n\nThe OpenAPI document now lists `201 Created` for `POST /auth/api-keys`, which matches what the API already returns. The API Keys, ContextForge token, and Data Controls settings now use the typed API client.\n" - filename: 2026-10-29-api-key-created-status.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Keep Cloudflare credentials in organization secrets\n\n`nub run github:sync-env-secrets` no longer uploads `CLOUDFLARE_ACCOUNT_ID` or\n`CLOUDFLARE_API_TOKEN`. SolZeroAI holds them as organization Actions secrets, and a repository\nor Environment copy would override them. A fork that deploys sets these two secrets itself.\n" - filename: 2026-10-29-org-cloudflare-secrets.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Keep interleaved reasoning when saving custom providers\n\nSaving provider settings no longer drops a custom model's `interleaved` reasoning setting. The OpenAPI contract for `/providers` now lists the shared provider override and custom provider fields, the allowed reasoning efforts, and interleaved reasoning, instead of open JSON records. The web app loads and saves provider settings through the typed API client.\n" - filename: 2026-10-29-provider-contract.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Describe repository responses in the API contract\n\nThe OpenAPI document now describes each repository that `GET /repos` returns, with its permissions and stored metadata. The repository metadata endpoints describe the metadata fields. The web app reads repositories through the typed API client.\n" - filename: 2026-10-29-repos-contract.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Show archived chats again\n\nThe Data controls settings page lists archived chats again. The `GET /sessions` contract now describes the response that the Worker sends: `sessions`, `total`, and `hasMore`. The contract no longer declares `limit` and `offset`, which the Worker never sent.\n" - filename: 2026-10-29-session-list-contract.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Describe session list rows in the API contract\n\nThe OpenAPI document now describes each session that `GET /sessions` returns. A failure that a session returns now carries the typed error fields (`_tag` and `message`) beside `error`, so API clients read its message. The agents table and the archive action use the typed API client.\n" - filename: 2026-10-29-session-list-items.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Use the typed API client for session page actions\n\nThe session page's archive, unarchive and agent tools actions, and the tools dialog's MCP Context Forge and AI Search lists, now use the typed API client. A failed action shows the server's error message. The unused `BackgroundSessionsClient` module is removed from the web app.\n" - filename: 2026-10-29-session-page-actions.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Use the typed API client for session prompts and socket tokens\n\nThe session page and home page send queued prompts, Okta resumes and websocket token requests through the typed API client. A failed prompt now shows the server's error message instead of the raw response body. Streamed isolate prompts still use `fetch`, because the API contract declares only the queued reply.\n" - filename: 2026-10-29-session-prompt-client.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Name the error type in API error responses\n\nAPI error responses now include `_tag` (for example `NotFoundError`) and `message` beside the existing `error` field, so typed clients built from the published OpenAPI contract can decode them. The `error` field is unchanged. The web app now loads and saves secrets through that typed client.\n" - filename: 2026-10-29-typed-api-errors.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Describe workflows, runs and run events in the API contract\n\nThe OpenAPI document now describes each workflow, run and run event that the workflow routes return, and the manifest migration that a workflow save applies. The workflows page loads, saves, renames, enables, disables, deletes and runs workflows, and reads runs and run events, through the typed API client. A failed request shows the server's error message.\n" - filename: 2026-10-29-workflow-contract.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Describe workflow Slack apps and builder drafts in the API contract\n\nThe OpenAPI document now describes a workflow's Slack app setup and the latest workflow builder draft. The Slack app dialog, the AI builder draft and run artifact previews use the typed API client, and a failed request shows the server's error message.\n" - filename: 2026-10-29-workflow-slack-draft-contract.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Load bot pages before they open\n\nThe bots list and bot detail pages load their data while the page opens, and start loading when you point at a bot link. A failed load shows the server's message with a Retry button. After you sign in, every open page loads its data again for your account.\n" - filename: 2026-10-30-bots-route-loaders.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Stop local end-to-end runs on exit without crash recovery\n\nEnd-to-end runs are local only, so the test launcher no longer keeps process journals or recovery receipts. When e2e stops the app target, the target stops `alchemy dev`, removes the run's labelled Docker containers and images, and removes its run directory.\n\nThe `test:e2e:cleanup` and `test:e2e:lifecycle` scripts, the lifecycle test suite, and the `e2e_lifecycle` input of `Validate` are removed. After a SIGKILL, stop leftover processes by hand.\n" - filename: 2026-10-30-e2e-stop-on-exit.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: minor\n---\n\n## Deploy pull request previews on demand\n\nOn a fork that sets `CLOUDFLARE_DEPLOY`, a pull request no longer deploys a `pre-` preview stage on every push. Add the `preview` label to deploy one. Later pushes redeploy it while the label stays. Remove the label or close the pull request to destroy the stage.\n\nThe new `PR Preview` workflow owns these stages. Fork operators must enable it on their Actions page and create the `preview` label. To destroy an orphaned stage, use **Run workflow** on `PR Preview` and enter the `stage`. **Run workflow** on `Deploy Preview` now only refreshes standing `pre`.\n" - filename: 2026-10-30-on-demand-pr-previews.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Load settings panes before they open\n\nThe agent skills, data controls and API access settings load their data while the page opens. A failed load shows the server's message with a Retry button.\n" - filename: 2026-10-30-settings-route-loaders.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Simplify PR preview cleanup\n\nPR preview cleanup no longer captures, uploads or restores ownership artifacts. After the destroy, it checks by stage name that no Worker, Durable Object namespace, container application, D1 database, R2 bucket, KV namespace, workflow, AI Gateway, API token, provider-key secret or AI Search namespace of the stage remains.\n" - filename: 2026-10-30-simplify-preview-cleanup.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Load workflows before the page opens\n\nThe workflows page loads the workflow list, and the workflow that the link opens, while the page opens. A failed list load shows the server's message with a Retry button.\n" - filename: 2026-10-30-workflows-route-loader.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Run CI on GitHub-hosted runners by default\n\nThe workflow templates now default to GitHub-hosted `ubuntu-latest` runners. A fork that does not set the `S0_CI_RUNNER` repository variable now runs its deployment and validation jobs on `ubuntu-latest`. The Release and Tegami jobs also run on `ubuntu-latest`. To run deployment and validation on another runner, set `S0_CI_RUNNER` to that runner's label.\n" - filename: 2026-11-02-github-hosted-ci.md - v: 0.0.0 - - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Deploy with Alchemy 2.0.0-beta.84 and Effect 4.0.5\n\nDeploys use Alchemy 2.0.0-beta.84 with its `@alchemy.run/cloudflare` and `@alchemy.run/planetscale` provider packages, and Effect 4.0.5. Operator deploys no longer apply `patches/alchemy@2.0.0-beta.81.patch`.\n\n`alchemy-planetscale-logical-db` 2.1.0 still imports the old `alchemy/Planetscale` path. A patch maps that import to `@alchemy.run/planetscale` until a fixed release is published.\n" - filename: 2026-11-03-alchemy-beta-84.md + - content: "---\npackages:\n release:solzero:\n type: patch\n---\n\n## Complete manual test-recording refreshes\n\nSuccessful manual validation runs now execute the requested recording-commit step when release\ndetection is skipped. Failed or cancelled tests cannot publish recordings.\n" + filename: 2026-11-09-commit-manual-test-recordings.md v: 0.0.0 core:packages: - changelogIds: - - 2026-10-04-bot-detail.md - - 2026-10-04-codex-reasoning.md - - 2026-10-04-e2e-ai-usage.md - - 2026-10-04-e2e-gateway-lifecycle.md - - 2026-10-04-harness-bootstrap.md - - 2026-10-04-harness-follow-up.md - - 2026-10-04-isolate-output-budget.md - - 2026-10-04-opencode-cloudflare-model.md - - 2026-10-04-secret-search.md - - 2026-10-04-session-replay-idle.md - - 2026-10-04-sign-in-hydration.md - - 2026-10-04-subagent-menu.md - - 2026-10-04-workers-ai-harness.md - - 2026-10-04-workflow-export-name.md - - 2026-10-05-better-auth-1-7.md - - 2026-10-05-clean-owned-e2e-resources.md - - 2026-10-05-e2e-action-replay.md - - 2026-10-05-preserve-runtime-settings-draft.md - - 2026-10-07-ready-deploy-artifact.md - - 2026-10-23-config-profile-validation.md - - 2026-10-23-fork-configuration.md - - 2026-10-23-offline-migration.md - - 2026-10-23-same-origin-api.md - - 2026-10-25-cloudflare-deploy-switch.md - - 2026-10-27-mock-ai-gateway-layer.md - - 2026-10-28-e2e-shared-models.md - - 2026-10-29-agent-image-digests.md - - 2026-10-29-agents-createai.md - - 2026-10-29-api-key-created-status.md - - 2026-10-29-org-cloudflare-secrets.md - - 2026-10-29-provider-contract.md - - 2026-10-29-repos-contract.md - - 2026-10-29-session-list-contract.md - - 2026-10-29-session-list-items.md - - 2026-10-29-session-page-actions.md - - 2026-10-29-session-prompt-client.md - - 2026-10-29-typed-api-errors.md - - 2026-10-29-workflow-contract.md - - 2026-10-29-workflow-slack-draft-contract.md - - 2026-10-30-bots-route-loaders.md - - 2026-10-30-e2e-stop-on-exit.md - - 2026-10-30-on-demand-pr-previews.md - - 2026-10-30-settings-route-loaders.md - - 2026-10-30-simplify-preview-cleanup.md - - 2026-10-30-workflows-route-loader.md - - 2026-11-02-github-hosted-ci.md - - 2026-11-03-alchemy-beta-84.md + - 2026-11-09-ai-search-built-in-storage.md + - 2026-11-09-commit-manual-test-recordings.md id: release:solzero updated: true diff --git a/CHANGELOG.md b/CHANGELOG.md index df1af420..41f3c579 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ +## solzero@3.0.0 + +### Upload documents directly to AI Search + +AI Search sources now use built-in storage. Administrators can upload and delete documents and +inspect indexing status without an external-storage service token. Workflows can ingest text and +JSON with the new Upload to AI Search node. + +R2 and website source creation is removed. Existing source records and original content remain +intact and are marked as requiring migration; these sources are unavailable for retrieval until +operators copy their originals into new built-in sources and update their selections. Follow +`docs/ai-search.md` before cutover. Deployment does not copy or delete legacy content. Workflow +artifact and skill storage remain unchanged. + +### Complete manual test-recording refreshes + +Successful manual validation runs now execute the requested recording-commit step when release +detection is skipped. Failed or cancelled tests cannot publish recordings. + ## solzero@2.0.0 ### Open created bot details diff --git a/VERSION b/VERSION index 227cea21..4a36342f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.0 +3.0.0 diff --git a/docs/solzero-release-notes.png b/docs/solzero-release-notes.png index 48e688ae16d7856e79a76a4c28bb73b6ed938474..4edcf66cb853a6e6e98255804eb3b7a4bfc5b4c3 100644 GIT binary patch literal 40120 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