Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
0f3f5b3
Merge pull request #942 from ChronoAIProject/develop-auto
chronoai-shining Jun 8, 2026
832c94a
feat(web): add skill-lifecycle stage data and line icons (#949)
chronoai-shining Jun 8, 2026
b6b9fb2
feat(web): add skill-lifecycle ring copy (EN + ZH) (#949)
chronoai-shining Jun 8, 2026
c6ce072
feat(web): add skill-lifecycle ring styles and animations (#949)
chronoai-shining Jun 8, 2026
d2a16e4
feat(web): skill-lifecycle orbital ring on the landing hero (#949)
chronoai-shining Jun 8, 2026
e8dbb4b
feat(web): re-anchor announcement popup to the top-right (#949)
chronoai-shining Jun 8, 2026
2f47020
feat(web): top-right + compact the launch celebration popup (#949)
chronoai-shining Jun 8, 2026
7186430
docs: changeset for the skill-lifecycle ring (#949)
chronoai-shining Jun 8, 2026
d8af725
feat(web): add global announcement banner (launch + dynamic) (#949)
chronoai-shining Jun 8, 2026
f0cc40e
feat(web): mount announcement banner globally, retire landing popups …
chronoai-shining Jun 8, 2026
bd07423
docs: note the global announcement banner in the changeset (#949)
chronoai-shining Jun 8, 2026
cac568e
Merge pull request #950 from ChronoAIProject/feature/landing-lifecycl…
chronoai-shining Jun 9, 2026
90c3cbf
Merge develop-auto: promote verified bug-fix run → develop
sh1ningwang Jun 9, 2026
9e09411
Merge pull request #961 from ChronoAIProject/promote/bugfix-run-to-de…
chronoai-shining Jun 9, 2026
6c268ea
docs: release notes for v0.11.0 (2026-06-09) (#964)
chronoai-shining Jun 9, 2026
1e9829e
Merge pull request #965 from ChronoAIProject/develop
chronoai-shining Jun 9, 2026
5b301af
chore: version packages → v0.11.0 (#966)
ornn-release-bot[bot] Jun 9, 2026
971b459
Merge pull request #967 from ChronoAIProject/sync/post-release-v0.11.0
chronoai-shining Jun 9, 2026
dccb5af
feat(web): assistant SSE event union + message types (#970)
chronoai-shining Jun 9, 2026
92938b6
feat(web): session-scoped assistant chat store (#970)
chronoai-shining Jun 9, 2026
eb983d3
feat(web): assistant SSE stream client (#970)
chronoai-shining Jun 9, 2026
e0b9255
feat(web): useAssistantChat send/stream hook (#970)
chronoai-shining Jun 9, 2026
b74a97e
feat(web): add assistant surface flags to provider model types (#970)
chronoai-shining Jun 9, 2026
c109f26
feat(web): assistant surface column in ProviderModelsDrawer (#970)
chronoai-shining Jun 9, 2026
8ba6290
feat(web): show assistant-enabled model count in providers list (#970)
chronoai-shining Jun 9, 2026
aea9642
feat(api): introduce 'assistant' LLM surface — model flags + settings…
chronoai-shining Jun 9, 2026
9c51e29
feat(api): wire assistant surface into model picker + execute resolve…
chronoai-shining Jun 9, 2026
b6c33aa
chore(web): drop unused ReactNode import in ProviderModelsDrawer test…
chronoai-shining Jun 9, 2026
b7260fb
feat(web): Ornn Assistant widget — launcher + slide-in chat panel (#970)
chronoai-shining Jun 9, 2026
5813604
feat(web): mount Ornn Assistant in the authed app shell (#970)
chronoai-shining Jun 9, 2026
3de9095
feat(api): add assistant knowledge-base module — budget, distiller, l…
chronoai-shining Jun 9, 2026
318a720
feat(api): build-assistant-kb script + committed grounding digest (#970)
chronoai-shining Jun 9, 2026
77dc8f2
feat(api): extend quota Surface with 'assistant' (reserve/charge only…
chronoai-shining Jun 9, 2026
f61f946
feat(api): assistant scoped retrieval + context assembly + chat servi…
chronoai-shining Jun 9, 2026
3721224
feat(api): POST /api/v1/assistant/chat SSE endpoint + wiring (#970)
chronoai-shining Jun 9, 2026
dfad20a
feat(api): register assistant/chat in the OpenAPI spec (#970)
chronoai-shining Jun 9, 2026
d641c97
docs: changeset for Ornn Assistant (#970)
chronoai-shining Jun 9, 2026
012a558
docs: document /assistant/chat SSE + error reuse (#970)
chronoai-shining Jun 9, 2026
d600e65
fix(web): align assistant usage fields to backend contract (#970)
chronoai-shining Jun 9, 2026
447bbc9
fix(web): a11y — dialog focus trap + 44px header touch targets (#970)
chronoai-shining Jun 9, 2026
33ed266
fix(api): restrict assistant KB to user-relevant doc sections (#970)
chronoai-shining Jun 9, 2026
78a3f46
ci: gate assistant KB digest freshness (#970, MAJOR-1)
chronoai-shining Jun 9, 2026
758eed4
test(web): dedicated unit test for assistantStreamApi (#970)
chronoai-shining Jun 9, 2026
c41c8f9
Merge pull request #975 from ChronoAIProject/feature/ornn-assistant-c…
chronoai-shining Jun 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions .changeset/ci-889-coverage-floors.md

This file was deleted.

2 changes: 0 additions & 2 deletions .changeset/empty-772-todo.md

This file was deleted.

6 changes: 6 additions & 0 deletions .changeset/feat-970-ornn-assistant.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"ornn-api": minor
"ornn-web": minor
---

Add Ornn Assistant — an authenticated, repo-aware Q&A assistant. A new `/api/v1/assistant/chat` SSE endpoint and an in-app chat widget answer questions about Ornn and the skill catalog, grounded in a curated knowledge base plus visibility-scoped skill search (no private or PII data exposed). Admins can select the assistant model per provider. (#970)
5 changes: 0 additions & 5 deletions .changeset/fix-608-chat-completion-tool-calls.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fix-632-zipbomb-chokepoint.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fix-750-version-write-guid.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fix-751-bell-refetch-on-open.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fix-752-skill-timestamp-locale.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fix-757-redemption-code-randomint.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fix-757-sdk-baseurl-redos.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fix-766-abort-after-billable-charge.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/fix-888-lint-warnings.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fix-908-sort-dir-400.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fix-920-nan-limit.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fix-940-delete-skill-cache-removal.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fix-941-delete-skill-sidebar-counts.md

This file was deleted.

2 changes: 0 additions & 2 deletions .changeset/loose-bugs-show.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-872-mirror-coverage.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-873-audit-coverage.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-874-crud-coverage.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-875-generation-coverage.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-876-search-coverage.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-877-admin-routes-coverage.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-878-me-users-coverage.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-879-notifications-coverage.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-880-analytics-coverage.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-881-settings-coverage.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-882-content-quota-coverage.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-883-clients-infra-coverage.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-884-honest-web-coverage.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-885-web-utils-coverage.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-886-web-components.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-887-web-features.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/test-931-backfill.md

This file was deleted.

2 changes: 0 additions & 2 deletions .changeset/thin-tips-wave.md

This file was deleted.

20 changes: 20 additions & 0 deletions .github/release-notes-20260609.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## Fixed

- Runtime and mixed skills now run in Playground on more LLM providers.
- Playground usage is charged correctly even when a chat is interrupted.
- Deleting a non-latest skill version now works from name-based links.
- The notification dropdown shows new broadcasts without a manual refresh.
- Deleting a skill no longer leaves stale requests or incorrect counts.
- Skill timestamps now follow the selected interface language.
- Oversized (zip-bomb) skill uploads are now rejected server-side.
- Few technical bugs fixed.

## New Feature

- Global announcement banner for launch and platform notices.
- Skill-lifecycle ring on the landing hero.

## Changed

- Landing popups replaced by the unified announcement banner.
- Technical enhancement.
20 changes: 20 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,27 @@
- run: bun install --frozen-lockfile
- run: bun run typecheck

# Assistant KB freshness (#970, MAJOR-1). The grounding digest
# (digest.generated.md) is a committed build artifact distilled from the
# repo docs by scripts/build-assistant-kb.ts. If a source doc or the
# source manifest changes but the digest isn't regenerated, the assistant
# ships stale grounding. Rebuild it here and fail if the committed copy
# differs — the build is deterministic, so a clean tree means in-sync.
assistant-kb-freshness:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: oven-sh/setup-bun@v2
- run: bun install --frozen-lockfile
- name: Rebuild assistant KB digest
working-directory: ornn-api
run: bun run build:assistant-kb
- name: Fail if the committed digest is stale
run: |
git diff --exit-code -- ornn-api/src/domains/assistant/kb/digest.generated.md \
|| { echo "::error::assistant KB digest is stale — run 'bun run build:assistant-kb' in ornn-api/ and commit the result"; exit 1; }

test:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
Expand Down
1 change: 1 addition & 0 deletions docs/CONVENTIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,7 @@ Endpoints pick a subset and MAY add endpoint-specific events with the same prefi
|---|---|
| `POST /v1/skills/generate` | `generation_start`, `generation_delta`, `generation_validation_error`, `generation_error`, `generation_complete` |
| `POST /v1/playground/chat` | `chat_start`, `chat_text_delta`, `chat_tool_call`, `chat_tool_result`, `chat_file_output`, `chat_error`, `chat_finish` |
| `POST /v1/assistant/chat` | `chat_start`, `chat_text_delta`, `chat_error`, `chat_finish` |

### 6.3 Transport rules

Expand Down
4 changes: 4 additions & 0 deletions docs/ERRORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,10 @@ A dependency Ornn relies on (NyxID, OpenSandbox, LLM provider, mirror target,

**Client action:** retry with exponential backoff. If the failure persists, check [status.chrono-ai.fun](https://status.chrono-ai.fun) (when published) or [Discussions → Q&A](https://github.com/ChronoAIProject/Ornn/discussions/categories/q-a).

### chat_error (SSE) — `/assistant/chat`

`POST /v1/assistant/chat` (SSE; see [`docs/CONVENTIONS.md`](CONVENTIONS.md) §6.2) introduces **no new error codes** — it reuses the existing catalog. Failures before the stream opens use the normal `application/problem+json` envelope: `validation_error` (400, bad body), `authentication_required` (401), `rate_limited` (429), and — only when the caller supplies an explicit `modelId` — `MODEL_NOT_ENABLED` / `MODEL_NOT_FOUND` (400, from the per-surface model resolver). Once the stream is open, an in-stream LLM failure is delivered as an SSE `chat_error` event with `code: "upstream_unavailable"` and no terminal `chat_finish`, mirroring this section's parent code.

---

## Appendix: pre-#585 migration map
Expand Down
44 changes: 44 additions & 0 deletions ornn-api/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,49 @@
# ornn-api

## 0.11.0

### Patch Changes

- [#933](https://github.com/ChronoAIProject/Ornn/pull/933) [`cb2a3b5`](https://github.com/ChronoAIProject/Ornn/commit/cb2a3b544b9a9ba230a3eb8a2c686ee70bcf3715) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Enforce per-package line-coverage floors (api 75%, web 12% ratchet) and split the pooled Codecov flag ([#889](https://github.com/ChronoAIProject/Ornn/issues/889))

- [#954](https://github.com/ChronoAIProject/Ornn/pull/954) [`dcd90db`](https://github.com/ChronoAIProject/Ornn/commit/dcd90dbad9433c435a37491bb4f8bc4500df22f2) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Chat-completion providers now surface structured `execute_in_sandbox` tool calls in the Playground. `parseChatCompletionStream` accumulates streamed `choices[].delta.tool_calls[]` fragments per index and flushes each completed call as a `response.output_item.done` function_call event (the shape the playground consumer reads); the non-streamed `complete()` path maps `message.tool_calls[]` the same way; and the chat-completion request body now sends `tool_choice: "auto"` whenever tools are supplied. Previously tool calls were silently dropped so the sandbox never ran for `apiFormat=chat-completion` providers ([#608](https://github.com/ChronoAIProject/Ornn/issues/608))

- [#951](https://github.com/ChronoAIProject/Ornn/pull/951) [`476b2e8`](https://github.com/ChronoAIProject/Ornn/commit/476b2e868754fcce74bb2faf53f63e9f52e25f09) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Server-side ZIP-bomb guards (cumulative/per-entry uncompressed caps, file-count, compression-ratio) are now enforced at the skill-ingestion chokepoint — covering both direct upload and the GitHub pull/refresh paths that previously bypassed the route-layer guard. Caps are env-overridable ([#632](https://github.com/ChronoAIProject/Ornn/issues/632))

- [#952](https://github.com/ChronoAIProject/Ornn/pull/952) [`d41c1b0`](https://github.com/ChronoAIProject/Ornn/commit/d41c1b0affa9e349f7bd747bfc7553c62497dfe7) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Redemption-code generation now draws each character with crypto.randomInt for an unbiased uniform draw over the alphabet, clearing CodeQL js/biased-cryptographic-random ([#757](https://github.com/ChronoAIProject/Ornn/issues/757))

- [#953](https://github.com/ChronoAIProject/Ornn/pull/953) [`4c57c88`](https://github.com/ChronoAIProject/Ornn/commit/4c57c885b1d409904869028bcf188320a52cc509) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Playground chat: a client abort (or error) after billable output now commits the reserved quota slot instead of refunding it, closing the abort-after-first-token free-usage path ([#766](https://github.com/ChronoAIProject/Ornn/issues/766))

- [#932](https://github.com/ChronoAIProject/Ornn/pull/932) [`92b5622`](https://github.com/ChronoAIProject/Ornn/commit/92b56227d05ccc292bfe5570420ddf0a0e596119) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Resolve all 65 ESLint warnings with proper type/effect/ref fixes; compiler-only rules off pending react-compiler ([#888](https://github.com/ChronoAIProject/Ornn/issues/888))

- [#937](https://github.com/ChronoAIProject/Ornn/pull/937) [`eb93d06`](https://github.com/ChronoAIProject/Ornn/commit/eb93d06b5dc8f45fb95a8b92b1684aed343d94d9) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Admin users list: invalid sort/dir query params now return 400 invalid_sort/invalid_dir instead of 500 ([#908](https://github.com/ChronoAIProject/Ornn/issues/908))

- [#938](https://github.com/ChronoAIProject/Ornn/pull/938) [`3360954`](https://github.com/ChronoAIProject/Ornn/commit/3360954d3ac3fd5c29da0412504fc2bbd98cd2bf) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Malformed or empty ?limit on the notifications feed now falls back to the default page size instead of erroring ([#920](https://github.com/ChronoAIProject/Ornn/issues/920))

- [#895](https://github.com/ChronoAIProject/Ornn/pull/895) [`a4d02a4`](https://github.com/ChronoAIProject/Ornn/commit/a4d02a4545acd5edddb97f4861630152527ec82b) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Add unit test coverage for the GitHub mirror auth, REST client, and admin routes ([#872](https://github.com/ChronoAIProject/Ornn/issues/872))

- [#897](https://github.com/ChronoAIProject/Ornn/pull/897) [`6bdad30`](https://github.com/ChronoAIProject/Ornn/commit/6bdad30332d7411f25ea61c1c258202bd69b6093) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Add unit test coverage for the skill-audit module (prompts, repository, service, routes) ([#873](https://github.com/ChronoAIProject/Ornn/issues/873))

- [#899](https://github.com/ChronoAIProject/Ornn/pull/899) [`19e3cc3`](https://github.com/ChronoAIProject/Ornn/commit/19e3cc352ce1031e72953d2cecca4f107ce2598d) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Add unit + integration test coverage for the skills CRUD module (repositories, routes, service) ([#874](https://github.com/ChronoAIProject/Ornn/issues/874))

- [#906](https://github.com/ChronoAIProject/Ornn/pull/906) [`76cb49a`](https://github.com/ChronoAIProject/Ornn/commit/76cb49a739a666a4bfc1cd8306fc9fa959f48753) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Add unit test coverage for the skill-generation module (prompts, service, routes) ([#875](https://github.com/ChronoAIProject/Ornn/issues/875))

- [#907](https://github.com/ChronoAIProject/Ornn/pull/907) [`b4f7465`](https://github.com/ChronoAIProject/Ornn/commit/b4f7465f52e34995dd83c4de265c1e36df7417a6) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Add test coverage for the skills search module and remove a dead search type ([#876](https://github.com/ChronoAIProject/Ornn/issues/876))

- [#909](https://github.com/ChronoAIProject/Ornn/pull/909) [`f880fe4`](https://github.com/ChronoAIProject/Ornn/commit/f880fe484217a7d94304973f76bb2e7c78b8022d) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Add route test coverage for admin skills, platform settings, and admin users ([#877](https://github.com/ChronoAIProject/Ornn/issues/877))

- [#919](https://github.com/ChronoAIProject/Ornn/pull/919) [`e86f76a`](https://github.com/ChronoAIProject/Ornn/commit/e86f76a8205b8959806b42d3a3569bebb8b98d64) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Add route test coverage for /me and /users surfaces ([#878](https://github.com/ChronoAIProject/Ornn/issues/878))

- [#921](https://github.com/ChronoAIProject/Ornn/pull/921) [`fdfda6d`](https://github.com/ChronoAIProject/Ornn/commit/fdfda6dade0c33a7d406df487cd7ab22a54fccf1) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Add notifications test coverage (routes, service emitters, migration, bootstrap) and remove a dead test mock ([#879](https://github.com/ChronoAIProject/Ornn/issues/879))

- [#922](https://github.com/ChronoAIProject/Ornn/pull/922) [`b562205`](https://github.com/ChronoAIProject/Ornn/commit/b562205b040cbaec1b910692081045cab0fc7d3b) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Add analytics test coverage (service pass-through, route validation, PostHog tracker fail-open) ([#880](https://github.com/ChronoAIProject/Ornn/issues/880))

- [#923](https://github.com/ChronoAIProject/Ornn/pull/923) [`e649628`](https://github.com/ChronoAIProject/Ornn/commit/e649628ed521f531e8538d7a9816dd6187c334e0) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Add settings + LLM-provider test coverage (migration, repositories, routes) ([#881](https://github.com/ChronoAIProject/Ornn/issues/881))

- [#924](https://github.com/ChronoAIProject/Ornn/pull/924) [`cad5be2`](https://github.com/ChronoAIProject/Ornn/commit/cad5be23046129f8c30f3a1517a8aaf4d0f379e6) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Add broadcasts, announcements, and quota route/bootstrap/migration test coverage ([#882](https://github.com/ChronoAIProject/Ornn/issues/882))

- [#926](https://github.com/ChronoAIProject/Ornn/pull/926) [`6afeb4c`](https://github.com/ChronoAIProject/Ornn/commit/6afeb4cd82e11cdd5d3921c04e60a16d127f9d18) Thanks [@chronoai-shining](https://github.com/chronoai-shining)! - Add client and infra test coverage (LLM model-list client, sandbox client, Mongo connect) ([#883](https://github.com/ChronoAIProject/Ornn/issues/883))

## 0.10.2

## 0.10.1
Expand Down
5 changes: 3 additions & 2 deletions ornn-api/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ornn-api",
"version": "0.10.2",
"version": "0.11.0",
"private": true,
"type": "module",
"scripts": {
Expand All @@ -10,7 +10,8 @@
"migrate:versions": "bun run scripts/migrate-skill-versions.ts",
"migrate:ownership": "bun run scripts/migrate-skill-ownership.ts",
"migrate:drop-topics": "bun run scripts/drop-topics.ts",
"audit:reserved-verbs": "bun run scripts/audit-reserved-verbs.ts"
"audit:reserved-verbs": "bun run scripts/audit-reserved-verbs.ts",
"build:assistant-kb": "bun run scripts/build-assistant-kb.ts"
},
"dependencies": {
"@agendajs/mongo-backend": "^4.0.2",
Expand Down
Loading
Loading