Skip to content

Use built-in AI Search storage and direct document ingestion - #186

Merged
jonbeckman merged 4 commits into
masterfrom
codex/ai-search-built-in-storage
Nov 9, 2026
Merged

jonbeckman merged 4 commits into
masterfrom
codex/ai-search-built-in-storage

Conversation

@jonbeckman

@jonbeckman jonbeckman commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

New AI Search sources now use Cloudflare built-in storage and the namespace binding's Items API. Administrators can upload documents, inspect indexing status, and delete items without an external-storage service token. Workflows can ingest text or JSON through the new Upload to AI Search node, which requires an administrator workflow owner.

The external-storage token reference is removed from deployment configuration, Worker bindings, deployment workflows, and secret synchronization. An explicit local configuration option enables native remote namespace bindings for isolated integration tests; the ordinary local stack keeps them disabled.

This is a breaking source transition. Existing R2/website records remain visible and exportable with a migration-required state, and retrieval excludes them until operators migrate their originals to a new built-in source and update selections. The legacy content bucket and separate artifact/skill storage remain available. AI Search migration guidance defines inventory, copy, verification, reference switch, and retirement. Deployment does not convert or discard legacy content.

The manual recording workflow also completes its requested recording-commit step after successful tests when release detection is skipped.

Validation:

  • 31 account-free configuration, migration, storage-transfer, routing, and AI Search contract checks passed.
  • All 32 core browser/Worker tests passed in CI.
  • Isolated live checks passed creation, upload, indexing, MCP retrieval, deletion with retrieval removal, workflow ingestion/retrieval, and rejection of unauthenticated or malformed uploads.
  • The Admin browser flow passed source creation, persisted built-in configuration, and opening the Documents/upload panel. All three refreshed browser action recordings passed strict replay with zero model calls against fresh owned resources.
  • Temporary namespace pairs were removed and absence verified, including cleanup of earlier failed/interrupted attempts.
  • Root typecheck, lint, format, config:check, and build passed. kjanat/actionlint passed for the changed workflows.

Current PR checks cover the published head. An authenticated ordinary-member role check, historical-source content transfer, and standing pre/prod deployment remain separate unverified rollout gates. No standing stage was deployed and no existing application data was migrated.

@jonbeckman
jonbeckman marked this pull request as ready for review November 9, 2026 16:47
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Tegami

This repository uses Tegami to manage releases. When your changes affect published packages, add a changelog file under .tegami/ before merging.

Create a changelog → · Changelog format

Release preview

Package Bump Version
solzero major 2.0.0 → 3.0.0

Changelogs in this PR

Changelog Title
2026-11-09-ai-search-built-in-storage.md Upload documents directly to AI Search
2026-11-09-commit-manual-test-recordings.md Complete manual test-recording refreshes

Run nub run tegami locally to create a changelog interactively.

Managed by Tegami.

@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

🟢 e2e solzero-core: 32 passed

4 agent steps · 4 replayed from cache

Change 49 files changed since 605a4f3
Filter decision kept all 30 tests (the diff is over 60 kB, so the decision filter left nothing out)

All 32 tests in 13 files
Test Agent Time
🟢 tests/accounts.e2e.ts · 3 passed 7.0s
🟢 create, use and revoke an isolated user API key 3.6s
🟢 Better Auth 1.7 account APIs select the local account row id 177ms
🟢 Accounts settings shows GitHub as unlinked without OAuth providers 3.3s
🟢 tests/admin.e2e.ts · 1 passed 6.0s
🟢 administrator pages show live control-plane configuration 6.0s
🟢 tests/advanced-sessions.e2e.ts · 2 passed 8.8s
🟢 incognito sessions stay outside normal lists but open directly 4.5s
🟢 session MCP definitions and subagent preferences persist 4.4s
🟢 tests/api-contract.e2e.ts · 1 passed 365ms
🟢 exported API key and session schemas decode actual Worker responses 365ms
🟢 tests/auth.e2e.ts · 4 passed 16.8s
🟢 sign-in gate protects every application route 941ms
🟢 credential sign-in opens the requested settings page 7.7s
🟢 anonymous callers cannot access any protected API group 125ms
🟢 sign-out removes authenticated UI access 8.0s
🟢 tests/auth.setup.e2e.ts · 2 passed 9.3s
🟢 authenticate isolated admin 6.9s
🟢 authenticate isolated peer 2.4s
🟢 tests/bots.e2e.ts · 1 passed 5.3s
🟢 create a bot and manage a temporary routine through the UI 5.3s
🟢 tests/branding.e2e.ts · 3 passed 290ms
🟢 the selected deployment brand reaches the browser 245ms
🟢 health identifies the configured application without exposing configuration 25ms
🟢 OpenAPI uses the selected deployment brand 20ms
🟢 tests/session-transfer.e2e.ts · 1 passed 2.4s
🟢 admin authentication transfer redeems once and retains its deep link 2.4s
🟢 tests/sessions.e2e.ts · 5 passed 1 step 48.6s
🟢 session tools, archive and restoration persist through the real Worker 1 step 6.1s
🟢 a second account cannot read or mutate another account's session 264ms
🟢 isolate executes a real prompt and persists its output 8.7s
🟢 opencode executes a real prompt and persists its output 19.9s
🟢 codex executes a real prompt and persists its output 13.6s
🟢 tests/settings.e2e.ts · 5 passed 2 steps 27.3s
🟢 all settings categories load real data 8.7s
🟢 runtime default persists after reload 6.6s
🟢 MCP deep link and legacy settings URL open the MCP tab 2.4s
🟢 secret editor creates, finds and deletes a disposable secret 1 step 4.4s
🟢 theme preference survives reload 1 step 5.2s
🟢 tests/skills.e2e.ts · 1 passed 8.2s
🟢 global skill defaults and per-user preferences persist independently 8.2s
🟢 tests/workflows.e2e.ts · 3 passed 1 step 8.7s
🟢 workflow authoring, rename, export, disable and archive persist 1 step 5.9s
🟢 manual workflow executes JavaScript and stores a real R2 artifact 2.7s
🟢 invalid workflow definitions are rejected before storage 95ms

e2e 0.21.3 · 3m 23s · local-cloudflare · run artifacts

@jonbeckman
jonbeckman merged commit c7553a4 into master Nov 9, 2026
20 checks passed
@jonbeckman
jonbeckman deleted the codex/ai-search-built-in-storage branch November 9, 2026 17:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants