open-design/apps/daemon/tests
mzl163 210b94069a
feat(senseaudio): BYOK chat with image + video generation tools (#2065)
* feat(senseaudio): BYOK chat with image + video generation tools

Adds SenseAudio as a first-class BYOK chat protocol and wires the daemon's
chat proxy with a tool loop so BYOK users can generate images and videos
without dropping to a CLI agent.

- BYOK protocol: new senseaudio tab + /api/proxy/senseaudio/stream route +
  connection-test + provider-models discovery (OpenAI-compatible wire)
- Tool loop: generate_image (synchronous /v1/image/sync) and generate_video
  (async /v1/video/create + 5s polling /v1/video/status, 10-min ceiling,
  periodic progress log every 30s)
- Settings dropdown + chat-composer dropdown for the BYOK image model
  default; generate_image's model enum lets the LLM override per call
- Seed-on-success: a successful BYOK chat call idempotently mirrors the
  key into media-config (preserves env-resolved + already-stored keys)
- Generated artifacts land in <projectsRoot>/<projectId>/ so FileViewer,
  DesignFilesPanel, and project export pick them up automatically;
  legacy /api/byok-image/:id route kept for old conversation links
- Markdown renderer learns ![alt](url) image syntax with a scheme
  allowlist (http(s) / data:image/ / blob: / relative paths)
- i18n key settings.byokImageModel across all 19 locales
- 3 SenseAudio image models registered (2.0, 1.0, doubao-seedream-5.0);
  1 video model (doubao-seedance-2.0)
- Tests: byok-tools (29), media-senseaudio-image (8), media-config seed
  (7), proxy-routes (47), markdown image rendering (8)

* fix(senseaudio): unblock image gen + design file preview switching

- SenseAudio /v1/image/sync rejected the previous size mapping with
  `参数错误:size` (1664x936, 936x1664, 1280x960, 960x1280 are not in
  the gateway's accepted set). Switched to standard HD / SD sizes that
  every aspect bucket can hit: 1024×1024, 1280×720, 720×1280,
  1024×768, 768×1024. Kept the byok-tools and media.ts tables in sync
  so the BYOK chat tool and the CLI agent path both stop failing on
  non-square aspects.

- DesignFilesPanel's <DfPreview> was missing a key prop, so React
  reused the same iframe DOM node when the user picked a different
  file — the src prop changed but the iframe never navigated. Added
  key={previewFile.name} so the previous preview unmounts cleanly.

- Updated byok-tools + media-senseaudio-image tests for the new size
  expectations.

* docs(senseaudio): clear stale provider hint + update README

- Settings → Media → SenseAudio: clear the auto-promoted
  "Image · TTS · 70+ voices · clone" hint; the provider label alone is
  enough now that the BYOK chat surface covers image + video tooling.
- README: list the new senseaudio (and missing ollama) proxy routes so
  the BYOK section reflects what the daemon actually serves, and
  mention the generate_image / generate_video chat tools that ship
  with the SenseAudio path.

* fix(senseaudio): address PR #2065 review feedback

Three non-blocking review notes from @PerishCode on PR #2065:

1. Drop the dead /api/byok-image/:id route. The PR description claimed
   it was "legacy fallback for old chat history" but that storage
   layout never existed on main, so the route can only ever 400 or
   404 — never 200. Removed the handler, the isSafeByokImageId
   export, the unused createReadStream / stat / path / Request /
   Response imports, and the two byok-image regression tests.

2. Add rejectProxyPluginContext guard to the senseaudio proxy
   handler so it matches the invariant the other five proxy paths
   already enforce (plugin runs must go through /api/runs for
   snapshot pinning). Extended the existing "API fallback rejects
   plugin runs" describe to also cover /api/proxy/senseaudio/stream
   with the 409 PLUGIN_REQUIRES_DAEMON expectation.

3. Wrap the secondary image / video downloads (the URLs the
   SenseAudio gateway hands back in /v1/image/sync .url and
   /v1/video/status .video_url) in validateBaseUrlResolved so a
   malicious gateway can't point us at 169.254.169.254 (AWS / Azure
   metadata) or RFC1918 hosts via the response payload. Also passed
   `redirect: 'error'` on both fetches to match the SSRF posture
   the primary proxy fetch already uses. The new
   assertExternalAssetUrl helper lives next to executeGenerateImage
   so future tool downloads can reuse it.

Tests: 120/120 daemon tests pass; guard + typecheck green.

* fix(senseaudio): mirror SSRF guard onto renderSenseAudioImage CLI path

Follow-up to 01b1260a — the chat-tool fix in byok-tools.ts wasn't
mirrored onto the parallel renderSenseAudioImage path in media.ts.
Same attacker-controllable shape (gateway-returned `data.url`),
same one-line fix.

- Hoist assertExternalAssetUrl from byok-tools.ts into
  connectionTest.ts next to validateBaseUrlResolved so both call
  sites (the BYOK chat tool loop AND the CLI agent media dispatcher)
  share one helper. Made the error strings provider-agnostic so a
  future caller doesn't get a misleading "senseaudio" attribution
  for a Volcengine / Grok / etc. download.
- renderSenseAudioImage now runs the response url through
  assertExternalAssetUrl before fetching bytes, and passes
  redirect: 'error' to block a 3xx hop into private space.

Scope intentionally limited to the senseaudio path PerishCode
flagged; the other unguarded fetch(entry.url) call sites in
media.ts (OpenAI / Volcengine / Grok / Nano-Banana) are pre-existing
patterns and belong in a separate follow-up if the daemon wants
defense-in-depth across every provider.

Tests: 127/127 daemon tests pass; guard + typecheck green.

---------

Co-authored-by: unknown <mazeliang@sensetime.com>
2026-05-19 23:14:56 +08:00
..
fixtures/plugin-fixtures feat(plugins): add specVersion and version fields to plugin and marketplace schemas 2026-05-13 22:24:50 +08:00
logging feat(daemon): Critique Theater Phase 12 (9 Prometheus metrics + 6 log events + OTel span + Grafana dashboard) (#1485) 2026-05-13 22:11:27 +08:00
metrics feat(daemon): Critique Theater Phase 12 (9 Prometheus metrics + 6 log events + OTel span + Grafana dashboard) (#1485) 2026-05-13 22:11:27 +08:00
prompts feat(discovery): honor plugin inputs as authoritative Quick-brief answers (#2243) 2026-05-19 17:52:20 +08:00
runtimes Fix Cursor Agent model id parsing (#2228) 2026-05-19 18:11:09 +08:00
acp-timeout-env.test.ts Make ACP model detection timeout configurable (#2072) 2026-05-18 18:32:09 +08:00
acp.test.ts fix(daemon): raise ACP stage timeout to match outer chat inactivity watchdog (#1734) 2026-05-15 15:15:15 +08:00
agent-runtime-env.test.ts fix(daemon): ensure node binary dir is on PATH for agent sub-processes on Windows (#1989) 2026-05-19 16:58:15 +08:00
agui-route.test.ts feat(plugins): @open-design/agui-adapter package + GET /api/runs/:id/agui 2026-05-09 13:11:48 +00:00
api-token-guard.test.ts feat(plugins): bound-API-token guard + bearer middleware (Phase 5) 2026-05-09 13:29:31 +00:00
app-config.test.ts Improve responsive preview and design handoff outputs (#1224) 2026-05-12 14:18:33 +08:00
app-version.test.ts Optimize packaged mac artifact size (#424) 2026-05-05 10:37:19 +08:00
artifact-create.test.ts Add normal artifact creation via MCP and CLI (#2057) 2026-05-18 17:50:38 +08:00
artifact-manifest.test.ts feat: add markdown and svg artifact renderers (#73) 2026-04-30 20:05:00 +08:00
artifact-stub-guard.test.ts feat(daemon): guard against agent-emitted stub artifact regressions (#1171) 2026-05-11 19:59:37 +08:00
artifacts-cli.test.ts Add normal artifact creation via MCP and CLI (#2057) 2026-05-18 17:50:38 +08:00
automation-ingestions.test.ts [codex] Add automation templates and proposal workflows (#2193) 2026-05-19 16:35:28 +08:00
automation-proposals.test.ts [codex] Add automation templates and proposal workflows (#2193) 2026-05-19 16:35:28 +08:00
automation-routine-evolution.test.ts [codex] Add automation templates and proposal workflows (#2193) 2026-05-19 16:35:28 +08:00
automation-templates.test.ts [codex] Add automation templates and proposal workflows (#2193) 2026-05-19 16:35:28 +08:00
aws-sigv4.test.ts feat(daemon): S3ProjectStorage live impl via AWS SigV4 (Phase 5) 2026-05-09 16:10:05 +00:00
browser-open.test.ts fix daemon browser opener on Windows (#953) 2026-05-09 22:04:07 +08:00
byok-tools.test.ts feat(senseaudio): BYOK chat with image + video generation tools (#2065) 2026-05-19 23:14:56 +08:00
chat-attachments.test.ts fix(daemon): preserve Windows chat attachments (#2158) 2026-05-19 12:01:33 +08:00
chat-route.test.ts chore: pin dependency versions and harden CI caches (#2189) 2026-05-19 13:58:27 +08:00
claude-design-import.test.ts fix(claude-design-import): restore notched wheel zoom + warn on regex drift (#1814) 2026-05-15 21:44:57 +08:00
claude-diagnostics.test.ts Improve Claude endpoint connection diagnostics (#1955) 2026-05-17 23:19:01 +08:00
cli-startup.test.ts Centralize daemon startup (#2054) 2026-05-18 17:08:17 +08:00
comment-attachments.test.ts [codex] Add visual draw annotation context (#1547) 2026-05-13 20:02:19 +08:00
composio-config.test.ts Add connector memory extraction flow (#2265) 2026-05-19 21:27:41 +08:00
composio-descriptions.test.ts Add live artifacts and Composio connector catalog (#381) 2026-05-05 16:42:11 +08:00
connection-test.test.ts chore: pin dependency versions and harden CI caches (#2189) 2026-05-19 13:58:27 +08:00
connectors-routes.test.ts Add connector memory extraction flow (#2265) 2026-05-19 21:27:41 +08:00
connectors-service.test.ts Add connector memory extraction flow (#2265) 2026-05-19 21:27:41 +08:00
craft-route.test.ts feat(cli): od atoms / skills / design-systems / craft / status / version + marketplace search 2026-05-09 12:41:06 +00:00
craft.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
critique-adapter-degraded.test.ts docs: Critique Theater Phase 14 (user guide + 2 AGENTS module maps) (#1319) 2026-05-13 12:11:48 +08:00
critique-artifact-endpoint.test.ts feat(daemon): Critique Theater Phase 6.2 (artifact extraction + endpoint) (#1085) 2026-05-10 23:59:04 +08:00
critique-artifact-writer.test.ts feat(daemon): Critique Theater Phase 6.2 (artifact extraction + endpoint) (#1085) 2026-05-10 23:59:04 +08:00
critique-authority.test.ts feat: Critique Theater Phase 4 (persistence + transcript + orchestrator) (#481) 2026-05-05 15:50:35 +08:00
critique-boot-reconcile.test.ts feat: Critique Theater Phase 4 (persistence + transcript + orchestrator) (#481) 2026-05-05 15:50:35 +08:00
critique-composer.test.ts feat: Critique Theater Phase 5 (panel prompt template + system composer wiring) 2026-05-07 16:35:04 +08:00
critique-config.test.ts feat: Critique Theater Phase 4 (persistence + transcript + orchestrator) (#481) 2026-05-05 15:50:35 +08:00
critique-conformance-history.test.ts feat(daemon): Critique Theater Phase 16 (M-phase rollout ratchet + /api/critique/conformance) (#1499) 2026-05-14 11:05:57 +08:00
critique-conformance.test.ts test(e2e): Critique Theater Phase 11 (Playwright stage suite: happy, interrupt, 3 viewports, a11y) (#1317) 2026-05-13 21:23:18 +08:00
critique-interrupt-endpoint.test.ts feat(daemon): add critique interrupt endpoint + project-keyed run registry (Task 6.1) (#819) 2026-05-08 11:29:37 +08:00
critique-lifecycle.test.ts feat(daemon): Critique Theater Phase 6.2 (artifact extraction + endpoint) (#1085) 2026-05-10 23:59:04 +08:00
critique-orchestrator.test.ts feat(daemon): Critique Theater Phase 6.2 (artifact extraction + endpoint) (#1085) 2026-05-10 23:59:04 +08:00
critique-panel-prompt.test.ts feat: Critique Theater Phase 5 (panel prompt template + system composer wiring) 2026-05-07 16:35:04 +08:00
critique-persistence.test.ts feat: Critique Theater Phase 4 (persistence + transcript + orchestrator) (#481) 2026-05-05 15:50:35 +08:00
critique-ratchet.test.ts feat(daemon): Critique Theater Phase 16 (M-phase rollout ratchet + /api/critique/conformance) (#1499) 2026-05-14 11:05:57 +08:00
critique-rollout.test.ts feat: Critique Theater Phase 15 (rollout resolver + Settings toggle hook) (#1320) 2026-05-13 21:19:51 +08:00
critique-run-registry.test.ts feat(daemon): add critique interrupt endpoint + project-keyed run registry (Task 6.1) (#819) 2026-05-08 11:29:37 +08:00
critique-spawn-inputs.test.ts feat: Critique Theater wireup (activate the stack, M0 dark-launch by default) (#1338) 2026-05-14 20:37:06 +08:00
critique-spawn-wiring.test.ts Revert "Refactor agent runtime stream handling behind adapter (#1622)" (#1656) 2026-05-14 15:23:19 +08:00
critique-transcript.test.ts feat: Critique Theater Phase 4 (persistence + transcript + orchestrator) (#481) 2026-05-05 15:50:35 +08:00
cwd-aliases.test.ts fix(daemon): expose skill resources via cwd-relative aliases (#435) 2026-05-04 17:48:20 +08:00
daemon-lifecycle.test.ts chore: align namespace lifecycle packaging 2026-05-14 16:35:46 +08:00
daemon-url.test.ts chore: align namespace lifecycle packaging 2026-05-14 16:35:46 +08:00
db-message-events.test.ts Persist routine failure reasons (#1963) 2026-05-17 23:22:00 +08:00
deploy-routes.test.ts Fix Cloudflare Pages custom domain lookup (#958) 2026-05-08 21:20:48 +08:00
deploy.test.ts Fix Cloudflare Pages custom domain lookup (#958) 2026-05-08 21:20:48 +08:00
design-system-assets.test.ts Add design system package quality guard (#2224) 2026-05-19 16:53:29 +08:00
design-system-generation-jobs.test.ts [codex] Land design system GitHub intake handoff (#2187) 2026-05-19 14:30:17 +08:00
design-system-github-import.test.ts Add design system package quality guard (#2224) 2026-05-19 16:53:29 +08:00
design-system-import.test.ts Add design system package quality guard (#2224) 2026-05-19 16:53:29 +08:00
design-system-showcase.test.ts fix(web): tighten entry-tab layout and design-system showcase color picker (#412) 2026-05-04 13:49:41 +08:00
design-system-source-context.test.ts [codex] Land design system GitHub intake handoff (#2187) 2026-05-19 14:30:17 +08:00
design-system-tool-routes.test.ts Add design system package quality guard (#2224) 2026-05-19 16:53:29 +08:00
design-systems-frontmatter.test.ts feat(daemon): parse DESIGN.md YAML frontmatter for presets (#2110) 2026-05-19 13:52:11 +08:00
design-systems.test.ts [codex] Land design system GitHub intake handoff (#2187) 2026-05-19 14:30:17 +08:00
desktop-import-token-gate.test.ts feat(web): add Finalize design package + Continue in CLI buttons (#451) (#974) 2026-05-10 11:44:32 +08:00
elevenlabs-voices.test.ts feat(audio): add ElevenLabs audio support (#1384) 2026-05-13 15:53:41 +08:00
export-inline-route.test.ts Revert "fix(web): restore consistent app header layout (#1432)" 2026-05-13 11:20:16 +08:00
finalize-design.test.ts Fix finalize provider routing for Gemini BYOK (#1964) 2026-05-18 18:03:44 +08:00
finalize-route-abort.test.ts feat(web): add Finalize design package + Continue in CLI buttons (#451) (#974) 2026-05-10 11:44:32 +08:00
folder-import-projects.test.ts feat: import existing local folder as project (#597) (#624) 2026-05-07 20:43:31 +08:00
folder-import-route.test.ts Reject filesystem root folder imports (#1266) 2026-05-11 20:52:35 +08:00
json-event-stream.test.ts Fix Codex message item line boundaries (#1573) 2026-05-13 20:46:06 +08:00
langfuse-bridge.test.ts feat(analytics): PostHog product analytics (P0 events, consent-gated, packaged) (#1428) 2026-05-12 22:32:42 +08:00
langfuse-trace.test.ts feat(analytics): PostHog product analytics (P0 events, consent-gated, packaged) (#1428) 2026-05-12 22:32:42 +08:00
legacy-data-migrator.test.ts fix(daemon): add legacy data dir migrator 2026-05-07 15:19:04 +08:00
linked-dirs.test.ts Improve Windows beta packaging and installer flow (#768) 2026-05-07 16:44:15 +08:00
lint-artifact.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
live-artifacts-routes.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
live-artifacts-schema.test.ts Add live artifacts and Composio connector catalog (#381) 2026-05-05 16:42:11 +08:00
live-artifacts-store.test.ts Add live artifacts and Composio connector catalog (#381) 2026-05-05 16:42:11 +08:00
mcp-config.test.ts fix(mcp): support no-auth local HTTP servers (#2008) 2026-05-18 17:08:46 +08:00
mcp-create-artifact.test.ts Add normal artifact creation via MCP and CLI (#2057) 2026-05-18 17:50:38 +08:00
mcp-extract-refs.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
mcp-get-artifact.test.ts fix(daemon): typecheck core server paths (#952) 2026-05-08 20:43:51 +08:00
mcp-get-file.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
mcp-install-info.test.ts chore: align namespace lifecycle packaging 2026-05-14 16:35:46 +08:00
mcp-oauth.test.ts feat(mcp): external MCP client with daemon-managed OAuth and 39 design-focused templates (#898) 2026-05-08 17:59:20 +08:00
mcp-resolve-project.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
mcp-spawn.test.ts feat(mcp): external MCP client with daemon-managed OAuth and 39 design-focused templates (#898) 2026-05-08 17:59:20 +08:00
mcp-tokens.test.ts feat(mcp): external MCP client with daemon-managed OAuth and 39 design-focused templates (#898) 2026-05-08 17:59:20 +08:00
media-alias-capability.test.ts feat(daemon): user-configurable model alias for the media dispatcher (#1277) (#1309) 2026-05-14 14:58:39 +08:00
media-config.test.ts feat(senseaudio): BYOK chat with image + video generation tools (#2065) 2026-05-19 23:14:56 +08:00
media-elevenlabs.test.ts feat(audio): add ElevenLabs audio support (#1384) 2026-05-13 15:53:41 +08:00
media-grok-tts.test.ts feat: integrate xAI SuperGrok subscription as a credential source for Grok media + X search (#2134) 2026-05-19 11:10:34 +08:00
media-nanobanana.test.ts feat(media): add Nano Banana image provider (#631) 2026-05-06 20:26:31 +08:00
media-openai-compatible-providers.test.ts feat(daemon): add OpenAI-compatible media providers (#1712) 2026-05-15 23:05:03 +08:00
media-senseaudio-image.test.ts feat(senseaudio): BYOK chat with image + video generation tools (#2065) 2026-05-19 23:14:56 +08:00
media-senseaudio.test.ts feat(media): add SenseAudio TTS provider (#1633) 2026-05-14 15:26:38 +08:00
media-tasks-persistence.test.ts Bug FIx: Media generation task state is volatile and lost on daemon restart #648 (#884) 2026-05-09 00:00:18 +08:00
media-tasks-routes.test.ts Bug FIx: Media generation task state is volatile and lost on daemon restart #648 (#884) 2026-05-09 00:00:18 +08:00
memory-config-route.test.ts test: expand Memory and Routines coverage (#1521) 2026-05-14 14:48:40 +08:00
memory-connectors.test.ts Add connector memory extraction flow (#2265) 2026-05-19 21:27:41 +08:00
memory-routes.test.ts Add connector memory extraction flow (#2265) 2026-05-19 21:27:41 +08:00
memory-tree.test.ts [codex] Add automation templates and proposal workflows (#2193) 2026-05-19 16:35:28 +08:00
message-delimiter-safety.test.ts fix: escape chat transcript role delimiters (#2156) 2026-05-19 15:37:35 +08:00
native-folder-dialog.test.ts Fix Windows link code folder dialog (#698) 2026-05-07 17:27:01 +08:00
orbit-agent-summary.test.ts fix(daemon): preserve Orbit no-artifact explanation (#1576) 2026-05-13 22:13:18 +08:00
orbit.test.ts fix(daemon): preserve Orbit no-artifact explanation (#1576) 2026-05-13 22:13:18 +08:00
origin-validation.test.ts fix(daemon): isLocalSameOrigin honors OD_ALLOWED_ORIGINS in reverse-proxy deployments (#1902) 2026-05-16 21:34:29 +08:00
parser.test.ts feat(daemon): Critique Theater Phase 6.2 (artifact extraction + endpoint) (#1085) 2026-05-10 23:59:04 +08:00
pdf-export.test.ts feat(desktop): export artifacts directly to PDF (#532) 2026-05-08 23:42:12 +08:00
pi-rpc.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
plugins-apply.test.ts chore: align namespace lifecycle packaging 2026-05-14 16:35:46 +08:00
plugins-asset-route.test.ts feat(plugins): plugin-bundled component surface (sandboxed iframe) 2026-05-09 13:55:04 +00:00
plugins-atom-bodies.test.ts feat(plugins): atom SKILL.md body loader + renderActiveStageBlock (spec §23.4) 2026-05-09 13:15:52 +00:00
plugins-atom-registry.test.ts feat(daemon, web): implement plugin folder installation and enhance atom worker registry 2026-05-12 21:38:45 +08:00
plugins-atoms-info.test.ts feat(plugins): od atoms info <id> + Phase 6/7/8 catalog promotion 2026-05-09 16:53:09 +00:00
plugins-auto-surfaces.test.ts feat(plugins): auto-derive choice surface for diff-review (Phase 8 entry slice) 2026-05-09 15:30:45 +00:00
plugins-build-test.test.ts feat(plugins): build-test atom shell-out runner (Phase 7 entry slice) 2026-05-09 14:30:36 +00:00
plugins-bundled-atom-prompts-default.test.ts feat(daemon): flip OD_BUNDLED_ATOM_PROMPTS default to ON (Phase 4) 2026-05-09 16:15:31 +00:00
plugins-bundled-atoms-roster.test.ts feat(plugins): Phase 6 + 7 + 8 atom SKILL.md substrate 2026-05-09 14:22:18 +00:00
plugins-bundled-scenarios-roster.test.ts feat(daemon, web): implement plugin sharing project creation and enhance CLI functionality 2026-05-13 07:01:12 +08:00
plugins-bundled.test.ts feat(plugins): add login and whoami commands for GitHub CLI authentication 2026-05-14 07:25:05 +08:00
plugins-canon.test.ts feat(plugins): od plugin canon <snapshotId> show prompt block (Phase 4) 2026-05-09 17:10:04 +00:00
plugins-code-import.test.ts feat(plugins): code-import atom repo walker (Phase 7 entry slice) 2026-05-09 14:33:53 +00:00
plugins-code-migration-e2e.test.ts test(plugins): full code-migration pipeline e2e smoke test (Phase 7-8) 2026-05-09 15:55:57 +00:00
plugins-connector-gate.test.ts feat(genui): introduce GenUI surface management and event handling 2026-05-09 18:44:04 +08:00
plugins-design-extract.test.ts feat(plugins): design-extract atom impl (Phase 6/7 entry slice) 2026-05-09 15:08:11 +00:00
plugins-diff-review-genui-bridge.test.ts feat(plugins): wire diff-review GenUI response \u2192 review/decision.json (Phase 8) 2026-05-09 15:48:21 +00:00
plugins-diff-review.test.ts feat(plugins): diff-review atom impl (Phase 7-8 entry slice) 2026-05-09 15:16:53 +00:00
plugins-diff.test.ts feat(plugins): od plugin diff <a> <b> (Phase 4 author tooling) 2026-05-09 16:48:58 +00:00
plugins-dod-e2e.test.ts feat(daemon, web): enhance plugin input handling and subcategory filtering 2026-05-12 22:09:26 +08:00
plugins-e2e-fixture.test.ts feat(plugins): introduce plugin system with installation and management capabilities 2026-05-09 18:24:44 +08:00
plugins-events-buffer.test.ts feat(plugins): plugin event ring buffer + SSE tail (Phase 4) 2026-05-09 17:55:39 +00:00
plugins-events-producers.test.ts feat(plugins): more event producer hooks (Phase 4) 2026-05-09 18:04:56 +00:00
plugins-events-purge.test.ts feat(plugins): od plugin events purge admin escape hatch (Phase 4) 2026-05-09 18:31:58 +00:00
plugins-events-stats.test.ts feat(plugins): od plugin events snapshot/stats + tail filters (Phase 4) 2026-05-09 18:10:50 +00:00
plugins-export.test.ts feat(plugins): od plugin scaffold + od plugin export (Phase 4 author tooling) 2026-05-09 12:22:16 +00:00
plugins-figma-extract.test.ts feat(plugins): figma-extract asset rasterisation second pass (Phase 6 entry slice) 2026-05-09 15:40:13 +00:00
plugins-figma-migration-e2e.test.ts test(plugins): figma-migration pipeline e2e smoke (Phase 6 entry slice) 2026-05-09 16:02:40 +00:00
plugins-genui-component.test.ts feat(plugins): od.genui.surfaces[].component manifest field (Phase 4) 2026-05-09 13:37:20 +00:00
plugins-genui-spec-enrichment.test.ts feat(daemon): enrich API responses with surface specs and add new flags 2026-05-11 20:27:05 +08:00
plugins-handoff-persist.test.ts feat(plugins): runAndPersistHandoff() + auto-handoff from diff-review bridge 2026-05-09 16:00:50 +00:00
plugins-handoff-pipeline.test.ts feat(plugins): runHandoffAtom() pipeline-driven bridge (Phase 8 entry slice) 2026-05-09 15:53:30 +00:00
plugins-handoff.test.ts feat(plugins): handoff atom + ArtifactManifest provenance fields 2026-05-09 14:48:29 +00:00
plugins-headless-run.test.ts Garnet hemisphere (#1702) 2026-05-14 21:12:50 +08:00
plugins-installer-archive.test.ts Fix GitHub rate-limit fallback for marketplace plugins (#2064) 2026-05-18 18:30:15 +08:00
plugins-installer.test.ts feat(plugins): add registry protocol and enhance plugin management features 2026-05-14 08:55:36 +08:00
plugins-local-skill.test.ts feat(daemon, web): enhance plugin handling and UI integration 2026-05-12 20:42:40 +08:00
plugins-lockfile.test.ts feat(plugins): add registry protocol and enhance plugin management features 2026-05-14 08:55:36 +08:00
plugins-marketplace-doctor.test.ts feat(plugins): add registry protocol and enhance plugin management features 2026-05-14 08:55:36 +08:00
plugins-marketplaces.test.ts Garnet hemisphere (#1702) 2026-05-14 21:12:50 +08:00
plugins-pack.test.ts feat(plugins): od plugin pack <folder> author distribution archive (Phase 4) 2026-05-09 16:27:36 +00:00
plugins-patch-edit-atomic.test.ts feat(plugins): patch-edit atomic file writes (Phase 7 safety patch) 2026-05-09 16:38:46 +00:00
plugins-patch-edit.test.ts chore: align namespace lifecycle packaging 2026-05-14 16:35:46 +08:00
plugins-pipeline-runner.test.ts feat(daemon, web): implement plugin folder installation and enhance atom worker registry 2026-05-12 21:38:45 +08:00
plugins-preview-fallback.test.ts feat(daemon, web): enhance plugin preview handling and add new templates 2026-05-13 20:58:24 +08:00
plugins-preview-route.test.ts feat(daemon): enrich API responses with surface specs and add new flags 2026-05-11 20:27:05 +08:00
plugins-publish.test.ts fix(plugins): wire Open Design "Open Design PR" button end-to-end (#2182) 2026-05-19 15:26:59 +08:00
plugins-rewrite-plan.test.ts feat(plugins): rewrite-plan atom impl (Phase 7 entry slice) 2026-05-09 15:10:47 +00:00
plugins-scaffold.test.ts feat(plugins): od plugin scaffold + od plugin export (Phase 4 author tooling) 2026-05-09 12:22:16 +00:00
plugins-scenario-fallback.test.ts feat(plugins): wire bundled-scenario pipeline fallback through apply (spec §23.3.3) 2026-05-09 15:05:54 +00:00
plugins-search.test.ts feat(plugins): od plugin search + filters on od plugin list (Phase 4) 2026-05-09 16:33:48 +00:00
plugins-simulate.test.ts feat(plugins): od plugin simulate <id> pipeline dry-run (Phase 4) 2026-05-09 17:25:51 +00:00
plugins-snapshot-diff.test.ts feat(plugins): od plugin snapshots show / diff debugging tools (Phase 4) 2026-05-09 17:03:29 +00:00
plugins-snapshot-gc.test.ts feat(plugins): OD_SNAPSHOT_RETENTION_DAYS referenced-row TTL (PB2) 2026-05-09 14:07:02 +00:00
plugins-snapshots.test.ts feat(plugins): add login and whoami commands for GitHub CLI authentication 2026-05-14 07:25:05 +08:00
plugins-stats.test.ts feat(plugins): od plugin manifest <id> + od plugin sources (Phase 4) 2026-05-09 18:25:15 +00:00
plugins-token-map.test.ts feat(plugins): token-map atom impl (Phase 6/7 entry slice) 2026-05-09 15:24:22 +00:00
plugins-tool-token-gate.test.ts feat(plugins): trust mutation + connector tool-token gate 2026-05-09 11:14:51 +00:00
plugins-trust.test.ts feat(plugins): trust mutation + connector tool-token gate 2026-05-09 11:14:51 +00:00
plugins-until.test.ts feat(genui): introduce GenUI surface management and event handling 2026-05-09 18:44:04 +08:00
plugins-upgrade.test.ts chore: align namespace lifecycle packaging 2026-05-14 16:35:46 +08:00
plugins-validate.test.ts feat(plugins): od plugin validate <folder> author-side lint (Phase 4) 2026-05-09 16:21:57 +00:00
plugins-verify.test.ts feat(plugins,daemon): doctor --strict + db vacuum (Phase 4 + 5) 2026-05-09 17:47:28 +00:00
project-archive.test.ts Improve responsive preview and design handoff outputs (#1224) 2026-05-12 14:18:33 +08:00
project-classifiers.test.ts fix: serve python files as text (#947) 2026-05-08 21:10:22 +08:00
project-design-system-routes.test.ts [codex] Land design system GitHub intake handoff (#2187) 2026-05-19 14:30:17 +08:00
project-file-range.test.ts feat(daemon): HTTP 206 range request support for video/audio files Fixes #784 (#1105) 2026-05-10 12:16:52 +08:00
project-file-rename.test.ts feat: add design file rename support (#894) 2026-05-09 21:24:36 +08:00
project-status.test.ts fix(web): freeze completed run durations across conversations (#1351) 2026-05-14 14:25:37 +08:00
project-watchers.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
projects-routes.test.ts Add batch design system testing (#1515) 2026-05-14 14:19:32 +08:00
projects-stub-guard.test.ts feat(daemon): guard against agent-emitted stub artifact regressions (#1171) 2026-05-11 19:59:37 +08:00
proxy-routes.test.ts feat(senseaudio): BYOK chat with image + video generation tools (#2065) 2026-05-19 23:14:56 +08:00
qoder-stream.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
redact.test.ts [codex] Improve Claude Code exit diagnostics (#1267) 2026-05-12 00:08:31 +08:00
registry-backends.test.ts feat(plugins): add registry protocol and enhance plugin management features 2026-05-14 08:55:36 +08:00
research-cli.test.ts feat: agent-callable research command and /search (#615) 2026-05-08 10:33:44 +08:00
research-contract.test.ts feat: agent-callable research command and /search (#615) 2026-05-08 10:33:44 +08:00
research.test.ts feat: agent-callable research command and /search (#615) 2026-05-08 10:33:44 +08:00
resolve-data-dir.test.ts fix: batch of small bug fixes (#283, #275, #390) (#530) 2026-05-07 11:17:02 +08:00
routine-routes.test.ts [codex] Add automation templates and proposal workflows (#2193) 2026-05-19 16:35:28 +08:00
routines.test.ts test: expand Memory and Routines coverage (#1521) 2026-05-14 14:48:40 +08:00
runs.test.ts Persist routine failure reasons (#1963) 2026-05-17 23:22:00 +08:00
sanitize-name.test.ts fix(daemon): preserve non-ASCII filenames on multipart upload (#166) 2026-04-30 19:49:43 +08:00
server-cors.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
server-paths.test.ts Migrate beta release publishing to R2 (#805) 2026-05-07 19:13:52 +08:00
setup.ts Add live artifacts and Composio connector catalog (#381) 2026-05-05 16:42:11 +08:00
sidecar-server.test.ts Centralize daemon startup (#2054) 2026-05-18 17:08:17 +08:00
sidecar-startup.test.ts Centralize daemon startup (#2054) 2026-05-18 17:08:17 +08:00
sidecar-status-snapshot.test.ts Centralize daemon startup (#2054) 2026-05-18 17:08:17 +08:00
skill-asset-rewrite.test.ts feat(skills): open-design-landing rename, kami skills, landing OG (#428) 2026-05-04 19:22:46 +08:00
skill-id-aliases.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
skills-delete-route.test.ts feat: generic skills + split skills/design-templates + finalize-design API (#955) 2026-05-11 17:48:34 +08:00
skills.test.ts Add reliable agent-browser skill (#1284) 2026-05-11 20:09:12 +08:00
sse-response.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
static-resource-routes.test.ts feat(design-systems): import design system projects (#2112) 2026-05-18 20:20:38 +08:00
static-spa-fallback.test.ts [codex] Add automation templates and proposal workflows (#2193) 2026-05-19 16:35:28 +08:00
storage-db-inspect.test.ts feat(daemon): od daemon db status SQLite inventory (Phase 5) 2026-05-09 17:39:20 +00:00
storage-db-verify.test.ts feat(daemon): od daemon db verify SQLite integrity check (Phase 5) 2026-05-09 18:16:41 +00:00
storage.test.ts feat(daemon): S3ProjectStorage live impl via AWS SigV4 (Phase 5) 2026-05-09 16:10:05 +00:00
structured-streams.test.ts fix: preserve Claude tool inputs (#1476) 2026-05-13 11:25:02 +08:00
system-prompt-template.test.ts [codex] Land design system GitHub intake handoff (#2187) 2026-05-19 14:30:17 +08:00
telemetry-message-finalization.test.ts Fix Langfuse report finalization hook (#1402) 2026-05-12 19:22:49 +08:00
tool-tokens.test.ts Add live artifacts and Composio connector catalog (#381) 2026-05-05 16:42:11 +08:00
tools-connectors-cli.test.ts [codex] Land design system GitHub intake handoff (#2187) 2026-05-19 14:30:17 +08:00
tools-live-artifacts-cli.test.ts Add live artifacts and Composio connector catalog (#381) 2026-05-05 16:42:11 +08:00
transcript-export.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
version-route.test.ts fix(daemon): restore startServer Promise contract — return url / { url, server } (#268) 2026-05-02 20:56:06 +08:00
xai-credentials.test.ts feat: integrate xAI SuperGrok subscription as a credential source for Grok media + X search (#2134) 2026-05-19 11:10:34 +08:00
xai-oauth-server.test.ts feat: integrate xAI SuperGrok subscription as a credential source for Grok media + X search (#2134) 2026-05-19 11:10:34 +08:00
xai-oauth.test.ts feat: integrate xAI SuperGrok subscription as a credential source for Grok media + X search (#2134) 2026-05-19 11:10:34 +08:00
xai-routes.test.ts feat: integrate xAI SuperGrok subscription as a credential source for Grok media + X search (#2134) 2026-05-19 11:10:34 +08:00
xai-tokens.test.ts feat: integrate xAI SuperGrok subscription as a credential source for Grok media + X search (#2134) 2026-05-19 11:10:34 +08:00