Thomas Camlong
a4e1c3c60e
perf(assistant): load the assistant runtime only when it is enabled
...
AssistantProvider was imported statically by the root layout, so
assistant-ui, the Lexical composer, the Markdown renderer and Mermaid were
downloaded and evaluated on every page. The existing getAvailability gate
only skipped rendering, and the disabled branch still imported the board
widget, which pulls the whole conversation surface. An instance with the
assistant switched off paid the full cost, and so did the login page.
Measured on two production builds, /auth/login went from 42 chunks /
3.81MB including an 820KB assistant-ui chunk to 36 chunks / 2.40MB with
none, and the board page from 55 / 5.35MB to 56 / 4.56MB with none.
Adds getFeatureFlagsAsync as one source of truth for instance-level
feature switches, exposed both to the root layout and through a small
GET /api/features endpoint. Resolving the flag on the server is what makes
this work: next/dynamic never references the heavy chunk when the feature
is off, while enabled instances still server-render it, so there is no
loading flash and no remount.
2026-08-07 17:30:27 +02:00
Thomas Camlong
d82db8c6bd
fix(api): return assistant messages with parents before children
...
getThread ordered purely by created_at, which is second-granular on MySQL
and SQLite. A user turn and the assistant reply routinely land in the same
second, so their relative order was whatever the storage engine returned.
The client rebuilds the conversation tree from parent_id, so a child ahead
of its parent corrupts the thread.
Adds an id tiebreaker for a deterministic database order, then a stable
topological pass that guarantees parents precede children while preserving
sibling order. Dangling parent references are treated as roots and cycles
are appended, so no message is ever dropped.
2026-08-07 17:30:16 +02:00
Thomas
b14756874e
fix: handle missing message in assistant generation telemetry ( #6528 )
2026-08-07 14:59:59 +02:00
ajnart
6bbb786ede
style: auto-fix lint and format
2026-08-07 12:54:24 +00:00
Thomas
bc12aba433
Merge branch 'dev' into feat/homarr-assistant
2026-08-06 21:53:57 +02:00
Thomas
f76a0f240a
feat(apps): allow custom URI schemes in application links ( #6521 )
2026-08-06 21:52:56 +02:00
Thomas
eca8b4286d
feat: mock Homarr Assistant in demo mode and fix board page crash ( #6524 )
2026-08-06 21:33:03 +02:00
ajnart
bcdd56f714
feat: polish assistant conversations
2026-08-04 18:22:18 +02:00
ajnart
8e557fb9fd
feat: improve assistant interactions
2026-08-04 13:21:39 +02:00
ajnart
62f5c1cbc3
stabilize integration router tests
2026-08-03 18:14:25 +02:00
Thomas
778533a62e
fix: revert regressions from recent integration/releases/app-href changes ( #6514 )
2026-08-03 17:37:53 +02:00
ajnart
f66d982ff3
fix duplicate release success flag
2026-08-03 17:35:28 +02:00
ajnart
cd16ab8e84
Merge remote-tracking branch 'origin/dev' into feat/homarr-assistant
2026-08-03 17:34:33 +02:00
ajnart
4b62cbfb4b
fix integration permission checks
2026-08-03 17:25:14 +02:00
Thomas
b4fba47a23
fix(releases): add success flag to successful response for correct error detection ( #6512 )
2026-08-03 17:10:35 +02:00
ajnart
56a6d4989a
Merge remote-tracking branch 'origin/dev' into feat/homarr-assistant
...
# Conflicts:
# pnpm-lock.yaml
2026-08-03 17:08:45 +02:00
ajnart
c43ab2ee56
fix assistant provider icon contrast
2026-08-03 17:05:12 +02:00
Thomas
2f6b96e5ba
feat: restrict integrations management to integration-full-all permission ( #6509 )
2026-08-03 17:04:35 +02:00
ajnart
f7b291b465
add OpenRouter web search option
2026-08-03 16:59:27 +02:00
ajnart
35673f113e
fix assistant widget configuration
2026-08-03 16:43:08 +02:00
ajnart
bd3e4c33f3
enhance assistant batch responses
2026-08-03 15:48:41 +02:00
ajnart
5a3022a073
integrate assistant custom widget workflow
2026-08-03 15:22:08 +02:00
ajnart
8a2375b3ef
fix: address assistant review feedback
2026-08-02 16:45:14 +02:00
ajnart
8bb0ddef42
fix: secure assistant generation telemetry
2026-08-02 09:09:01 +02:00
ajnart
04520cf67c
feat: enrich assistant request telemetry
2026-08-02 08:51:48 +02:00
ajnart
0a8e6ed194
feat: add assistant conversation widget
2026-08-01 14:51:20 +02:00
ajnart
5458e7d647
feat: add assistant board styling tools
2026-08-01 10:39:41 +02:00
Thomas
1b55514d98
Merge branch 'dev' into feat/homarr-assistant
2026-07-31 13:32:03 +02:00
Matt Van Horn
06d9c07d22
feat: expose Navidrome as a media-server (now-playing) integration ( #6070 )
2026-07-31 13:30:44 +02:00
ajnart
82b146bdf6
feat: improve assistant confirmations
2026-07-30 22:01:21 +02:00
ajnart
2aefa23c36
feat: improve assistant background controls
2026-07-30 18:33:54 +02:00
ajnart
af75bcd741
fix: send provider model ids
2026-07-30 16:00:09 +02:00
ajnart
ee08870925
fix: address assistant capability review
2026-07-30 14:22:01 +02:00
ajnart
33e23021ae
feat: expand assistant interaction capabilities
2026-07-30 14:09:15 +02:00
ajnart
9e6a0c7748
refactor: remove assistant chat archiving
2026-07-30 12:08:21 +02:00
ajnart
be0496af5a
fix: invalidate persisted assistant model state
2026-07-30 08:59:01 +02:00
ajnart
aa83fe4986
feat: promote assistant configuration
2026-07-30 08:25:00 +02:00
ajnart
1c3aac5e82
feat: expand assistant providers and polish experience
2026-07-30 00:39:22 +02:00
Thomas
cfad8dd642
Merge branch 'dev' into feat/homarr-assistant
2026-07-28 23:13:43 +02:00
ajnart
36ae9f93ee
fix: harden assistant integration
2026-07-28 22:56:28 +02:00
Thomas
2885f7a297
fix(widgets): preserve data on integration failures ( #6484 )
2026-07-28 22:18:08 +02:00
ajnart
00e8790ec2
feat: add Homarr assistant
2026-07-28 21:33:17 +02:00
Thomas
14c3fa2e76
fix(beszel): prevent live subscription memory growth ( #6448 )
...
* fix(beszel): bound live stats subscriptions
* fix(beszel): avoid blocking subscription teardown
* fix(import): map new clock options
2026-07-23 02:03:08 +02:00
Thomas
cf0e469465
feat: restrict apps management to board modifiers ( #6425 )
2026-07-21 16:56:33 +02:00
Thomas
97652802f0
feat(immich): show random photos without album ( #6424 )
2026-07-21 16:10:45 +02:00
Junker der Provinz
6ac4c6a7b9
fix(search): let public dashboards use generic custom search engines ( #6375 )
2026-07-17 14:53:52 +02:00
Thomas
5e39c8813a
feat(preferences): add enableRightClickOnWidgets user preference ( #6298 )
2026-07-17 14:42:19 +02:00
Thomas
8528d5068b
feat(media-requests): filter requests list by status and time window ( #6320 )
2026-07-15 16:27:24 +02:00
Thomas
2d450239ac
fix(releases): add required octokit throttling rate limit handlers ( #6338 )
2026-07-15 11:27:32 +02:00
Thomas
576856d634
fix(beszel): add reliable live stats and filesystem UI ( #6289 )
2026-07-11 17:55:04 +02:00