Repository navigation
v2.3.0
·
2 commits
to release/v2.3
since this release
What's Changed
- feat(tenants): expose tenant id from GET /users/tenant/ by @axelander in #878
- feat(admin): redesign the roles page with grouped permissions by @MaxEriksson2000 in #868
- chore: remove the legacy 2024 widgets table and its dead code by @MaxEriksson2000 in #842
- test(object-content): read the policy revision before pausing moves by @MaxEriksson2000 in #881
- fix(tests): keep the rehearsal sampler out of a transaction and watch stalled upgrades by @MaxEriksson2000 in #882
- feat(whats-new): in-app release notes with a repeatable release flow by @MaxEriksson2000 in #839
- test(object-content): make the concurrent reference-failure backfill test deterministic by @MaxEriksson2000 in #883
- ci: parallelize backend tests across free standard runners by @MaxEriksson2000 in #885
- fix(uploads): make supported file types and limits discoverable by @MaxEriksson2000 in #880
- perf(tests): reuse baseline credentials and remove duplicate coverage by @MaxEriksson2000 in #886
- ci: shorten the frontend critical path by @MaxEriksson2000 in #888
- test(integration): delete from populated tables instead of truncating all by @MaxEriksson2000 in #892
- fix(api): answer refused requests in the documented error contract by @CCimen in #884
- feat(skills): add admin removal with retained history by @CCimen in #876
- fix(migrations): let v2.2 ship Skill removal without skipping develop migrations by @axelander in #902
- fix(web): escape audit log metadata before highlighting it by @MaxEriksson2000 in #915
- refactor(web): move form controls from @eneo/ui to shadcn-svelte by @MaxEriksson2000 in #905
- refactor(web): move Tooltip, ProgressBar and Label from @eneo/ui to shadcn-svelte by @MaxEriksson2000 in #906
- refactor(web): move Button, Dialog, Dropdown and Select from @eneo/ui to shadcn-svelte by @MaxEriksson2000 in #907
- refactor(web): replace hand-rolled melt-ui widgets and Page tabs with shadcn-svelte by @MaxEriksson2000 in #908
- refactor(web): replace Input.DateRange with a shadcn-based DateRangePicker by @MaxEriksson2000 in #909
- refactor(web): run resource tables on TanStack instead of @eneo/ui Table by @MaxEriksson2000 in #910
- refactor(web): retire the @eneo/ui component library by @MaxEriksson2000 in #911
- refactor(web): replace lucide-svelte with @lucide/svelte by @MaxEriksson2000 in #912
- fix(ui): give borders without a colour class the default border token by @MaxEriksson2000 in #913
- docs(object-content): make the 2.2 File/Icon upgrade guide a tested procedure by @CCimen in #925
- refactor(web): share one confirm dialog and one move-to-space dialog by @MaxEriksson2000 in #916
- fix(web): styles that silently rendered nothing, and small UI bugs by @MaxEriksson2000 in #917
- refactor(web): one copy helper, one markdown renderer, fewer dependencies by @MaxEriksson2000 in #918
- refactor(web): consolidate duplicated admin, member and settings UI by @MaxEriksson2000 in #919
- chore(web): stop unused message keys and deprecated Lucide names in CI by @MaxEriksson2000 in #920
- refactor(web): share app run pages, name dialogs, editor chrome, tiles and switchers by @MaxEriksson2000 in #921
- refactor(web): one home for date, relative time and size formatting by @MaxEriksson2000 in #922
- fix(web): findings from the review of the maintainability stack by @MaxEriksson2000 in #923
- fix(web): hide legacy Services UI on develop by @MaxEriksson2000 in #928
- fix(deps): patch backend Dependabot advisories by @MaxEriksson2000 in #929
- fix(deps): update docs Next.js security patch by @MaxEriksson2000 in #930
- fix(deps): patch web chart and test advisories by @MaxEriksson2000 in #931
- fix(storage): restrict tenant storage usage to admins by @MaxEriksson2000 in #932
- chore(frontend): clear knip findings left by the @eneo/ui retirement by @MaxEriksson2000 in #933
- fix(mcp): clarify tool authorization errors by @MaxEriksson2000 in #949
- fix(config): stop at startup when removed environment variables are set by @MaxEriksson2000 in #945
- fix(models): restrict provider credential probes to admins by @MaxEriksson2000 in #950
- Security fixes: crawler destinations and session identity (develop) by @CCimen in #958
- refactor(crawler): replace Scrapy with recoverable Python crawler by @axelander in #721
- fix(auth): require explicit authentication and authorization on every endpoint by @MaxEriksson2000 in #954
- fix(integrations): enforce tenant, connection and sync-log access by @MaxEriksson2000 in #959
- fix(templates): resolve templates within the tenant when creating fro… by @axelander in #964
- fix(auth): validate the session lifetime and label its unit as minutes by @axelander in #966
- fix(models): require a new API key when a provider's endpoint changes by @axelander in #970
- fix(spaces): confine API keys and resource moves to their own tenant by @axelander in #962
- fix(files): issue version-2 signed download tokens and validate the s… by @axelander in #968
- fix(info-blobs): require edit rights in the owning space before updating a blob by @MaxEriksson2000 in #973
- fix(spaces): hide unpublished assistants and apps from viewers by @MaxEriksson2000 in #976
- feat(redis): support optional Redis authentication by @MaxEriksson2000 in #977
- feat(ci): require change and area labels on pull requests by @MaxEriksson2000 in #984
- fix(auth): limit failed password logins per account by @MaxEriksson2000 in #985
- fix(sysadmin): stop returning stored credentials from the user endpoints by @MaxEriksson2000 in #982
- fix(web): show tools as unavailable when the model cannot call tools by @axelander in #961
- fix(auth): cap the session lifetime at 30 days by @MaxEriksson2000 in #989
- fix(mcp): decide tool auto-approval by an internal flag, not the server name by @axelander in #978
- fix(auth): authenticate service-key principals on loopback MCP tool calls by @axelander in #987
- fix(chat): label built-in tools by the server's internal flag, not its name by @axelander in #999
- fix(security): restrict retention edits and crawler diagnostics by @MaxEriksson2000 in #993
- fix(auth): enforce shared OIDC account admission by @MaxEriksson2000 in #996
- fix(mcp): resolve a built-in provider's loopback URL when connecting by @axelander in #1006
- fix(auth): reject explicitly unverified OIDC email identities by @MaxEriksson2000 in #1004
- chore(backend): bump PyJWT to 2.15.1 by @MaxEriksson2000 in #1009
- feat(assistants): support on-demand attachments and simplify material settings by @axelander in #899
- Align sync-frontend-with-backend with new accepted Eneo values by @AronAtOrebroKommun in #1014
- fix(ci): read planning links from GitHub instead of PR text by @CCimen in #1015
- fix(crawler): keep stored HTTP credentials bound to their origin by @MaxEriksson2000 in #1001
- fix(auth): bind generic OIDC callbacks to the initiating browser by @MaxEriksson2000 in #1003
- fix(web): stop the page tab bar from showing a scrollbar while a tab is pressed by @axelander in #1019
- fix(chunking): one chunking configuration for every ingest path, capped by the model by @MangeAtOrebroKommun in #1023
- fix(spaces): give the personal assistant a usable completion model on load by @MaxEriksson2000 in #1024
- fix(files): delete uploaded files after their last use by @MaxEriksson2000 in #1037
- feat(sharepoint): search and show document library columns as source metadata by @MaxEriksson2000 in #1010
- fix(integrations): restrict OAuth popup messages to the Eneo origin by @MaxEriksson2000 in #1002
- docs(attachments): describe URL-only attachments and what a read costs by @axelander in #1031
- Feat/SCIM enterprise extensions by @AronAtOrebroKommun in #1032
- Feat/custom headers by @AronAtOrebroKommun in #1033
- docs(whats-new): add outbound headers to the 2.3.0 notes by @AronAtOrebroKommun in #1047
- feat(tools): ship isolated runtime and verified release bundles by @axelander in #1008
- feat(chat): add native document workspace and exports by @axelander in #1016
- feat(mcp-apps): host approved interactive tool views by @axelander in #1017
- fix(seaweedfs): build with Go 1.26.9 and x/net 0.60.0 by @axelander in #1050
- fix(auth): keep the CORS origin allowlist from blocking SSR and secret-key calls by @MaxEriksson2000 in #1049
- deps(backend): bump litellm to 1.104.2 by @MaxEriksson2000 in #1051
- test(e2e): wait for the turn to end before expanding the step list by @axelander in #1052
- Tidy the Funktioner page and name server kinds consistently by @axelander in #1053
- deps(backend): bump urllib3, multidict and mako for security advisories by @MaxEriksson2000 in #1055
- deps(frontend): bump SvelteKit, dompurify and next for security advisories by @MaxEriksson2000 in #1056
- chore(web): drop tracked Vitest failure screenshot and ignore .vitest-attachments by @MaxEriksson2000 in #1058
- feat: document templates for Word and PDF file creation by @axelander in #1062
- fix(files): extract uploads in the bounded child and scale PDF extraction by @axelander in #1039
- fix: tell users which storage quota refused a knowledge upload by @axelander in #1069
- fix(db): align models with migrations and check all registered tables by @MaxEriksson2000 in #1060
- New tenants get file creation and charts for Owner only by @axelander in #1078
- Compute as a Function: CSV export, result view with re-run, Decimal prelude by @axelander in #1076
- feat(chat): show function steps apart from context lookups by @axelander in #1079
- feat: add opt-in Next.js beta alongside the existing Eneo app by @MaxEriksson2000 in #1021
- fix(spaces): preserve resources with explicit persistence ownership by @MaxEriksson2000 in #1059
- fix(views): show exact decimal strings as numbers in the reader's locale by @axelander in #1080
- feat(context): skip a chunk that does not fit the knowledge budget instead of stopping by @MangeAtOrebroKommun in #1075
- fix(audit): let the audit service derive the actor for tenant model writes by @MangeAtOrebroKommun in #1088
- feat(rerank): register rerank models as a model type by @MangeAtOrebroKommun in #1084
- feat(rerank): rerank as a provider mode with a connection test by @MangeAtOrebroKommun in #1089
- fix(tools): pass a small aggregate to create_chart inline instead of exporting by @axelander in #1090
- feat(chat): send at once with pending uploads, one file list, reuse known uploads by @axelander in #1094
- feat(chat): tell users why an AI provider call failed by @MaxEriksson2000 in #1095
- feat(rerank): rerank step in semantic search, switched on per call by @MangeAtOrebroKommun in #1093
- fix(deps): upgrade mcp to 1.30.0 for CVE-2026-59951 by @MaxEriksson2000 in #1101
- feat(chat): group the panel's uploads by question and mark a bundle's group by @axelander in #1099
- fix(chat): link a cited document only to an http(s) address by @MaxEriksson2000 in #1105
- fix(chat): fold composer attachments from three, pair two chips on one row by @axelander in #1108
- web-next: side panel, tool views and the new attachment UX from #1094 by @axelander in #1106
- fix(spaces): let the organization space follow the admin role held now by @MaxEriksson2000 in #1104
- docs(mcp): explain the tool architecture, the runtime split and its security model by @axelander in #1109
- fix(knowledge): remove half-move actions between spaces by @MaxEriksson2000 in #1100
- fix(knowledge): classify knowledge by owner so selected sources stay removable by @MaxEriksson2000 in #1070
- feat(auth): accept "true" and "1" as email_verified for JIT by @MaxEriksson2000 in #1111
- feat(chat): edit generated documents in a TipTap editor with saved versions by @axelander in #1113
- fix(mcp): send an MCP server credential only over https by @CCimen in #1115
- fix(tools): find the text to edit in a stored document, and point a non-table file at read_file (v2.3) by @axelander in #1128
- fix(whats-new): backport complete 2.3 notes and RC announcements by @MaxEriksson2000 in #1130
- fix(web): bundle the paragraph editor extension into the server build (v2.3) by @axelander in #1132
- fix(web): open a document version without its change marks (v2.3) by @axelander in #1140
- feat(release): backport news navigation, reminders and aiohttp fix (v2.3) by @MaxEriksson2000 in #1142
- fix(chat): keep composer controls within the available width (v2.3) by @MaxEriksson2000 in #1153
- fix(deps): backport Pillow 13 and security dependency updates to v2.3 by @MaxEriksson2000 in #1195
- fix(deps): bump opentelemetry-api to 1.45.1 on release/v2.3 by @MaxEriksson2000 in #1217
- fix(security): backport patched runtimes and PDF input validation to 2.3 by @MaxEriksson2000 in #1216
- fix(deps): patch Next.js, DOMPurify and Vitest mocker on release/v2.3 by @MaxEriksson2000 in #1218
- fix(deps): audit exceptions for filelock and Go 1.26.10 for SeaweedFS (v2.3) by @CCimen in #1240
- fix(knowledge): release search data of replaced versions (v2.3) by @CCimen in #1238
- fix(deps): bump tool-runtime body-parser to 2.4.0 and zod to 4.6.7 (v2.3) by @MaxEriksson2000 in #1266
- fix(deps): bump dnspython to 2.9.0 for GHSA-45c3-73f7-pv4m (v2.3) by @CCimen in #1276
- fix(knowledge): make the replaced-version cleanup finish and report on large databases (v2.3) by @CCimen in #1274
- chore(security): make the dependency audit pass on release/v2.3 by @MaxEriksson2000 in #1300
- ci(security): warn below high severity in dependency audits (2.3 backport) by @MaxEriksson2000 in #1302
- fix(chat): contain initial conversation loading failures in 2.3 by @MaxEriksson2000 in #1295
- fix(whats-new): permission-filtered, accurate 2.3 notes and deployment docs (v2.3) by @MaxEriksson2000 in #1299
Full Changelog: v2.2.3...v2.3.0