Fix layout display dependant on item count request#26045
Conversation
AlexGaillard
left a comment
There was a problem hiding this comment.
Functionally this looks good. Though I wonder if we should go with a linear progress indicator rather than the circular.
Linear
Circular
WDYT @formfcw?
Co-authored-by: Alex Gaillard <[email protected]>
Co-authored-by: Alex Gaillard <[email protected]>
Neither one nor the other. I suggest showing either the pagination disabled (like |
Not sure we have a skeleton. I guess it should just be disabled then. Adding skeleton functionality feels out of scope. |
|
Florian has just schooled me that we do in fact have |
I would agree skeleton is the way to go, this is usually indicative of something loading while disabled does not and may lead to some confusion. I'll have a look at adding it in |
|
Loader has been added Screen.Recording.2025-11-04.at.10.25.03.AM.mov |
* Fix itemCount dep for item display * add changeset * Update app/src/layouts/cards/cards.vue Co-authored-by: Alex Gaillard <[email protected]> * Update app/src/layouts/tabular/tabular.vue Co-authored-by: Alex Gaillard <[email protected]> * add pagination skeleton loader * only display skeleton if items are at least page limit * Prefer 3 skeletons over 1 * fix skeleton loader tests --------- Co-authored-by: Alex Gaillard <[email protected]>
* Install vue split panel * Recreate private-view * Persist size * Setup headerbar * Add collapse expand * Add resize handle * Remove tw cruft * Hack in right sidebar * Fix right sidebar expand/collapse * Fix content spacing * Tweak scrolling containers, fix header shadow * Remove margins * Make nav responsive * Nav toggles, remove latency * Finish basic responsiveness * Bry/split panel tiny twak (#25967) * really missed the e in that branch name * all the small thi..buttons --------- Co-authored-by: Rijk van Zanten <[email protected]> * Style expand button * Tweak sizing of icons * Reduce search input sizing * Remove margin from children * Tweak header bar layout * Remove page icons * Tweak responsive breakpoints * Add support for icons * Tweak spacing * they're back but as props this time (#25987) * Fix z-index * Header Bar to V Drawer Header Bar (#25988) * they're back but as props this time * rename to v-drawer header * refactor to match private-view-header-bar pattern * remove small header and header shadow props on private view * Drop small prop from v-drawer-header * Remove primary action item --------- Co-authored-by: Rijk van Zanten <[email protected]> * Added `directus_comments` and `directus_extensions` to websocket subscriptions (#25464) * utilize system data for registering system module subscriptions * add changeset * update changeset wording --------- Co-authored-by: Rijk van Zanten <[email protected]> Co-authored-by: Nitwel <[email protected]> * Speed up dialogs a bit * Add top padding in collections * Re-add support for custom header border * Slow down tooltips * Responsiveness for header bar * Recreate lockfile * Add changeset * Run formatter * Fix linter warnings * Add encryption support to special flags (#26096) * Warn on secret values shorter than 32 bytes * Warn on byte instead of string length * Add encrypt/decrypt logic * Add encrypt special flag support * Rework encryption to use version envelope * Format * Pass accountability to payload service * Return decrypted value to system calls * Fix tampered test * Add basic AI settings (#26097) * Add ai settings * Run formatter * Add heading and notice * Feat/refactor mcp (#26098) * Refactor MCP into AI folder * Run formatter * Format translation * Add dirname definitions * Add ai/chat endpoint (#26104) * Setup AI SDK endpoint * Add tests * Fix test quirks * Implement tool support in chat endpoint (#26116) * Add ai chat tool usage * Gen in some tests * Add json schema validation * Update api/src/ai/chat/utils/chat-request-tool-to-ai-sdk-tool.ts Co-authored-by: Copilot <[email protected]> * Refactor DRY --------- Co-authored-by: Copilot <[email protected]> * Regen pnpmlock * Update changeset to include themes pkg * Feat/ai system prompt (#26124) * Add system prompt setting * Load middleware setting * Add translatoins * Allow passing systemprompt to createuimessages * Pass system prompt from ai settings * AI -> Add base layer AI UI components (#26115) * components * add ai sidebar to item route * rough in ai model selector * rough - ai-input * mock message * add reka-ui * move to ai folder * ai sdk vue * model selector refactor * shrink padding * quick cleanup * shorten model list * install rest of ai sdk * ai message parts * refactor text area * ai store * update sidebar * fix deps mismatch * delete step * update models to long form (again) * refactor to pinia store * remove tools stuff for now * add openai reasoning detailed * Update app/src/ai/components/ai-sidebar-detail.vue Co-authored-by: Copilot <[email protected]> * fix whitespace * fix em up * make max width 600 px * fix sidebar scroll * fix packages * fix reka-ui * cleanup message list * cleanup message * cleanup margins and unused css vars * start reasoning open and then close when done * refactor message list animation * add reasoning translations * refactor out scss * remove progress bar * model selector * ai sidebar detail * fix styling of message text * refactor out variants in favor of simple role basis * fix extra space * remove unneeded variant * refactor side prop * replace spread with backwards loop * fixes 1 * Move reka to devDependencies * Logical properties * Run stylelint * convert to rem * back to pickles * Clean up multi-line tracking * Use transition variables * Use lodash throttle * Use v-bind for css var * Use $t instead of usei18n * computed * textarea magic * Only show models from configured providers * message tool translation * Use transition vars * Use vars for transition * fix dupe * remove opacity * refactor reasonign * add back empty tools array * Refactor AI model selector dropdown to use transitions instead of keyframe animations (#26122) * Initial plan * Refactor dropdown animation to use transitions instead of keyframes Co-authored-by: rijkvanzanten <[email protected]> * Update app/src/ai/components/ai-model-selector.vue * Update app/src/ai/components/ai-model-selector.vue --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * fix animation * refactor model selector to use vmenu * New Crowdin updates (#25908) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Portuguese) * New translations en-us.yaml (Albanian) * Update source file en-US.yaml * New translations en-us.yaml (Persian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (French) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (French) * New translations en-us.yaml (French, Canada) * Update source file en-US.yaml * New translations en-us.yaml (Korean) * Update source file en-US.yaml * New translations en-us.yaml (Persian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Persian) * Update source file en-US.yaml * New translations en-us.yaml (Russian) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Romanian) * New translations en-us.yaml (French) * New translations en-us.yaml (Spanish) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Bulgarian) * New translations en-us.yaml (Catalan) * New translations en-us.yaml (Danish) * New translations en-us.yaml (German) * New translations en-us.yaml (Greek) * New translations en-us.yaml (Finnish) * New translations en-us.yaml (Hebrew) * New translations en-us.yaml (Hungarian) * New translations en-us.yaml (Italian) * New translations en-us.yaml (Japanese) * New translations en-us.yaml (Georgian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Mongolian) * New translations en-us.yaml (Dutch) * New translations en-us.yaml (Polish) * New translations en-us.yaml (Portuguese) * New translations en-us.yaml (Slovak) * New translations en-us.yaml (Slovenian) * New translations en-us.yaml (Albanian) * New translations en-us.yaml (Swedish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Chinese Simplified) * New translations en-us.yaml (Chinese Traditional) * New translations en-us.yaml (Vietnamese) * New translations en-us.yaml (Icelandic) * New translations en-us.yaml (Portuguese, Brazilian) * New translations en-us.yaml (Indonesian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Spanish, Chile) * New translations en-us.yaml (Spanish, Mexico) * New translations en-us.yaml (Marathi) * New translations en-us.yaml (Thai) * New translations en-us.yaml (Croatian) * New translations en-us.yaml (Estonian) * New translations en-us.yaml (Azerbaijani) * New translations en-us.yaml (English, Canada) * New translations en-us.yaml (English, United Kingdom) * New translations en-us.yaml (French, Canada) * New translations en-us.yaml (Esperanto) * New translations en-us.yaml (Bosnian) * New translations en-us.yaml (Nepali) * New translations en-us.yaml (Kurmanji (Kurdish)) * New translations en-us.yaml (Sorani (Kurdish)) * New translations en-us.yaml (Spanish, Latin America) * Update source file en-US.yaml * New translations en-us.yaml (Persian) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Romanian) * New translations en-us.yaml (French) * New translations en-us.yaml (Spanish) * New translations en-us.yaml (Afrikaans) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Bulgarian) * New translations en-us.yaml (Catalan) * New translations en-us.yaml (Danish) * New translations en-us.yaml (German) * New translations en-us.yaml (Greek) * New translations en-us.yaml (Finnish) * New translations en-us.yaml (Hebrew) * New translations en-us.yaml (Hungarian) * New translations en-us.yaml (Italian) * New translations en-us.yaml (Japanese) * New translations en-us.yaml (Georgian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Mongolian) * New translations en-us.yaml (Dutch) * New translations en-us.yaml (Norwegian) * New translations en-us.yaml (Polish) * New translations en-us.yaml (Portuguese) * New translations en-us.yaml (Slovak) * New translations en-us.yaml (Slovenian) * New translations en-us.yaml (Albanian) * New translations en-us.yaml (Serbian (Cyrillic)) * New translations en-us.yaml (Swedish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Chinese Simplified) * New translations en-us.yaml (Chinese Traditional) * New translations en-us.yaml (Vietnamese) * New translations en-us.yaml (Icelandic) * New translations en-us.yaml (Portuguese, Brazilian) * New translations en-us.yaml (Indonesian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Spanish, Chile) * New translations en-us.yaml (Spanish, Mexico) * New translations en-us.yaml (Marathi) * New translations en-us.yaml (Thai) * New translations en-us.yaml (Croatian) * New translations en-us.yaml (Estonian) * New translations en-us.yaml (Malay) * New translations en-us.yaml (English, Canada) * New translations en-us.yaml (English, United Kingdom) * New translations en-us.yaml (French, Canada) * New translations en-us.yaml (Esperanto) * New translations en-us.yaml (Breton) * New translations en-us.yaml (Bosnian) * New translations en-us.yaml (Serbian (Latin)) * New translations en-us.yaml (Nepali) * New translations en-us.yaml (Kurmanji (Kurdish)) * New translations en-us.yaml (Sorani (Kurdish)) * New translations en-us.yaml (Spanish, Latin America) * Update source file en-US.yaml * Fix broken tests --------- Co-authored-by: Alex Gaillard <[email protected]> * Release 11.13.0 (#26114) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update changeset to include themes pkg * refactor message list scrolling * Rerender based on parts hash * Remove unused imports * Allow more models * cleanup tool markup * cleanup more * fix resizing * Remove unused import * Apply suggestion from @rijkvanzanten --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> Co-authored-by: Alex Gaillard <[email protected]> Co-authored-by: ian <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Delete .github/CODEOWNERS * Fix layout display dependant on item count request (#26045) * Fix itemCount dep for item display * add changeset * Update app/src/layouts/cards/cards.vue Co-authored-by: Alex Gaillard <[email protected]> * Update app/src/layouts/tabular/tabular.vue Co-authored-by: Alex Gaillard <[email protected]> * add pagination skeleton loader * only display skeleton if items are at least page limit * Prefer 3 skeletons over 1 * fix skeleton loader tests --------- Co-authored-by: Alex Gaillard <[email protected]> * Add loading indicator when saving setup forms (#26130) * Add loading indicator when saving * Rename instance to project for consistency * Add loading indicator when launching * Rename remaining instances * Add changeset * Remove invalid label * Remove accepted terms (#26135) * Remove accepted_terms * Add changeset --------- Co-authored-by: Alex Gaillard <[email protected]> * Add Error Handling (#26138) * error handling * retry vs regenerate * Update app/src/ai/components/ai-conversation.vue Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/components/ai-conversation.vue Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Add `defineTool` composable (#26140) * Don't send system prompt if it's empty * Remove unnecessary functions * Support dynamic tool registratoin * Create defineTool composable * Define form tools * Add tests * Update app/src/components/v-form/v-form.vue Co-authored-by: Copilot <[email protected]> * Update app/src/components/v-form/composables/use-input-schema.ts Co-authored-by: Copilot <[email protected]> * Update app/src/components/v-form/v-form.vue Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Add reset button (#26141) * Tweak sidebar min size * Move model selector out of chat input * Tweak spacing * Make it less button-y * Reduce hackiness * Add reset method * Add section subheader * Use reset * Reduce sidebar detail padding * Move ctx to bottom start * AI -> Reasoning message cleanup (#26145) * cleanup reasoning * fix fontsize * Only show reasoning summary once exists --------- Co-authored-by: Rijk van Zanten <[email protected]> * AI -> Improve rendering of messages (#26144) * cleanup message structure * fix mounting / unmount using id instead of hash * Tweak loading state * Tweak delays * Remove needless hash --------- Co-authored-by: Rijk van Zanten <[email protected]> * AI -> Add logos for model selector (#26142) * add logos to model selector * refactor * Update app/src/ai/components/logos/anthropic.vue Co-authored-by: Copilot <[email protected]> * Update app/src/ai/components/logos/openai.vue Co-authored-by: Copilot <[email protected]> * final answer * swap claude logo * Render divider in selector --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * Tweak spacing * AI -> Submit and Stop Button (#26150) * wip * refactor * handle reasoning errors on stop * hide messages without text * still show reasoning if streaming but no text * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Redo the sidebar (#26149) * [WIP] Remove info sidebar detail * [WIP] Style new accordion * Render ai sidebar detail at bottom * Add expand animation * Sidebar collapse/expand * Various tweaks and fixes * Fix transition states * Fix active state on navigate * Update app/src/modules/files/components/file-info-sidebar-detail.vue Co-authored-by: Copilot <[email protected]> * AI -> Submit and Stop Button (#26150) * wip * refactor * handle reasoning errors on stop * hide messages without text * still show reasoning if streaming but no text * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Re-add support for badge, fix other comments * Fix z-indexing * Persist ai chat active state * Move aiChat active state to ai store * Remove notes * Remove bak * fix revisions overflow * Resolve comment * Bump +1 boop * Add units to rotate 0 * Remove unused placement prop --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Bryant Gillespie <[email protected]> * Fix font size of layout options * Hack in empty state (#26151) * Add support for local tool display names * Fix server tools not being called * Add tooltip * Fix absolute positioned elements in scrolling container * AI -> Cleanup Tool Messages (#26163) * cleanup tool message part * match text message padding * drop content to 280px * Fix horizontal overflw * Update app/src/components/v-drawer.vue Co-authored-by: Copilot <[email protected]> * Update app/src/views/private/components/sidebar-detail.vue Co-authored-by: Bryant Gillespie <[email protected]> * Update app/src/components/v-drawer.vue Co-authored-by: Bryant Gillespie <[email protected]> * Remove old file * Update app/src/components/v-drawer.vue Co-authored-by: Bryant Gillespie <[email protected]> * Re-add activity link * Use hyphens for template ref * No small * Remove unused class * Only show sections when sidebar open * Only show notifications preview when bar is expanded * Expand sidebar on activity click * Please formatter, forgive my sins * Fix duplicate attributes * AI -> Chat Flow Improvements (#26185) * store chat open in local storage for refreshes * fix autoscrolling * move input to store and fix submission with enter * add meta j keyboard shortcut to open close ai chat * measure no longer needed * Fix button jumping on scroll * Replace watcher with event hook * Capture shortcut globally, add tooltip --------- Co-authored-by: Rijk van Zanten <[email protected]> * fix items prompt for ai tools (#26183) * Tweak scrolling behavior (#26211) * AI -> Fix failed tool calls (#26179) * add helper to ensure input in failed tool calls * use helper -- don't validate the tools themselves * fix reasoning message issues * add test suite * update chat controller tests * thanks copilot * Fix merge conflict whoopsies (#26214) * AI → Limit context usage (#26202) * Use : instead of / for model ids * Refactor to use full model definition * Calculate usage * Remove pro * Show context usage progress indicator * Remove unused package * Don't show context usage * Limit messages we're sending * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Remove unused comment * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * fix schemas for dates --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: bryantgillespie <[email protected]> * AI -> Message Styling (#26198) * store chat open in local storage for refreshes * fix autoscrolling * move input to store and fix submission with enter * add meta j keyboard shortcut to open close ai chat * measure no longer needed * increase message gap * cleanup message tool styling * fix padding and scrollbar on chat * refactor ai-message component to improve structure and styling; updated gap variable and added role prop to AiMessageText * message styling * add css animation on hover when not expanded * fix height transition * fix trailing space * add todo list focus * fix border radius for user messages * fix duped * remove unneeded watch * fix import order * animate text and icons only * Update app/src/ai/components/parts/ai-message-tool.vue Co-authored-by: Copilot <[email protected]> * Tweak spacing for loading indicator * Resolve translation comment * Magic is magic * Enough magic * Remove unused stuff * Resolve hardcoded reused msg height * Run formatter --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * Re-add notifications * AI -> Persist session using local storage (#26199) * persist current session * Use sessionstorage instead --------- Co-authored-by: Rijk van Zanten <[email protected]> * Run formatter * Tie AI access to app access (#26251) * Allow divider to overlap sticky headings in main (#26252) * Some Fixes for Split Panel (#26254) * use container queries for form * wip * back to percent * unwrap preview * fix type * unneeded setter * remove unneded function * cleaner compueted * its either 100 or 0 * Add changeset * Run formatter * Fix stylelint warning * Fix API typing of sanitizeQuery * AI → Refresh stores on system tool calls (#26253) * Refresh schema on system tool calls * Refactor relations store to setup * Add item refresh to all layouts * Add item refresh on detail view * Refresh fields on collection changes * AI → Re-enable notifications (#26250) * Render notifications outside of sidebar * Use absolute in split container * Fix animation * Render link to activity in notifications drawer * Add AI Chat sidebar ✨ (#26261) * Initial plan * Refactor test to use typed mockNext instead of inline vi.fn() for RequestHandler calls Co-authored-by: rijkvanzanten <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> * Happy now? * Resolve test issue * Make sure left/right panel close icons RTL * Resolve test issues * AI → Add soft-default for system prompt (#26268) * Add soft-default for system prompt * Update test to account for default value * update system prompt --------- Co-authored-by: bryantgillespie <[email protected]> Co-authored-by: Bryant Gillespie <[email protected]> * AI -> Tool Approval Functionality (#26265) * Refactor to tool card for approvals and web search tool (later) * update to ai sdk beta for tool approvals * add settings menu * adust padding for settings menu * update store * add approvals to chat request * stronger types * update controller * update send automatically when * run formatter * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * remove assets from translations for now * refactor approval options * tool card disabled * add icons to map as well * remove casting * fix double scroll bar * Apply suggestion from @Copilot Co-authored-by: Copilot <[email protected]> * Fix typing of stream call * Add enter key for translate shortcut * Translate keyboard shortcuts * Remove keyboard shortcuts * Use css vars * Use translated tool names --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * AI -> Hide when No Providers / Not Configured (#26269) * add beta * move header * add no provider empty states * translations --------- Co-authored-by: Rijk van Zanten <[email protected]> * Nudge nudge * I'm sorry. * Update .changeset/small-doodles-join.md Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/flows/components/logs-sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-resize-handle.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/layout-sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/marketplace/routes/registry/registry.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/system-logs/logs.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/system-logs/logs.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/interfaces/_system/system-owner/system-owner.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/skip-menu.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-form/composables/use-input-schema.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-form/composables/use-input-schema.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/ai/components/parts/ai-message-text.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/visual/components/editing-layer.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/visual/components/editing-layer.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-header-bar.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/notifications-drawer.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * search input: match header button height and refine styles with CSS variables (#26308) * add BREAKPOINTS constant and update private-view-root.vue to demonstrate example usage (#26310) * AI → Resolve review comments (#26290) * Add a smidge of padding * Add a pinch of flex * Stir in the drawing spacing * Re-add missing drawer close on mobile * Fix z-index of header bar * Tweak stacking order of search input * Resolve shadow showing up on nav on mobile * Only show tooltip when sidebar is closed * Drop shortcut * Nudge cancel button size and positioning * Make drawer buttons smaller * Fix input height in sidebar * Drop unused dependency * Change translation key * Add in type label tweaks * Tweak drawer title styling * Stick header bar at 0 * Tweak skeleton loader * Allow inline size to shrink * Fix missing import * Don't inherit attrs on private view * Collapse right sidebar when making window small * fix appearance * Tweak sizing of right rail * Don't deactivate on unmount * Fix right sidebar alignment * sidebar is closed and you try to open it by resizing while the preview split-panel is open * Re-add non-editable * Tweak revision styling * 💅 f l o r i a n * Refactor v-form ai usage to composable * Tweak spacing * Update import * Rename description to llmDescription * Use prop shorthands * Don't use flow sidebar detail in translations * Don't use unused prop * Move vars to top * Add comment * Remove unused ref * Drop navbar/sidebar from app store * Revert version menu * button type * Remove fullscreen * Use private view header bar actions * Fix custom icons not scaling * Remove unused css * Use class instead of id Don't you forget about the ˚₊‧꒰ა best practices ໒꒱ ‧₊˚ * Update input-hash component to conditionally set input type and autocomplete attributes based on masked state * revert fields user change * remove todos * Update app/src/components/v-drawer-header.vue Co-authored-by: Copilot <[email protected]> * Pass direction to split panel * Update split panel * Revert "Rename description to llmDescription" This reverts commit 162a6d5. * Solve name confusion with just comments * Update app/src/components/v-form/composables/use-ai-tools.ts Co-authored-by: Copilot <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Copilot <[email protected]> * Run formatter/linter --------- Co-authored-by: bryantgillespie <[email protected]> Co-authored-by: Copilot <[email protected]> * AI ← Spacing & responsive refinements (#26309) * introduce --form-column-min-width var * move container-type: inline-size to the form-grid mixin * set inline-size container query to 556px * adjust sidebar content padding to match sidebar toggle buttons * refine the project name padding so it optically matches the contents of the navigation bar * set --content-padding and --content-padding-bottom vars globally * refine spacing of item form * add top padding to content components * remove top margin in favor of added top padding * Tweak spacing a bit more --------- Co-authored-by: Rijk van Zanten <[email protected]> * Prettier doesn't agree sadly * Add changeset for stores package * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/ai/components/ai-sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Remove unused file * Icon sizes * Align drawer header with other header * Fix descender overflow * Re-add tooltip * AI ← Drawer & Header (#26317) * add Esc hint to cancel tooltip for consistency with the cancel button outside the drawer * adjust alignment of drawer cancel button to match header bar icons * prevent extra padding-right of forms in the drawer * ensure that title styles are applied to the drawer header * prevent the title text from being cut off in the header bar and the drawer header * Update app/src/views/private/private-view/components/private-view-header-bar.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * fix private view main * update docs link and system prompt help text * formatter * fix stylelint comments * AI -> Add Back Scroll Shadows but Better (#26313) * add scroll shadows to scroll container in private view * Update app/src/styles/themes/_dark.scss Co-authored-by: Copilot <[email protected]> * Update app/src/views/private/private-view/components/private-view.vue Co-authored-by: Copilot <[email protected]> * set to false instead of undefined --------- Co-authored-by: Copilot <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * render only split panel * Fix calendar/map view * fix header border mismatch for color match theme * Fix button size in field detail * Fix more drawer button sizes * borders are back * Fix map / calendar not resizing on sidebar size change * Run formatter * fix layout bottom * fix calendar * fizx tests * update test snapshot * use internal BREAKPOINTS const and remove redundant use of useBreakpoints (#26329) * fix form type imports * Update app/src/views/private/private-view/components/private-view-header-bar.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Florian C. Wachmann <[email protected]> * enforce map view shadows and fix initialization issue * remove unused line * fix border for color match themne * Tweak default * Revert input-hash changes, use new autocomplete prop * oops missed the import * AI ← Live Preview (#26330) * prevent iframe from loading when live preview is not active * add default live preview size as snap point so that we can easily resize to the default size * ensure that the live preview panel border only appears when not displayed at full width (mobile) * Run formatter * Add changeset * fix search input for mobile (#26331) * prevent submissions when pending tool call * AI ← Improve input focusing (#26334) * Focus on textarea when clicking within ai-input * Use text cursor * Fix cursor when disabled * fix max-width issue of search input on mobile (#26339) * AI ← A11y adjustments for Skip Menu and headline elements (#26337) * refactor SkipMenu usage so it appears next to its section * refactor SkipMenu keys to match section ID naming * ensure that sections accessed via the skip menu expand properly if they are collapsed * adjust the SkipMenu min-width to match the sidebar min-width * update tests * fix focus styles for headline elements * adjust positioning for mobile skip menu inside module navigation * add dynamic id binding to module navigation content for improved accessibility * Update app/src/views/private/components/skip-menu.vue Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * fix line-height in type-title mixin (#26341) * AI <- Hot Last Minute Quick Fixes (#26332) * close inline nav on route change * fix activator warnings * Update app/src/views/private/private-view/stores/nav-bar.ts Co-authored-by: Florian C. Wachmann <[email protected]> * pull in sidebar store --------- Co-authored-by: Florian C. Wachmann <[email protected]> * AI Chat <- Clears Messages and Settings on Sign Out (#26342) * clear messages and settings on signout * Add test coverage for AI store dehydrate function (#26343) * Initial plan * Add test coverage for dehydrate function in AI store Co-authored-by: rijkvanzanten <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> * Update .changeset/short-lamps-hunt.md Co-authored-by: Florian C. Wachmann <[email protected]> * Add AI Telemetry (#26347) * Add AI-related fields to telemetry * Include AI-related fields in tests * Use AI suggestion --------- Co-authored-by: Bryant Gillespie <[email protected]> Co-authored-by: daedalus <[email protected]> Co-authored-by: Nitwel <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> Co-authored-by: Alex Gaillard <[email protected]> Co-authored-by: ian <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Gerard Lamusse <[email protected]> Co-authored-by: bryantgillespie <[email protected]> Co-authored-by: Florian C. Wachmann <[email protected]> Co-authored-by: Connor Winston <[email protected]>
* Install vue split panel * Recreate private-view * Persist size * Setup headerbar * Add collapse expand * Add resize handle * Remove tw cruft * Hack in right sidebar * Fix right sidebar expand/collapse * Fix content spacing * Tweak scrolling containers, fix header shadow * Remove margins * Make nav responsive * Nav toggles, remove latency * Finish basic responsiveness * Bry/split panel tiny twak (#25967) * really missed the e in that branch name * all the small thi..buttons --------- Co-authored-by: Rijk van Zanten <[email protected]> * Style expand button * Tweak sizing of icons * Reduce search input sizing * Remove margin from children * Tweak header bar layout * Remove page icons * Tweak responsive breakpoints * Add support for icons * Tweak spacing * they're back but as props this time (#25987) * Fix z-index * Header Bar to V Drawer Header Bar (#25988) * they're back but as props this time * rename to v-drawer header * refactor to match private-view-header-bar pattern * remove small header and header shadow props on private view * Drop small prop from v-drawer-header * Remove primary action item --------- Co-authored-by: Rijk van Zanten <[email protected]> * Added `directus_comments` and `directus_extensions` to websocket subscriptions (#25464) * utilize system data for registering system module subscriptions * add changeset * update changeset wording --------- Co-authored-by: Rijk van Zanten <[email protected]> Co-authored-by: Nitwel <[email protected]> * Speed up dialogs a bit * Add top padding in collections * Re-add support for custom header border * Slow down tooltips * Responsiveness for header bar * Recreate lockfile * Add changeset * Run formatter * Fix linter warnings * Add encryption support to special flags (#26096) * Warn on secret values shorter than 32 bytes * Warn on byte instead of string length * Add encrypt/decrypt logic * Add encrypt special flag support * Rework encryption to use version envelope * Format * Pass accountability to payload service * Return decrypted value to system calls * Fix tampered test * Add basic AI settings (#26097) * Add ai settings * Run formatter * Add heading and notice * Feat/refactor mcp (#26098) * Refactor MCP into AI folder * Run formatter * Format translation * Add dirname definitions * Add ai/chat endpoint (#26104) * Setup AI SDK endpoint * Add tests * Fix test quirks * Implement tool support in chat endpoint (#26116) * Add ai chat tool usage * Gen in some tests * Add json schema validation * Update api/src/ai/chat/utils/chat-request-tool-to-ai-sdk-tool.ts Co-authored-by: Copilot <[email protected]> * Refactor DRY --------- Co-authored-by: Copilot <[email protected]> * Regen pnpmlock * Update changeset to include themes pkg * Feat/ai system prompt (#26124) * Add system prompt setting * Load middleware setting * Add translatoins * Allow passing systemprompt to createuimessages * Pass system prompt from ai settings * AI -> Add base layer AI UI components (#26115) * components * add ai sidebar to item route * rough in ai model selector * rough - ai-input * mock message * add reka-ui * move to ai folder * ai sdk vue * model selector refactor * shrink padding * quick cleanup * shorten model list * install rest of ai sdk * ai message parts * refactor text area * ai store * update sidebar * fix deps mismatch * delete step * update models to long form (again) * refactor to pinia store * remove tools stuff for now * add openai reasoning detailed * Update app/src/ai/components/ai-sidebar-detail.vue Co-authored-by: Copilot <[email protected]> * fix whitespace * fix em up * make max width 600 px * fix sidebar scroll * fix packages * fix reka-ui * cleanup message list * cleanup message * cleanup margins and unused css vars * start reasoning open and then close when done * refactor message list animation * add reasoning translations * refactor out scss * remove progress bar * model selector * ai sidebar detail * fix styling of message text * refactor out variants in favor of simple role basis * fix extra space * remove unneeded variant * refactor side prop * replace spread with backwards loop * fixes 1 * Move reka to devDependencies * Logical properties * Run stylelint * convert to rem * back to pickles * Clean up multi-line tracking * Use transition variables * Use lodash throttle * Use v-bind for css var * Use $t instead of usei18n * computed * textarea magic * Only show models from configured providers * message tool translation * Use transition vars * Use vars for transition * fix dupe * remove opacity * refactor reasonign * add back empty tools array * Refactor AI model selector dropdown to use transitions instead of keyframe animations (#26122) * Initial plan * Refactor dropdown animation to use transitions instead of keyframes Co-authored-by: rijkvanzanten <[email protected]> * Update app/src/ai/components/ai-model-selector.vue * Update app/src/ai/components/ai-model-selector.vue --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * fix animation * refactor model selector to use vmenu * New Crowdin updates (#25908) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Portuguese) * New translations en-us.yaml (Albanian) * Update source file en-US.yaml * New translations en-us.yaml (Persian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (French) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (French) * New translations en-us.yaml (French, Canada) * Update source file en-US.yaml * New translations en-us.yaml (Korean) * Update source file en-US.yaml * New translations en-us.yaml (Persian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Persian) * Update source file en-US.yaml * New translations en-us.yaml (Russian) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Romanian) * New translations en-us.yaml (French) * New translations en-us.yaml (Spanish) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Bulgarian) * New translations en-us.yaml (Catalan) * New translations en-us.yaml (Danish) * New translations en-us.yaml (German) * New translations en-us.yaml (Greek) * New translations en-us.yaml (Finnish) * New translations en-us.yaml (Hebrew) * New translations en-us.yaml (Hungarian) * New translations en-us.yaml (Italian) * New translations en-us.yaml (Japanese) * New translations en-us.yaml (Georgian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Mongolian) * New translations en-us.yaml (Dutch) * New translations en-us.yaml (Polish) * New translations en-us.yaml (Portuguese) * New translations en-us.yaml (Slovak) * New translations en-us.yaml (Slovenian) * New translations en-us.yaml (Albanian) * New translations en-us.yaml (Swedish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Chinese Simplified) * New translations en-us.yaml (Chinese Traditional) * New translations en-us.yaml (Vietnamese) * New translations en-us.yaml (Icelandic) * New translations en-us.yaml (Portuguese, Brazilian) * New translations en-us.yaml (Indonesian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Spanish, Chile) * New translations en-us.yaml (Spanish, Mexico) * New translations en-us.yaml (Marathi) * New translations en-us.yaml (Thai) * New translations en-us.yaml (Croatian) * New translations en-us.yaml (Estonian) * New translations en-us.yaml (Azerbaijani) * New translations en-us.yaml (English, Canada) * New translations en-us.yaml (English, United Kingdom) * New translations en-us.yaml (French, Canada) * New translations en-us.yaml (Esperanto) * New translations en-us.yaml (Bosnian) * New translations en-us.yaml (Nepali) * New translations en-us.yaml (Kurmanji (Kurdish)) * New translations en-us.yaml (Sorani (Kurdish)) * New translations en-us.yaml (Spanish, Latin America) * Update source file en-US.yaml * New translations en-us.yaml (Persian) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Romanian) * New translations en-us.yaml (French) * New translations en-us.yaml (Spanish) * New translations en-us.yaml (Afrikaans) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Bulgarian) * New translations en-us.yaml (Catalan) * New translations en-us.yaml (Danish) * New translations en-us.yaml (German) * New translations en-us.yaml (Greek) * New translations en-us.yaml (Finnish) * New translations en-us.yaml (Hebrew) * New translations en-us.yaml (Hungarian) * New translations en-us.yaml (Italian) * New translations en-us.yaml (Japanese) * New translations en-us.yaml (Georgian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Mongolian) * New translations en-us.yaml (Dutch) * New translations en-us.yaml (Norwegian) * New translations en-us.yaml (Polish) * New translations en-us.yaml (Portuguese) * New translations en-us.yaml (Slovak) * New translations en-us.yaml (Slovenian) * New translations en-us.yaml (Albanian) * New translations en-us.yaml (Serbian (Cyrillic)) * New translations en-us.yaml (Swedish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Chinese Simplified) * New translations en-us.yaml (Chinese Traditional) * New translations en-us.yaml (Vietnamese) * New translations en-us.yaml (Icelandic) * New translations en-us.yaml (Portuguese, Brazilian) * New translations en-us.yaml (Indonesian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Spanish, Chile) * New translations en-us.yaml (Spanish, Mexico) * New translations en-us.yaml (Marathi) * New translations en-us.yaml (Thai) * New translations en-us.yaml (Croatian) * New translations en-us.yaml (Estonian) * New translations en-us.yaml (Malay) * New translations en-us.yaml (English, Canada) * New translations en-us.yaml (English, United Kingdom) * New translations en-us.yaml (French, Canada) * New translations en-us.yaml (Esperanto) * New translations en-us.yaml (Breton) * New translations en-us.yaml (Bosnian) * New translations en-us.yaml (Serbian (Latin)) * New translations en-us.yaml (Nepali) * New translations en-us.yaml (Kurmanji (Kurdish)) * New translations en-us.yaml (Sorani (Kurdish)) * New translations en-us.yaml (Spanish, Latin America) * Update source file en-US.yaml * Fix broken tests --------- Co-authored-by: Alex Gaillard <[email protected]> * Release 11.13.0 (#26114) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update changeset to include themes pkg * refactor message list scrolling * Rerender based on parts hash * Remove unused imports * Allow more models * cleanup tool markup * cleanup more * fix resizing * Remove unused import * Apply suggestion from @rijkvanzanten --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> Co-authored-by: Alex Gaillard <[email protected]> Co-authored-by: ian <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Delete .github/CODEOWNERS * Fix layout display dependant on item count request (#26045) * Fix itemCount dep for item display * add changeset * Update app/src/layouts/cards/cards.vue Co-authored-by: Alex Gaillard <[email protected]> * Update app/src/layouts/tabular/tabular.vue Co-authored-by: Alex Gaillard <[email protected]> * add pagination skeleton loader * only display skeleton if items are at least page limit * Prefer 3 skeletons over 1 * fix skeleton loader tests --------- Co-authored-by: Alex Gaillard <[email protected]> * Add loading indicator when saving setup forms (#26130) * Add loading indicator when saving * Rename instance to project for consistency * Add loading indicator when launching * Rename remaining instances * Add changeset * Remove invalid label * Remove accepted terms (#26135) * Remove accepted_terms * Add changeset --------- Co-authored-by: Alex Gaillard <[email protected]> * Add Error Handling (#26138) * error handling * retry vs regenerate * Update app/src/ai/components/ai-conversation.vue Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/components/ai-conversation.vue Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Add `defineTool` composable (#26140) * Don't send system prompt if it's empty * Remove unnecessary functions * Support dynamic tool registratoin * Create defineTool composable * Define form tools * Add tests * Update app/src/components/v-form/v-form.vue Co-authored-by: Copilot <[email protected]> * Update app/src/components/v-form/composables/use-input-schema.ts Co-authored-by: Copilot <[email protected]> * Update app/src/components/v-form/v-form.vue Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Add reset button (#26141) * Tweak sidebar min size * Move model selector out of chat input * Tweak spacing * Make it less button-y * Reduce hackiness * Add reset method * Add section subheader * Use reset * Reduce sidebar detail padding * Move ctx to bottom start * AI -> Reasoning message cleanup (#26145) * cleanup reasoning * fix fontsize * Only show reasoning summary once exists --------- Co-authored-by: Rijk van Zanten <[email protected]> * AI -> Improve rendering of messages (#26144) * cleanup message structure * fix mounting / unmount using id instead of hash * Tweak loading state * Tweak delays * Remove needless hash --------- Co-authored-by: Rijk van Zanten <[email protected]> * AI -> Add logos for model selector (#26142) * add logos to model selector * refactor * Update app/src/ai/components/logos/anthropic.vue Co-authored-by: Copilot <[email protected]> * Update app/src/ai/components/logos/openai.vue Co-authored-by: Copilot <[email protected]> * final answer * swap claude logo * Render divider in selector --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * Tweak spacing * AI -> Submit and Stop Button (#26150) * wip * refactor * handle reasoning errors on stop * hide messages without text * still show reasoning if streaming but no text * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Redo the sidebar (#26149) * [WIP] Remove info sidebar detail * [WIP] Style new accordion * Render ai sidebar detail at bottom * Add expand animation * Sidebar collapse/expand * Various tweaks and fixes * Fix transition states * Fix active state on navigate * Update app/src/modules/files/components/file-info-sidebar-detail.vue Co-authored-by: Copilot <[email protected]> * AI -> Submit and Stop Button (#26150) * wip * refactor * handle reasoning errors on stop * hide messages without text * still show reasoning if streaming but no text * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Re-add support for badge, fix other comments * Fix z-indexing * Persist ai chat active state * Move aiChat active state to ai store * Remove notes * Remove bak * fix revisions overflow * Resolve comment * Bump +1 boop * Add units to rotate 0 * Remove unused placement prop --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Bryant Gillespie <[email protected]> * Fix font size of layout options * Hack in empty state (#26151) * Add support for local tool display names * Fix server tools not being called * Add tooltip * Fix absolute positioned elements in scrolling container * AI -> Cleanup Tool Messages (#26163) * cleanup tool message part * match text message padding * drop content to 280px * Fix horizontal overflw * Update app/src/components/v-drawer.vue Co-authored-by: Copilot <[email protected]> * Update app/src/views/private/components/sidebar-detail.vue Co-authored-by: Bryant Gillespie <[email protected]> * Update app/src/components/v-drawer.vue Co-authored-by: Bryant Gillespie <[email protected]> * Remove old file * Update app/src/components/v-drawer.vue Co-authored-by: Bryant Gillespie <[email protected]> * Re-add activity link * Use hyphens for template ref * No small * Remove unused class * Only show sections when sidebar open * Only show notifications preview when bar is expanded * Expand sidebar on activity click * Please formatter, forgive my sins * Fix duplicate attributes * AI -> Chat Flow Improvements (#26185) * store chat open in local storage for refreshes * fix autoscrolling * move input to store and fix submission with enter * add meta j keyboard shortcut to open close ai chat * measure no longer needed * Fix button jumping on scroll * Replace watcher with event hook * Capture shortcut globally, add tooltip --------- Co-authored-by: Rijk van Zanten <[email protected]> * fix items prompt for ai tools (#26183) * Tweak scrolling behavior (#26211) * AI -> Fix failed tool calls (#26179) * add helper to ensure input in failed tool calls * use helper -- don't validate the tools themselves * fix reasoning message issues * add test suite * update chat controller tests * thanks copilot * Fix merge conflict whoopsies (#26214) * AI → Limit context usage (#26202) * Use : instead of / for model ids * Refactor to use full model definition * Calculate usage * Remove pro * Show context usage progress indicator * Remove unused package * Don't show context usage * Limit messages we're sending * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Remove unused comment * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * fix schemas for dates --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: bryantgillespie <[email protected]> * AI -> Message Styling (#26198) * store chat open in local storage for refreshes * fix autoscrolling * move input to store and fix submission with enter * add meta j keyboard shortcut to open close ai chat * measure no longer needed * increase message gap * cleanup message tool styling * fix padding and scrollbar on chat * refactor ai-message component to improve structure and styling; updated gap variable and added role prop to AiMessageText * message styling * add css animation on hover when not expanded * fix height transition * fix trailing space * add todo list focus * fix border radius for user messages * fix duped * remove unneeded watch * fix import order * animate text and icons only * Update app/src/ai/components/parts/ai-message-tool.vue Co-authored-by: Copilot <[email protected]> * Tweak spacing for loading indicator * Resolve translation comment * Magic is magic * Enough magic * Remove unused stuff * Resolve hardcoded reused msg height * Run formatter --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * Re-add notifications * AI -> Persist session using local storage (#26199) * persist current session * Use sessionstorage instead --------- Co-authored-by: Rijk van Zanten <[email protected]> * Run formatter * Tie AI access to app access (#26251) * Allow divider to overlap sticky headings in main (#26252) * Some Fixes for Split Panel (#26254) * use container queries for form * wip * back to percent * unwrap preview * fix type * unneeded setter * remove unneded function * cleaner compueted * its either 100 or 0 * Add changeset * Run formatter * Fix stylelint warning * Fix API typing of sanitizeQuery * AI → Refresh stores on system tool calls (#26253) * Refresh schema on system tool calls * Refactor relations store to setup * Add item refresh to all layouts * Add item refresh on detail view * Refresh fields on collection changes * AI → Re-enable notifications (#26250) * Render notifications outside of sidebar * Use absolute in split container * Fix animation * Render link to activity in notifications drawer * Add AI Chat sidebar ✨ (#26261) * Initial plan * Refactor test to use typed mockNext instead of inline vi.fn() for RequestHandler calls Co-authored-by: rijkvanzanten <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> * Happy now? * Resolve test issue * Make sure left/right panel close icons RTL * Resolve test issues * AI → Add soft-default for system prompt (#26268) * Add soft-default for system prompt * Update test to account for default value * update system prompt --------- Co-authored-by: bryantgillespie <[email protected]> Co-authored-by: Bryant Gillespie <[email protected]> * AI -> Tool Approval Functionality (#26265) * Refactor to tool card for approvals and web search tool (later) * update to ai sdk beta for tool approvals * add settings menu * adust padding for settings menu * update store * add approvals to chat request * stronger types * update controller * update send automatically when * run formatter * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * remove assets from translations for now * refactor approval options * tool card disabled * add icons to map as well * remove casting * fix double scroll bar * Apply suggestion from @Copilot Co-authored-by: Copilot <[email protected]> * Fix typing of stream call * Add enter key for translate shortcut * Translate keyboard shortcuts * Remove keyboard shortcuts * Use css vars * Use translated tool names --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * AI -> Hide when No Providers / Not Configured (#26269) * add beta * move header * add no provider empty states * translations --------- Co-authored-by: Rijk van Zanten <[email protected]> * Nudge nudge * I'm sorry. * Update .changeset/small-doodles-join.md Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/flows/components/logs-sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-resize-handle.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/layout-sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/marketplace/routes/registry/registry.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/system-logs/logs.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/system-logs/logs.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/interfaces/_system/system-owner/system-owner.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/skip-menu.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-form/composables/use-input-schema.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-form/composables/use-input-schema.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/ai/components/parts/ai-message-text.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/visual/components/editing-layer.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/visual/components/editing-layer.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-header-bar.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/notifications-drawer.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * search input: match header button height and refine styles with CSS variables (#26308) * add BREAKPOINTS constant and update private-view-root.vue to demonstrate example usage (#26310) * AI → Resolve review comments (#26290) * Add a smidge of padding * Add a pinch of flex * Stir in the drawing spacing * Re-add missing drawer close on mobile * Fix z-index of header bar * Tweak stacking order of search input * Resolve shadow showing up on nav on mobile * Only show tooltip when sidebar is closed * Drop shortcut * Nudge cancel button size and positioning * Make drawer buttons smaller * Fix input height in sidebar * Drop unused dependency * Change translation key * Add in type label tweaks * Tweak drawer title styling * Stick header bar at 0 * Tweak skeleton loader * Allow inline size to shrink * Fix missing import * Don't inherit attrs on private view * Collapse right sidebar when making window small * fix appearance * Tweak sizing of right rail * Don't deactivate on unmount * Fix right sidebar alignment * sidebar is closed and you try to open it by resizing while the preview split-panel is open * Re-add non-editable * Tweak revision styling * 💅 f l o r i a n * Refactor v-form ai usage to composable * Tweak spacing * Update import * Rename description to llmDescription * Use prop shorthands * Don't use flow sidebar detail in translations * Don't use unused prop * Move vars to top * Add comment * Remove unused ref * Drop navbar/sidebar from app store * Revert version menu * button type * Remove fullscreen * Use private view header bar actions * Fix custom icons not scaling * Remove unused css * Use class instead of id Don't you forget about the ˚₊‧꒰ა best practices ໒꒱ ‧₊˚ * Update input-hash component to conditionally set input type and autocomplete attributes based on masked state * revert fields user change * remove todos * Update app/src/components/v-drawer-header.vue Co-authored-by: Copilot <[email protected]> * Pass direction to split panel * Update split panel * Revert "Rename description to llmDescription" This reverts commit 162a6d5. * Solve name confusion with just comments * Update app/src/components/v-form/composables/use-ai-tools.ts Co-authored-by: Copilot <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Copilot <[email protected]> * Run formatter/linter --------- Co-authored-by: bryantgillespie <[email protected]> Co-authored-by: Copilot <[email protected]> * AI ← Spacing & responsive refinements (#26309) * introduce --form-column-min-width var * move container-type: inline-size to the form-grid mixin * set inline-size container query to 556px * adjust sidebar content padding to match sidebar toggle buttons * refine the project name padding so it optically matches the contents of the navigation bar * set --content-padding and --content-padding-bottom vars globally * refine spacing of item form * add top padding to content components * remove top margin in favor of added top padding * Tweak spacing a bit more --------- Co-authored-by: Rijk van Zanten <[email protected]> * Prettier doesn't agree sadly * Add changeset for stores package * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/ai/components/ai-sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Remove unused file * Icon sizes * Align drawer header with other header * Fix descender overflow * Re-add tooltip * AI ← Drawer & Header (#26317) * add Esc hint to cancel tooltip for consistency with the cancel button outside the drawer * adjust alignment of drawer cancel button to match header bar icons * prevent extra padding-right of forms in the drawer * ensure that title styles are applied to the drawer header * prevent the title text from being cut off in the header bar and the drawer header * Update app/src/views/private/private-view/components/private-view-header-bar.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * fix private view main * update docs link and system prompt help text * formatter * fix stylelint comments * AI -> Add Back Scroll Shadows but Better (#26313) * add scroll shadows to scroll container in private view * Update app/src/styles/themes/_dark.scss Co-authored-by: Copilot <[email protected]> * Update app/src/views/private/private-view/components/private-view.vue Co-authored-by: Copilot <[email protected]> * set to false instead of undefined --------- Co-authored-by: Copilot <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * render only split panel * Fix calendar/map view * fix header border mismatch for color match theme * Fix button size in field detail * Fix more drawer button sizes * borders are back * Fix map / calendar not resizing on sidebar size change * Run formatter * fix layout bottom * fix calendar * fizx tests * update test snapshot * use internal BREAKPOINTS const and remove redundant use of useBreakpoints (#26329) * fix form type imports * Update app/src/views/private/private-view/components/private-view-header-bar.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Florian C. Wachmann <[email protected]> * enforce map view shadows and fix initialization issue * remove unused line * fix border for color match themne * Tweak default * Revert input-hash changes, use new autocomplete prop * oops missed the import * AI ← Live Preview (#26330) * prevent iframe from loading when live preview is not active * add default live preview size as snap point so that we can easily resize to the default size * ensure that the live preview panel border only appears when not displayed at full width (mobile) * Run formatter * Add changeset * fix search input for mobile (#26331) * prevent submissions when pending tool call * AI ← Improve input focusing (#26334) * Focus on textarea when clicking within ai-input * Use text cursor * Fix cursor when disabled * fix max-width issue of search input on mobile (#26339) * AI ← A11y adjustments for Skip Menu and headline elements (#26337) * refactor SkipMenu usage so it appears next to its section * refactor SkipMenu keys to match section ID naming * ensure that sections accessed via the skip menu expand properly if they are collapsed * adjust the SkipMenu min-width to match the sidebar min-width * update tests * fix focus styles for headline elements * adjust positioning for mobile skip menu inside module navigation * add dynamic id binding to module navigation content for improved accessibility * Update app/src/views/private/components/skip-menu.vue Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * fix line-height in type-title mixin (#26341) * AI <- Hot Last Minute Quick Fixes (#26332) * close inline nav on route change * fix activator warnings * Update app/src/views/private/private-view/stores/nav-bar.ts Co-authored-by: Florian C. Wachmann <[email protected]> * pull in sidebar store --------- Co-authored-by: Florian C. Wachmann <[email protected]> * AI Chat <- Clears Messages and Settings on Sign Out (#26342) * clear messages and settings on signout * Add test coverage for AI store dehydrate function (#26343) * Initial plan * Add test coverage for dehydrate function in AI store Co-authored-by: rijkvanzanten <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> * Update .changeset/short-lamps-hunt.md Co-authored-by: Florian C. Wachmann <[email protected]> * Add AI Telemetry (#26347) * Add AI-related fields to telemetry * Include AI-related fields in tests * Use AI suggestion --------- Co-authored-by: Bryant Gillespie <[email protected]> Co-authored-by: daedalus <[email protected]> Co-authored-by: Nitwel <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> Co-authored-by: Alex Gaillard <[email protected]> Co-authored-by: ian <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Gerard Lamusse <[email protected]> Co-authored-by: bryantgillespie <[email protected]> Co-authored-by: Florian C. Wachmann <[email protected]> Co-authored-by: Connor Winston <[email protected]>
* Install vue split panel * Recreate private-view * Persist size * Setup headerbar * Add collapse expand * Add resize handle * Remove tw cruft * Hack in right sidebar * Fix right sidebar expand/collapse * Fix content spacing * Tweak scrolling containers, fix header shadow * Remove margins * Make nav responsive * Nav toggles, remove latency * Finish basic responsiveness * Bry/split panel tiny twak (directus#25967) * really missed the e in that branch name * all the small thi..buttons --------- Co-authored-by: Rijk van Zanten <[email protected]> * Style expand button * Tweak sizing of icons * Reduce search input sizing * Remove margin from children * Tweak header bar layout * Remove page icons * Tweak responsive breakpoints * Add support for icons * Tweak spacing * they're back but as props this time (directus#25987) * Fix z-index * Header Bar to V Drawer Header Bar (directus#25988) * they're back but as props this time * rename to v-drawer header * refactor to match private-view-header-bar pattern * remove small header and header shadow props on private view * Drop small prop from v-drawer-header * Remove primary action item --------- Co-authored-by: Rijk van Zanten <[email protected]> * Added `directus_comments` and `directus_extensions` to websocket subscriptions (directus#25464) * utilize system data for registering system module subscriptions * add changeset * update changeset wording --------- Co-authored-by: Rijk van Zanten <[email protected]> Co-authored-by: Nitwel <[email protected]> * Speed up dialogs a bit * Add top padding in collections * Re-add support for custom header border * Slow down tooltips * Responsiveness for header bar * Recreate lockfile * Add changeset * Run formatter * Fix linter warnings * Add encryption support to special flags (directus#26096) * Warn on secret values shorter than 32 bytes * Warn on byte instead of string length * Add encrypt/decrypt logic * Add encrypt special flag support * Rework encryption to use version envelope * Format * Pass accountability to payload service * Return decrypted value to system calls * Fix tampered test * Add basic AI settings (directus#26097) * Add ai settings * Run formatter * Add heading and notice * Feat/refactor mcp (directus#26098) * Refactor MCP into AI folder * Run formatter * Format translation * Add dirname definitions * Add ai/chat endpoint (directus#26104) * Setup AI SDK endpoint * Add tests * Fix test quirks * Implement tool support in chat endpoint (directus#26116) * Add ai chat tool usage * Gen in some tests * Add json schema validation * Update api/src/ai/chat/utils/chat-request-tool-to-ai-sdk-tool.ts Co-authored-by: Copilot <[email protected]> * Refactor DRY --------- Co-authored-by: Copilot <[email protected]> * Regen pnpmlock * Update changeset to include themes pkg * Feat/ai system prompt (directus#26124) * Add system prompt setting * Load middleware setting * Add translatoins * Allow passing systemprompt to createuimessages * Pass system prompt from ai settings * AI -> Add base layer AI UI components (directus#26115) * components * add ai sidebar to item route * rough in ai model selector * rough - ai-input * mock message * add reka-ui * move to ai folder * ai sdk vue * model selector refactor * shrink padding * quick cleanup * shorten model list * install rest of ai sdk * ai message parts * refactor text area * ai store * update sidebar * fix deps mismatch * delete step * update models to long form (again) * refactor to pinia store * remove tools stuff for now * add openai reasoning detailed * Update app/src/ai/components/ai-sidebar-detail.vue Co-authored-by: Copilot <[email protected]> * fix whitespace * fix em up * make max width 600 px * fix sidebar scroll * fix packages * fix reka-ui * cleanup message list * cleanup message * cleanup margins and unused css vars * start reasoning open and then close when done * refactor message list animation * add reasoning translations * refactor out scss * remove progress bar * model selector * ai sidebar detail * fix styling of message text * refactor out variants in favor of simple role basis * fix extra space * remove unneeded variant * refactor side prop * replace spread with backwards loop * fixes 1 * Move reka to devDependencies * Logical properties * Run stylelint * convert to rem * back to pickles * Clean up multi-line tracking * Use transition variables * Use lodash throttle * Use v-bind for css var * Use $t instead of usei18n * computed * textarea magic * Only show models from configured providers * message tool translation * Use transition vars * Use vars for transition * fix dupe * remove opacity * refactor reasonign * add back empty tools array * Refactor AI model selector dropdown to use transitions instead of keyframe animations (directus#26122) * Initial plan * Refactor dropdown animation to use transitions instead of keyframes Co-authored-by: rijkvanzanten <[email protected]> * Update app/src/ai/components/ai-model-selector.vue * Update app/src/ai/components/ai-model-selector.vue --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * fix animation * refactor model selector to use vmenu * New Crowdin updates (directus#25908) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Portuguese) * New translations en-us.yaml (Albanian) * Update source file en-US.yaml * New translations en-us.yaml (Persian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (French) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (French) * New translations en-us.yaml (French, Canada) * Update source file en-US.yaml * New translations en-us.yaml (Korean) * Update source file en-US.yaml * New translations en-us.yaml (Persian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Persian) * Update source file en-US.yaml * New translations en-us.yaml (Russian) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Romanian) * New translations en-us.yaml (French) * New translations en-us.yaml (Spanish) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Bulgarian) * New translations en-us.yaml (Catalan) * New translations en-us.yaml (Danish) * New translations en-us.yaml (German) * New translations en-us.yaml (Greek) * New translations en-us.yaml (Finnish) * New translations en-us.yaml (Hebrew) * New translations en-us.yaml (Hungarian) * New translations en-us.yaml (Italian) * New translations en-us.yaml (Japanese) * New translations en-us.yaml (Georgian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Mongolian) * New translations en-us.yaml (Dutch) * New translations en-us.yaml (Polish) * New translations en-us.yaml (Portuguese) * New translations en-us.yaml (Slovak) * New translations en-us.yaml (Slovenian) * New translations en-us.yaml (Albanian) * New translations en-us.yaml (Swedish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Chinese Simplified) * New translations en-us.yaml (Chinese Traditional) * New translations en-us.yaml (Vietnamese) * New translations en-us.yaml (Icelandic) * New translations en-us.yaml (Portuguese, Brazilian) * New translations en-us.yaml (Indonesian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Spanish, Chile) * New translations en-us.yaml (Spanish, Mexico) * New translations en-us.yaml (Marathi) * New translations en-us.yaml (Thai) * New translations en-us.yaml (Croatian) * New translations en-us.yaml (Estonian) * New translations en-us.yaml (Azerbaijani) * New translations en-us.yaml (English, Canada) * New translations en-us.yaml (English, United Kingdom) * New translations en-us.yaml (French, Canada) * New translations en-us.yaml (Esperanto) * New translations en-us.yaml (Bosnian) * New translations en-us.yaml (Nepali) * New translations en-us.yaml (Kurmanji (Kurdish)) * New translations en-us.yaml (Sorani (Kurdish)) * New translations en-us.yaml (Spanish, Latin America) * Update source file en-US.yaml * New translations en-us.yaml (Persian) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Romanian) * New translations en-us.yaml (French) * New translations en-us.yaml (Spanish) * New translations en-us.yaml (Afrikaans) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Bulgarian) * New translations en-us.yaml (Catalan) * New translations en-us.yaml (Danish) * New translations en-us.yaml (German) * New translations en-us.yaml (Greek) * New translations en-us.yaml (Finnish) * New translations en-us.yaml (Hebrew) * New translations en-us.yaml (Hungarian) * New translations en-us.yaml (Italian) * New translations en-us.yaml (Japanese) * New translations en-us.yaml (Georgian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Mongolian) * New translations en-us.yaml (Dutch) * New translations en-us.yaml (Norwegian) * New translations en-us.yaml (Polish) * New translations en-us.yaml (Portuguese) * New translations en-us.yaml (Slovak) * New translations en-us.yaml (Slovenian) * New translations en-us.yaml (Albanian) * New translations en-us.yaml (Serbian (Cyrillic)) * New translations en-us.yaml (Swedish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Chinese Simplified) * New translations en-us.yaml (Chinese Traditional) * New translations en-us.yaml (Vietnamese) * New translations en-us.yaml (Icelandic) * New translations en-us.yaml (Portuguese, Brazilian) * New translations en-us.yaml (Indonesian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Spanish, Chile) * New translations en-us.yaml (Spanish, Mexico) * New translations en-us.yaml (Marathi) * New translations en-us.yaml (Thai) * New translations en-us.yaml (Croatian) * New translations en-us.yaml (Estonian) * New translations en-us.yaml (Malay) * New translations en-us.yaml (English, Canada) * New translations en-us.yaml (English, United Kingdom) * New translations en-us.yaml (French, Canada) * New translations en-us.yaml (Esperanto) * New translations en-us.yaml (Breton) * New translations en-us.yaml (Bosnian) * New translations en-us.yaml (Serbian (Latin)) * New translations en-us.yaml (Nepali) * New translations en-us.yaml (Kurmanji (Kurdish)) * New translations en-us.yaml (Sorani (Kurdish)) * New translations en-us.yaml (Spanish, Latin America) * Update source file en-US.yaml * Fix broken tests --------- Co-authored-by: Alex Gaillard <[email protected]> * Release 11.13.0 (directus#26114) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update changeset to include themes pkg * refactor message list scrolling * Rerender based on parts hash * Remove unused imports * Allow more models * cleanup tool markup * cleanup more * fix resizing * Remove unused import * Apply suggestion from @rijkvanzanten --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> Co-authored-by: Alex Gaillard <[email protected]> Co-authored-by: ian <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Delete .github/CODEOWNERS * Fix layout display dependant on item count request (directus#26045) * Fix itemCount dep for item display * add changeset * Update app/src/layouts/cards/cards.vue Co-authored-by: Alex Gaillard <[email protected]> * Update app/src/layouts/tabular/tabular.vue Co-authored-by: Alex Gaillard <[email protected]> * add pagination skeleton loader * only display skeleton if items are at least page limit * Prefer 3 skeletons over 1 * fix skeleton loader tests --------- Co-authored-by: Alex Gaillard <[email protected]> * Add loading indicator when saving setup forms (directus#26130) * Add loading indicator when saving * Rename instance to project for consistency * Add loading indicator when launching * Rename remaining instances * Add changeset * Remove invalid label * Remove accepted terms (directus#26135) * Remove accepted_terms * Add changeset --------- Co-authored-by: Alex Gaillard <[email protected]> * Add Error Handling (directus#26138) * error handling * retry vs regenerate * Update app/src/ai/components/ai-conversation.vue Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/components/ai-conversation.vue Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Add `defineTool` composable (directus#26140) * Don't send system prompt if it's empty * Remove unnecessary functions * Support dynamic tool registratoin * Create defineTool composable * Define form tools * Add tests * Update app/src/components/v-form/v-form.vue Co-authored-by: Copilot <[email protected]> * Update app/src/components/v-form/composables/use-input-schema.ts Co-authored-by: Copilot <[email protected]> * Update app/src/components/v-form/v-form.vue Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Add reset button (directus#26141) * Tweak sidebar min size * Move model selector out of chat input * Tweak spacing * Make it less button-y * Reduce hackiness * Add reset method * Add section subheader * Use reset * Reduce sidebar detail padding * Move ctx to bottom start * AI -> Reasoning message cleanup (directus#26145) * cleanup reasoning * fix fontsize * Only show reasoning summary once exists --------- Co-authored-by: Rijk van Zanten <[email protected]> * AI -> Improve rendering of messages (directus#26144) * cleanup message structure * fix mounting / unmount using id instead of hash * Tweak loading state * Tweak delays * Remove needless hash --------- Co-authored-by: Rijk van Zanten <[email protected]> * AI -> Add logos for model selector (directus#26142) * add logos to model selector * refactor * Update app/src/ai/components/logos/anthropic.vue Co-authored-by: Copilot <[email protected]> * Update app/src/ai/components/logos/openai.vue Co-authored-by: Copilot <[email protected]> * final answer * swap claude logo * Render divider in selector --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * Tweak spacing * AI -> Submit and Stop Button (directus#26150) * wip * refactor * handle reasoning errors on stop * hide messages without text * still show reasoning if streaming but no text * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Redo the sidebar (directus#26149) * [WIP] Remove info sidebar detail * [WIP] Style new accordion * Render ai sidebar detail at bottom * Add expand animation * Sidebar collapse/expand * Various tweaks and fixes * Fix transition states * Fix active state on navigate * Update app/src/modules/files/components/file-info-sidebar-detail.vue Co-authored-by: Copilot <[email protected]> * AI -> Submit and Stop Button (directus#26150) * wip * refactor * handle reasoning errors on stop * hide messages without text * still show reasoning if streaming but no text * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Re-add support for badge, fix other comments * Fix z-indexing * Persist ai chat active state * Move aiChat active state to ai store * Remove notes * Remove bak * fix revisions overflow * Resolve comment * Bump +1 boop * Add units to rotate 0 * Remove unused placement prop --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Bryant Gillespie <[email protected]> * Fix font size of layout options * Hack in empty state (directus#26151) * Add support for local tool display names * Fix server tools not being called * Add tooltip * Fix absolute positioned elements in scrolling container * AI -> Cleanup Tool Messages (directus#26163) * cleanup tool message part * match text message padding * drop content to 280px * Fix horizontal overflw * Update app/src/components/v-drawer.vue Co-authored-by: Copilot <[email protected]> * Update app/src/views/private/components/sidebar-detail.vue Co-authored-by: Bryant Gillespie <[email protected]> * Update app/src/components/v-drawer.vue Co-authored-by: Bryant Gillespie <[email protected]> * Remove old file * Update app/src/components/v-drawer.vue Co-authored-by: Bryant Gillespie <[email protected]> * Re-add activity link * Use hyphens for template ref * No small * Remove unused class * Only show sections when sidebar open * Only show notifications preview when bar is expanded * Expand sidebar on activity click * Please formatter, forgive my sins * Fix duplicate attributes * AI -> Chat Flow Improvements (directus#26185) * store chat open in local storage for refreshes * fix autoscrolling * move input to store and fix submission with enter * add meta j keyboard shortcut to open close ai chat * measure no longer needed * Fix button jumping on scroll * Replace watcher with event hook * Capture shortcut globally, add tooltip --------- Co-authored-by: Rijk van Zanten <[email protected]> * fix items prompt for ai tools (directus#26183) * Tweak scrolling behavior (directus#26211) * AI -> Fix failed tool calls (directus#26179) * add helper to ensure input in failed tool calls * use helper -- don't validate the tools themselves * fix reasoning message issues * add test suite * update chat controller tests * thanks copilot * Fix merge conflict whoopsies (directus#26214) * AI → Limit context usage (directus#26202) * Use : instead of / for model ids * Refactor to use full model definition * Calculate usage * Remove pro * Show context usage progress indicator * Remove unused package * Don't show context usage * Limit messages we're sending * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Remove unused comment * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * fix schemas for dates --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: bryantgillespie <[email protected]> * AI -> Message Styling (directus#26198) * store chat open in local storage for refreshes * fix autoscrolling * move input to store and fix submission with enter * add meta j keyboard shortcut to open close ai chat * measure no longer needed * increase message gap * cleanup message tool styling * fix padding and scrollbar on chat * refactor ai-message component to improve structure and styling; updated gap variable and added role prop to AiMessageText * message styling * add css animation on hover when not expanded * fix height transition * fix trailing space * add todo list focus * fix border radius for user messages * fix duped * remove unneeded watch * fix import order * animate text and icons only * Update app/src/ai/components/parts/ai-message-tool.vue Co-authored-by: Copilot <[email protected]> * Tweak spacing for loading indicator * Resolve translation comment * Magic is magic * Enough magic * Remove unused stuff * Resolve hardcoded reused msg height * Run formatter --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * Re-add notifications * AI -> Persist session using local storage (directus#26199) * persist current session * Use sessionstorage instead --------- Co-authored-by: Rijk van Zanten <[email protected]> * Run formatter * Tie AI access to app access (directus#26251) * Allow divider to overlap sticky headings in main (directus#26252) * Some Fixes for Split Panel (directus#26254) * use container queries for form * wip * back to percent * unwrap preview * fix type * unneeded setter * remove unneded function * cleaner compueted * its either 100 or 0 * Add changeset * Run formatter * Fix stylelint warning * Fix API typing of sanitizeQuery * AI → Refresh stores on system tool calls (directus#26253) * Refresh schema on system tool calls * Refactor relations store to setup * Add item refresh to all layouts * Add item refresh on detail view * Refresh fields on collection changes * AI → Re-enable notifications (directus#26250) * Render notifications outside of sidebar * Use absolute in split container * Fix animation * Render link to activity in notifications drawer * Add AI Chat sidebar ✨ (directus#26261) * Initial plan * Refactor test to use typed mockNext instead of inline vi.fn() for RequestHandler calls Co-authored-by: rijkvanzanten <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> * Happy now? * Resolve test issue * Make sure left/right panel close icons RTL * Resolve test issues * AI → Add soft-default for system prompt (directus#26268) * Add soft-default for system prompt * Update test to account for default value * update system prompt --------- Co-authored-by: bryantgillespie <[email protected]> Co-authored-by: Bryant Gillespie <[email protected]> * AI -> Tool Approval Functionality (directus#26265) * Refactor to tool card for approvals and web search tool (later) * update to ai sdk beta for tool approvals * add settings menu * adust padding for settings menu * update store * add approvals to chat request * stronger types * update controller * update send automatically when * run formatter * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * remove assets from translations for now * refactor approval options * tool card disabled * add icons to map as well * remove casting * fix double scroll bar * Apply suggestion from @Copilot Co-authored-by: Copilot <[email protected]> * Fix typing of stream call * Add enter key for translate shortcut * Translate keyboard shortcuts * Remove keyboard shortcuts * Use css vars * Use translated tool names --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * AI -> Hide when No Providers / Not Configured (directus#26269) * add beta * move header * add no provider empty states * translations --------- Co-authored-by: Rijk van Zanten <[email protected]> * Nudge nudge * I'm sorry. * Update .changeset/small-doodles-join.md Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/flows/components/logs-sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-resize-handle.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/layout-sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/marketplace/routes/registry/registry.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/system-logs/logs.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/system-logs/logs.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/interfaces/_system/system-owner/system-owner.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/skip-menu.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-form/composables/use-input-schema.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-form/composables/use-input-schema.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/ai/components/parts/ai-message-text.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/visual/components/editing-layer.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/visual/components/editing-layer.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-header-bar.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/notifications-drawer.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * search input: match header button height and refine styles with CSS variables (directus#26308) * add BREAKPOINTS constant and update private-view-root.vue to demonstrate example usage (directus#26310) * AI → Resolve review comments (directus#26290) * Add a smidge of padding * Add a pinch of flex * Stir in the drawing spacing * Re-add missing drawer close on mobile * Fix z-index of header bar * Tweak stacking order of search input * Resolve shadow showing up on nav on mobile * Only show tooltip when sidebar is closed * Drop shortcut * Nudge cancel button size and positioning * Make drawer buttons smaller * Fix input height in sidebar * Drop unused dependency * Change translation key * Add in type label tweaks * Tweak drawer title styling * Stick header bar at 0 * Tweak skeleton loader * Allow inline size to shrink * Fix missing import * Don't inherit attrs on private view * Collapse right sidebar when making window small * fix appearance * Tweak sizing of right rail * Don't deactivate on unmount * Fix right sidebar alignment * sidebar is closed and you try to open it by resizing while the preview split-panel is open * Re-add non-editable * Tweak revision styling * 💅 f l o r i a n * Refactor v-form ai usage to composable * Tweak spacing * Update import * Rename description to llmDescription * Use prop shorthands * Don't use flow sidebar detail in translations * Don't use unused prop * Move vars to top * Add comment * Remove unused ref * Drop navbar/sidebar from app store * Revert version menu * button type * Remove fullscreen * Use private view header bar actions * Fix custom icons not scaling * Remove unused css * Use class instead of id Don't you forget about the ˚₊‧꒰ა best practices ໒꒱ ‧₊˚ * Update input-hash component to conditionally set input type and autocomplete attributes based on masked state * revert fields user change * remove todos * Update app/src/components/v-drawer-header.vue Co-authored-by: Copilot <[email protected]> * Pass direction to split panel * Update split panel * Revert "Rename description to llmDescription" This reverts commit 162a6d5. * Solve name confusion with just comments * Update app/src/components/v-form/composables/use-ai-tools.ts Co-authored-by: Copilot <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Copilot <[email protected]> * Run formatter/linter --------- Co-authored-by: bryantgillespie <[email protected]> Co-authored-by: Copilot <[email protected]> * AI ← Spacing & responsive refinements (directus#26309) * introduce --form-column-min-width var * move container-type: inline-size to the form-grid mixin * set inline-size container query to 556px * adjust sidebar content padding to match sidebar toggle buttons * refine the project name padding so it optically matches the contents of the navigation bar * set --content-padding and --content-padding-bottom vars globally * refine spacing of item form * add top padding to content components * remove top margin in favor of added top padding * Tweak spacing a bit more --------- Co-authored-by: Rijk van Zanten <[email protected]> * Prettier doesn't agree sadly * Add changeset for stores package * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/ai/components/ai-sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Remove unused file * Icon sizes * Align drawer header with other header * Fix descender overflow * Re-add tooltip * AI ← Drawer & Header (directus#26317) * add Esc hint to cancel tooltip for consistency with the cancel button outside the drawer * adjust alignment of drawer cancel button to match header bar icons * prevent extra padding-right of forms in the drawer * ensure that title styles are applied to the drawer header * prevent the title text from being cut off in the header bar and the drawer header * Update app/src/views/private/private-view/components/private-view-header-bar.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * fix private view main * update docs link and system prompt help text * formatter * fix stylelint comments * AI -> Add Back Scroll Shadows but Better (directus#26313) * add scroll shadows to scroll container in private view * Update app/src/styles/themes/_dark.scss Co-authored-by: Copilot <[email protected]> * Update app/src/views/private/private-view/components/private-view.vue Co-authored-by: Copilot <[email protected]> * set to false instead of undefined --------- Co-authored-by: Copilot <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * render only split panel * Fix calendar/map view * fix header border mismatch for color match theme * Fix button size in field detail * Fix more drawer button sizes * borders are back * Fix map / calendar not resizing on sidebar size change * Run formatter * fix layout bottom * fix calendar * fizx tests * update test snapshot * use internal BREAKPOINTS const and remove redundant use of useBreakpoints (directus#26329) * fix form type imports * Update app/src/views/private/private-view/components/private-view-header-bar.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Florian C. Wachmann <[email protected]> * enforce map view shadows and fix initialization issue * remove unused line * fix border for color match themne * Tweak default * Revert input-hash changes, use new autocomplete prop * oops missed the import * AI ← Live Preview (directus#26330) * prevent iframe from loading when live preview is not active * add default live preview size as snap point so that we can easily resize to the default size * ensure that the live preview panel border only appears when not displayed at full width (mobile) * Run formatter * Add changeset * fix search input for mobile (directus#26331) * prevent submissions when pending tool call * AI ← Improve input focusing (directus#26334) * Focus on textarea when clicking within ai-input * Use text cursor * Fix cursor when disabled * fix max-width issue of search input on mobile (directus#26339) * AI ← A11y adjustments for Skip Menu and headline elements (directus#26337) * refactor SkipMenu usage so it appears next to its section * refactor SkipMenu keys to match section ID naming * ensure that sections accessed via the skip menu expand properly if they are collapsed * adjust the SkipMenu min-width to match the sidebar min-width * update tests * fix focus styles for headline elements * adjust positioning for mobile skip menu inside module navigation * add dynamic id binding to module navigation content for improved accessibility * Update app/src/views/private/components/skip-menu.vue Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * fix line-height in type-title mixin (directus#26341) * AI <- Hot Last Minute Quick Fixes (directus#26332) * close inline nav on route change * fix activator warnings * Update app/src/views/private/private-view/stores/nav-bar.ts Co-authored-by: Florian C. Wachmann <[email protected]> * pull in sidebar store --------- Co-authored-by: Florian C. Wachmann <[email protected]> * AI Chat <- Clears Messages and Settings on Sign Out (directus#26342) * clear messages and settings on signout * Add test coverage for AI store dehydrate function (directus#26343) * Initial plan * Add test coverage for dehydrate function in AI store Co-authored-by: rijkvanzanten <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> * Update .changeset/short-lamps-hunt.md Co-authored-by: Florian C. Wachmann <[email protected]> * Add AI Telemetry (directus#26347) * Add AI-related fields to telemetry * Include AI-related fields in tests * Use AI suggestion --------- Co-authored-by: Bryant Gillespie <[email protected]> Co-authored-by: daedalus <[email protected]> Co-authored-by: Nitwel <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> Co-authored-by: Alex Gaillard <[email protected]> Co-authored-by: ian <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Gerard Lamusse <[email protected]> Co-authored-by: bryantgillespie <[email protected]> Co-authored-by: Florian C. Wachmann <[email protected]> Co-authored-by: Connor Winston <[email protected]>
* chore: useLocalStorage from vue-use * feat: sign the cla * chore: add changeset for PR * feat: add directus prefix to key * deps(actions)(deps): bump actions/checkout from 5 to 6 (#26327) Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add Header Interface (#26302) * Extract flow-sidebar-detail to use-flows composable * Add test cases * Update app/src/composables/use-flows.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/composables/use-flows.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/composables/use-flows.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/composables/use-flows.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/composables/use-flows.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/composables/use-flows.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/composables/use-flows.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/composables/use-flows.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/composables/use-flows.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/composables/use-flows.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/composables/use-flows.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/composables/use-flows.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Create trigger-flow component to render useFlows button * Make onRefresh required * Refactor for provide/inject pattern * Add logic use-flows to overlay-item * Add functionality to collections and cleanup * More cleanup and simplify * Remove artifact * Major Refactor * Refactor tests to new spec * More cleanup * More refactoring * Update app/src/composables/use-flows.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Move useFlows invocation higher up * Move FlowDialogsContext type and remove .value from props * Replace i18n import and use global import * Adjust jsdoc * Fix weird assertion * Remove unnecessary else * Move styles to correct component * Move useFlows invocation higher and removed unnecessary prop * Amend props for only required refs * Add early return * Disable flow detail for versions * Change unsaved changes CTA * Fix tests * Add missing global template string * Add actionType and toggle field visibility * Add system interface to select flow * Add runManualFlow logic * Cleanup * Remove repeated code * Disable flow in batch mode * Add disable logic * Replace unneeded system interface * Add tweaked system interface back in * Handle case of internal links * Add loading logic * Remove artifact * enhance interface settings with action type display (#26079) * Remove unnecessary options * Change ref to computed * Revert artifact changes * Amend translations * Fix auto import * Change type * Move function invocation higher * Rework rendering and attributes * Rename function and remove redundant manualFlows prop * Rework running flows logic * Hide inactive flows * Standardize use of flow/Flow in translations * Remove unused translation * Add select a flow placeholder * Add manual trigger to assertion * Simplify system interface directive logic and add inactive state * Specify type imports * Replace activeFlows computed with isActiveFlow function * Call runManualFlow directly * Amend icon rendering * Remove unnecessary prop * Add changeset * Rename system interface * Add test coverage * Added missed renames * Add more tests * Add interface definition * Add actions to interface * Port styles * Port header vue wholesale * Rename folder * Add preview image * Style changes and fix help rendering * Additional style changes * Integrate use-flows composable and remove unneeded logic * Handle error * Add missing import * Remove unnecessary translate-literal logic * Make interface structure and translation strings consistent * Match to presentation links and cleanup * Rename from super-header to header to prevent inteface name clash * Add loading logic and amend click handler * Rename interface * Rename function * WIP Rebase * Move fetchTemplateData to interface composable * Remove unused ref * Simplify help computed sanitization * Remove unused interface * Remove unsopported resolvedRelationalFields * Nest styles * Update system display template to optionally filter out relationals * Remove potential out of scope change * Restore translations from main * Remove unneeded code * Don't display actions dropdown when only once action * Add notes to interface * Fix title line height * Move text component from old superheader interface (#26320) * move text component from old superheader interface * Adjust styles and add translation --------- Co-authored-by: Alex Gaillard <[email protected]> * Remove unneeded composable * Remove unneeded code * Fix icon alignment * Add test for helper text component * Revert "Remove unneeded code" This reverts commit 397a69ffb5e0749a3af3cf6e4ae1afda5002a145. * Revert "Remove unneeded composable" This reverts commit 842992cd18e54840ccf62863fadd7fdae66a6eab. * Revert "Remove unneeded code" * Remove effective values * Replace local composable with useTemplateData * Add some basic tests * Format --------- Co-authored-by: Florian C. Wachmann <[email protected]> Co-authored-by: Rob Luton <[email protected]> * Marketplace extension file synchronization (#26192) * inintial sync logic update * fixed file removal * removed old checksum tests * make reloads blocking * fix deletion of folders * move status utils into the sync folder * extract logic out to a manager class * some uber basic tests for status utilities * over engineer it less * clean up some code * fix debug logs * prettier * fix status file deadlock * remove obsolete forceSync * WIP partial syncing * checking for existing remote folders isnt reliable * catch non existed folder error * re-introduce delete only escape * force sync on startup * clean up some code * extracting some utility functions * extract path creation and address some sanitization * resolve user provided data when installing * extracted some more utils for readability * updated status tests * added basic utility tests * fix tests hanging in an infinte loop * added tests for the file tracker * prettier * added changeset * attempted some sync.ts tests * removed debug lock clearing * fix supabase driver stat function for nested folders * normalize the remote paths to fix windows path separators * fixed cloudinary path normalization and fixes sub folder listing * fix updated list call tests * updated cloudinary tests * updated changeset * revert cloudinary changes * re-add normalization of windows paths * skip sync for the installing instance * fixed path joining tests --------- Co-authored-by: daedalus <[email protected]> * deps(deps): bump @modelcontextprotocol/sdk from 1.21.1 to 1.24.0 (#26293) Bumps [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk) from 1.21.1 to 1.24.0. - [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases) - [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/1.21.1...1.24.0) --- updated-dependencies: - dependency-name: "@modelcontextprotocol/sdk" dependency-version: 1.24.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Use npm trusted publishing (#26306) * Use npm trusted publishing * Check if packages exist in npm * Use action instead * Fix high vulnerabilities (#26345) * Upgrade packages using jws * bump node-forge and samlify * force jws * updating glob --------- Co-authored-by: Brainslug <[email protected]> * Merge from fork (#26346) * validate relay state redirect * changeset --------- Co-authored-by: daedalus <[email protected]> * Add AI Chat sidebar ✨ (#26259) * Install vue split panel * Recreate private-view * Persist size * Setup headerbar * Add collapse expand * Add resize handle * Remove tw cruft * Hack in right sidebar * Fix right sidebar expand/collapse * Fix content spacing * Tweak scrolling containers, fix header shadow * Remove margins * Make nav responsive * Nav toggles, remove latency * Finish basic responsiveness * Bry/split panel tiny twak (#25967) * really missed the e in that branch name * all the small thi..buttons --------- Co-authored-by: Rijk van Zanten <[email protected]> * Style expand button * Tweak sizing of icons * Reduce search input sizing * Remove margin from children * Tweak header bar layout * Remove page icons * Tweak responsive breakpoints * Add support for icons * Tweak spacing * they're back but as props this time (#25987) * Fix z-index * Header Bar to V Drawer Header Bar (#25988) * they're back but as props this time * rename to v-drawer header * refactor to match private-view-header-bar pattern * remove small header and header shadow props on private view * Drop small prop from v-drawer-header * Remove primary action item --------- Co-authored-by: Rijk van Zanten <[email protected]> * Added `directus_comments` and `directus_extensions` to websocket subscriptions (#25464) * utilize system data for registering system module subscriptions * add changeset * update changeset wording --------- Co-authored-by: Rijk van Zanten <[email protected]> Co-authored-by: Nitwel <[email protected]> * Speed up dialogs a bit * Add top padding in collections * Re-add support for custom header border * Slow down tooltips * Responsiveness for header bar * Recreate lockfile * Add changeset * Run formatter * Fix linter warnings * Add encryption support to special flags (#26096) * Warn on secret values shorter than 32 bytes * Warn on byte instead of string length * Add encrypt/decrypt logic * Add encrypt special flag support * Rework encryption to use version envelope * Format * Pass accountability to payload service * Return decrypted value to system calls * Fix tampered test * Add basic AI settings (#26097) * Add ai settings * Run formatter * Add heading and notice * Feat/refactor mcp (#26098) * Refactor MCP into AI folder * Run formatter * Format translation * Add dirname definitions * Add ai/chat endpoint (#26104) * Setup AI SDK endpoint * Add tests * Fix test quirks * Implement tool support in chat endpoint (#26116) * Add ai chat tool usage * Gen in some tests * Add json schema validation * Update api/src/ai/chat/utils/chat-request-tool-to-ai-sdk-tool.ts Co-authored-by: Copilot <[email protected]> * Refactor DRY --------- Co-authored-by: Copilot <[email protected]> * Regen pnpmlock * Update changeset to include themes pkg * Feat/ai system prompt (#26124) * Add system prompt setting * Load middleware setting * Add translatoins * Allow passing systemprompt to createuimessages * Pass system prompt from ai settings * AI -> Add base layer AI UI components (#26115) * components * add ai sidebar to item route * rough in ai model selector * rough - ai-input * mock message * add reka-ui * move to ai folder * ai sdk vue * model selector refactor * shrink padding * quick cleanup * shorten model list * install rest of ai sdk * ai message parts * refactor text area * ai store * update sidebar * fix deps mismatch * delete step * update models to long form (again) * refactor to pinia store * remove tools stuff for now * add openai reasoning detailed * Update app/src/ai/components/ai-sidebar-detail.vue Co-authored-by: Copilot <[email protected]> * fix whitespace * fix em up * make max width 600 px * fix sidebar scroll * fix packages * fix reka-ui * cleanup message list * cleanup message * cleanup margins and unused css vars * start reasoning open and then close when done * refactor message list animation * add reasoning translations * refactor out scss * remove progress bar * model selector * ai sidebar detail * fix styling of message text * refactor out variants in favor of simple role basis * fix extra space * remove unneeded variant * refactor side prop * replace spread with backwards loop * fixes 1 * Move reka to devDependencies * Logical properties * Run stylelint * convert to rem * back to pickles * Clean up multi-line tracking * Use transition variables * Use lodash throttle * Use v-bind for css var * Use $t instead of usei18n * computed * textarea magic * Only show models from configured providers * message tool translation * Use transition vars * Use vars for transition * fix dupe * remove opacity * refactor reasonign * add back empty tools array * Refactor AI model selector dropdown to use transitions instead of keyframe animations (#26122) * Initial plan * Refactor dropdown animation to use transitions instead of keyframes Co-authored-by: rijkvanzanten <[email protected]> * Update app/src/ai/components/ai-model-selector.vue * Update app/src/ai/components/ai-model-selector.vue --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * fix animation * refactor model selector to use vmenu * New Crowdin updates (#25908) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Portuguese) * New translations en-us.yaml (Albanian) * Update source file en-US.yaml * New translations en-us.yaml (Persian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (French) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (French) * New translations en-us.yaml (French, Canada) * Update source file en-US.yaml * New translations en-us.yaml (Korean) * Update source file en-US.yaml * New translations en-us.yaml (Persian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Persian) * Update source file en-US.yaml * New translations en-us.yaml (Russian) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Romanian) * New translations en-us.yaml (French) * New translations en-us.yaml (Spanish) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Bulgarian) * New translations en-us.yaml (Catalan) * New translations en-us.yaml (Danish) * New translations en-us.yaml (German) * New translations en-us.yaml (Greek) * New translations en-us.yaml (Finnish) * New translations en-us.yaml (Hebrew) * New translations en-us.yaml (Hungarian) * New translations en-us.yaml (Italian) * New translations en-us.yaml (Japanese) * New translations en-us.yaml (Georgian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Mongolian) * New translations en-us.yaml (Dutch) * New translations en-us.yaml (Polish) * New translations en-us.yaml (Portuguese) * New translations en-us.yaml (Slovak) * New translations en-us.yaml (Slovenian) * New translations en-us.yaml (Albanian) * New translations en-us.yaml (Swedish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Chinese Simplified) * New translations en-us.yaml (Chinese Traditional) * New translations en-us.yaml (Vietnamese) * New translations en-us.yaml (Icelandic) * New translations en-us.yaml (Portuguese, Brazilian) * New translations en-us.yaml (Indonesian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Spanish, Chile) * New translations en-us.yaml (Spanish, Mexico) * New translations en-us.yaml (Marathi) * New translations en-us.yaml (Thai) * New translations en-us.yaml (Croatian) * New translations en-us.yaml (Estonian) * New translations en-us.yaml (Azerbaijani) * New translations en-us.yaml (English, Canada) * New translations en-us.yaml (English, United Kingdom) * New translations en-us.yaml (French, Canada) * New translations en-us.yaml (Esperanto) * New translations en-us.yaml (Bosnian) * New translations en-us.yaml (Nepali) * New translations en-us.yaml (Kurmanji (Kurdish)) * New translations en-us.yaml (Sorani (Kurdish)) * New translations en-us.yaml (Spanish, Latin America) * Update source file en-US.yaml * New translations en-us.yaml (Persian) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Romanian) * New translations en-us.yaml (French) * New translations en-us.yaml (Spanish) * New translations en-us.yaml (Afrikaans) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Bulgarian) * New translations en-us.yaml (Catalan) * New translations en-us.yaml (Danish) * New translations en-us.yaml (German) * New translations en-us.yaml (Greek) * New translations en-us.yaml (Finnish) * New translations en-us.yaml (Hebrew) * New translations en-us.yaml (Hungarian) * New translations en-us.yaml (Italian) * New translations en-us.yaml (Japanese) * New translations en-us.yaml (Georgian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Mongolian) * New translations en-us.yaml (Dutch) * New translations en-us.yaml (Norwegian) * New translations en-us.yaml (Polish) * New translations en-us.yaml (Portuguese) * New translations en-us.yaml (Slovak) * New translations en-us.yaml (Slovenian) * New translations en-us.yaml (Albanian) * New translations en-us.yaml (Serbian (Cyrillic)) * New translations en-us.yaml (Swedish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Chinese Simplified) * New translations en-us.yaml (Chinese Traditional) * New translations en-us.yaml (Vietnamese) * New translations en-us.yaml (Icelandic) * New translations en-us.yaml (Portuguese, Brazilian) * New translations en-us.yaml (Indonesian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Spanish, Chile) * New translations en-us.yaml (Spanish, Mexico) * New translations en-us.yaml (Marathi) * New translations en-us.yaml (Thai) * New translations en-us.yaml (Croatian) * New translations en-us.yaml (Estonian) * New translations en-us.yaml (Malay) * New translations en-us.yaml (English, Canada) * New translations en-us.yaml (English, United Kingdom) * New translations en-us.yaml (French, Canada) * New translations en-us.yaml (Esperanto) * New translations en-us.yaml (Breton) * New translations en-us.yaml (Bosnian) * New translations en-us.yaml (Serbian (Latin)) * New translations en-us.yaml (Nepali) * New translations en-us.yaml (Kurmanji (Kurdish)) * New translations en-us.yaml (Sorani (Kurdish)) * New translations en-us.yaml (Spanish, Latin America) * Update source file en-US.yaml * Fix broken tests --------- Co-authored-by: Alex Gaillard <[email protected]> * Release 11.13.0 (#26114) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update changeset to include themes pkg * refactor message list scrolling * Rerender based on parts hash * Remove unused imports * Allow more models * cleanup tool markup * cleanup more * fix resizing * Remove unused import * Apply suggestion from @rijkvanzanten --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> Co-authored-by: Alex Gaillard <[email protected]> Co-authored-by: ian <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Delete .github/CODEOWNERS * Fix layout display dependant on item count request (#26045) * Fix itemCount dep for item display * add changeset * Update app/src/layouts/cards/cards.vue Co-authored-by: Alex Gaillard <[email protected]> * Update app/src/layouts/tabular/tabular.vue Co-authored-by: Alex Gaillard <[email protected]> * add pagination skeleton loader * only display skeleton if items are at least page limit * Prefer 3 skeletons over 1 * fix skeleton loader tests --------- Co-authored-by: Alex Gaillard <[email protected]> * Add loading indicator when saving setup forms (#26130) * Add loading indicator when saving * Rename instance to project for consistency * Add loading indicator when launching * Rename remaining instances * Add changeset * Remove invalid label * Remove accepted terms (#26135) * Remove accepted_terms * Add changeset --------- Co-authored-by: Alex Gaillard <[email protected]> * Add Error Handling (#26138) * error handling * retry vs regenerate * Update app/src/ai/components/ai-conversation.vue Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/components/ai-conversation.vue Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Add `defineTool` composable (#26140) * Don't send system prompt if it's empty * Remove unnecessary functions * Support dynamic tool registratoin * Create defineTool composable * Define form tools * Add tests * Update app/src/components/v-form/v-form.vue Co-authored-by: Copilot <[email protected]> * Update app/src/components/v-form/composables/use-input-schema.ts Co-authored-by: Copilot <[email protected]> * Update app/src/components/v-form/v-form.vue Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Add reset button (#26141) * Tweak sidebar min size * Move model selector out of chat input * Tweak spacing * Make it less button-y * Reduce hackiness * Add reset method * Add section subheader * Use reset * Reduce sidebar detail padding * Move ctx to bottom start * AI -> Reasoning message cleanup (#26145) * cleanup reasoning * fix fontsize * Only show reasoning summary once exists --------- Co-authored-by: Rijk van Zanten <[email protected]> * AI -> Improve rendering of messages (#26144) * cleanup message structure * fix mounting / unmount using id instead of hash * Tweak loading state * Tweak delays * Remove needless hash --------- Co-authored-by: Rijk van Zanten <[email protected]> * AI -> Add logos for model selector (#26142) * add logos to model selector * refactor * Update app/src/ai/components/logos/anthropic.vue Co-authored-by: Copilot <[email protected]> * Update app/src/ai/components/logos/openai.vue Co-authored-by: Copilot <[email protected]> * final answer * swap claude logo * Render divider in selector --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * Tweak spacing * AI -> Submit and Stop Button (#26150) * wip * refactor * handle reasoning errors on stop * hide messages without text * still show reasoning if streaming but no text * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Redo the sidebar (#26149) * [WIP] Remove info sidebar detail * [WIP] Style new accordion * Render ai sidebar detail at bottom * Add expand animation * Sidebar collapse/expand * Various tweaks and fixes * Fix transition states * Fix active state on navigate * Update app/src/modules/files/components/file-info-sidebar-detail.vue Co-authored-by: Copilot <[email protected]> * AI -> Submit and Stop Button (#26150) * wip * refactor * handle reasoning errors on stop * hide messages without text * still show reasoning if streaming but no text * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Re-add support for badge, fix other comments * Fix z-indexing * Persist ai chat active state * Move aiChat active state to ai store * Remove notes * Remove bak * fix revisions overflow * Resolve comment * Bump +1 boop * Add units to rotate 0 * Remove unused placement prop --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Bryant Gillespie <[email protected]> * Fix font size of layout options * Hack in empty state (#26151) * Add support for local tool display names * Fix server tools not being called * Add tooltip * Fix absolute positioned elements in scrolling container * AI -> Cleanup Tool Messages (#26163) * cleanup tool message part * match text message padding * drop content to 280px * Fix horizontal overflw * Update app/src/components/v-drawer.vue Co-authored-by: Copilot <[email protected]> * Update app/src/views/private/components/sidebar-detail.vue Co-authored-by: Bryant Gillespie <[email protected]> * Update app/src/components/v-drawer.vue Co-authored-by: Bryant Gillespie <[email protected]> * Remove old file * Update app/src/components/v-drawer.vue Co-authored-by: Bryant Gillespie <[email protected]> * Re-add activity link * Use hyphens for template ref * No small * Remove unused class * Only show sections when sidebar open * Only show notifications preview when bar is expanded * Expand sidebar on activity click * Please formatter, forgive my sins * Fix duplicate attributes * AI -> Chat Flow Improvements (#26185) * store chat open in local storage for refreshes * fix autoscrolling * move input to store and fix submission with enter * add meta j keyboard shortcut to open close ai chat * measure no longer needed * Fix button jumping on scroll * Replace watcher with event hook * Capture shortcut globally, add tooltip --------- Co-authored-by: Rijk van Zanten <[email protected]> * fix items prompt for ai tools (#26183) * Tweak scrolling behavior (#26211) * AI -> Fix failed tool calls (#26179) * add helper to ensure input in failed tool calls * use helper -- don't validate the tools themselves * fix reasoning message issues * add test suite * update chat controller tests * thanks copilot * Fix merge conflict whoopsies (#26214) * AI → Limit context usage (#26202) * Use : instead of / for model ids * Refactor to use full model definition * Calculate usage * Remove pro * Show context usage progress indicator * Remove unused package * Don't show context usage * Limit messages we're sending * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Remove unused comment * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * fix schemas for dates --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: bryantgillespie <[email protected]> * AI -> Message Styling (#26198) * store chat open in local storage for refreshes * fix autoscrolling * move input to store and fix submission with enter * add meta j keyboard shortcut to open close ai chat * measure no longer needed * increase message gap * cleanup message tool styling * fix padding and scrollbar on chat * refactor ai-message component to improve structure and styling; updated gap variable and added role prop to AiMessageText * message styling * add css animation on hover when not expanded * fix height transition * fix trailing space * add todo list focus * fix border radius for user messages * fix duped * remove unneeded watch * fix import order * animate text and icons only * Update app/src/ai/components/parts/ai-message-tool.vue Co-authored-by: Copilot <[email protected]> * Tweak spacing for loading indicator * Resolve translation comment * Magic is magic * Enough magic * Remove unused stuff * Resolve hardcoded reused msg height * Run formatter --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * Re-add notifications * AI -> Persist session using local storage (#26199) * persist current session * Use sessionstorage instead --------- Co-authored-by: Rijk van Zanten <[email protected]> * Run formatter * Tie AI access to app access (#26251) * Allow divider to overlap sticky headings in main (#26252) * Some Fixes for Split Panel (#26254) * use container queries for form * wip * back to percent * unwrap preview * fix type * unneeded setter * remove unneded function * cleaner compueted * its either 100 or 0 * Add changeset * Run formatter * Fix stylelint warning * Fix API typing of sanitizeQuery * AI → Refresh stores on system tool calls (#26253) * Refresh schema on system tool calls * Refactor relations store to setup * Add item refresh to all layouts * Add item refresh on detail view * Refresh fields on collection changes * AI → Re-enable notifications (#26250) * Render notifications outside of sidebar * Use absolute in split container * Fix animation * Render link to activity in notifications drawer * Add AI Chat sidebar ✨ (#26261) * Initial plan * Refactor test to use typed mockNext instead of inline vi.fn() for RequestHandler calls Co-authored-by: rijkvanzanten <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> * Happy now? * Resolve test issue * Make sure left/right panel close icons RTL * Resolve test issues * AI → Add soft-default for system prompt (#26268) * Add soft-default for system prompt * Update test to account for default value * update system prompt --------- Co-authored-by: bryantgillespie <[email protected]> Co-authored-by: Bryant Gillespie <[email protected]> * AI -> Tool Approval Functionality (#26265) * Refactor to tool card for approvals and web search tool (later) * update to ai sdk beta for tool approvals * add settings menu * adust padding for settings menu * update store * add approvals to chat request * stronger types * update controller * update send automatically when * run formatter * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * Update app/src/ai/stores/use-ai.ts Co-authored-by: Copilot <[email protected]> * remove assets from translations for now * refactor approval options * tool card disabled * add icons to map as well * remove casting * fix double scroll bar * Apply suggestion from @Copilot Co-authored-by: Copilot <[email protected]> * Fix typing of stream call * Add enter key for translate shortcut * Translate keyboard shortcuts * Remove keyboard shortcuts * Use css vars * Use translated tool names --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> * AI -> Hide when No Providers / Not Configured (#26269) * add beta * move header * add no provider empty states * translations --------- Co-authored-by: Rijk van Zanten <[email protected]> * Nudge nudge * I'm sorry. * Update .changeset/small-doodles-join.md Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/flows/components/logs-sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-resize-handle.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/layout-sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/marketplace/routes/registry/registry.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/system-logs/logs.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/settings/routes/system-logs/logs.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/interfaces/_system/system-owner/system-owner.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/skip-menu.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-form/composables/use-input-schema.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-form/composables/use-input-schema.ts Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/ai/components/parts/ai-message-text.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/visual/components/editing-layer.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/visual/components/editing-layer.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-header-bar.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/components/notifications-drawer.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * search input: match header button height and refine styles with CSS variables (#26308) * add BREAKPOINTS constant and update private-view-root.vue to demonstrate example usage (#26310) * AI → Resolve review comments (#26290) * Add a smidge of padding * Add a pinch of flex * Stir in the drawing spacing * Re-add missing drawer close on mobile * Fix z-index of header bar * Tweak stacking order of search input * Resolve shadow showing up on nav on mobile * Only show tooltip when sidebar is closed * Drop shortcut * Nudge cancel button size and positioning * Make drawer buttons smaller * Fix input height in sidebar * Drop unused dependency * Change translation key * Add in type label tweaks * Tweak drawer title styling * Stick header bar at 0 * Tweak skeleton loader * Allow inline size to shrink * Fix missing import * Don't inherit attrs on private view * Collapse right sidebar when making window small * fix appearance * Tweak sizing of right rail * Don't deactivate on unmount * Fix right sidebar alignment * sidebar is closed and you try to open it by resizing while the preview split-panel is open * Re-add non-editable * Tweak revision styling * 💅 f l o r i a n * Refactor v-form ai usage to composable * Tweak spacing * Update import * Rename description to llmDescription * Use prop shorthands * Don't use flow sidebar detail in translations * Don't use unused prop * Move vars to top * Add comment * Remove unused ref * Drop navbar/sidebar from app store * Revert version menu * button type * Remove fullscreen * Use private view header bar actions * Fix custom icons not scaling * Remove unused css * Use class instead of id Don't you forget about the ˚₊‧꒰ა best practices ໒꒱ ‧₊˚ * Update input-hash component to conditionally set input type and autocomplete attributes based on masked state * revert fields user change * remove todos * Update app/src/components/v-drawer-header.vue Co-authored-by: Copilot <[email protected]> * Pass direction to split panel * Update split panel * Revert "Rename description to llmDescription" This reverts commit 162a6d5fdc34f712d2ae8314bdf7a8511b317bc7. * Solve name confusion with just comments * Update app/src/components/v-form/composables/use-ai-tools.ts Co-authored-by: Copilot <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Copilot <[email protected]> * Run formatter/linter --------- Co-authored-by: bryantgillespie <[email protected]> Co-authored-by: Copilot <[email protected]> * AI ← Spacing & responsive refinements (#26309) * introduce --form-column-min-width var * move container-type: inline-size to the form-grid mixin * set inline-size container query to 556px * adjust sidebar content padding to match sidebar toggle buttons * refine the project name padding so it optically matches the contents of the navigation bar * set --content-padding and --content-padding-bottom vars globally * refine spacing of item form * add top padding to content components * remove top margin in favor of added top padding * Tweak spacing a bit more --------- Co-authored-by: Rijk van Zanten <[email protected]> * Prettier doesn't agree sadly * Add changeset for stores package * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/ai/components/ai-sidebar-detail.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Remove unused file * Icon sizes * Align drawer header with other header * Fix descender overflow * Re-add tooltip * AI ← Drawer & Header (#26317) * add Esc hint to cancel tooltip for consistency with the cancel button outside the drawer * adjust alignment of drawer cancel button to match header bar icons * prevent extra padding-right of forms in the drawer * ensure that title styles are applied to the drawer header * prevent the title text from being cut off in the header bar and the drawer header * Update app/src/views/private/private-view/components/private-view-header-bar.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/views/private/private-view/components/private-view-main.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * fix private view main * update docs link and system prompt help text * formatter * fix stylelint comments * AI -> Add Back Scroll Shadows but Better (#26313) * add scroll shadows to scroll container in private view * Update app/src/styles/themes/_dark.scss Co-authored-by: Copilot <[email protected]> * Update app/src/views/private/private-view/components/private-view.vue Co-authored-by: Copilot <[email protected]> * set to false instead of undefined --------- Co-authored-by: Copilot <[email protected]> * Update app/src/modules/content/routes/item.vue Co-authored-by: Florian C. Wachmann <[email protected]> * render only split panel * Fix calendar/map view * fix header border mismatch for color match theme * Fix button size in field detail * Fix more drawer button sizes * borders are back * Fix map / calendar not resizing on sidebar size change * Run formatter * fix layout bottom * fix calendar * fizx tests * update test snapshot * use internal BREAKPOINTS const and remove redundant use of useBreakpoints (#26329) * fix form type imports * Update app/src/views/private/private-view/components/private-view-header-bar.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/components/v-drawer-header.vue Co-authored-by: Florian C. Wachmann <[email protected]> * enforce map view shadows and fix initialization issue * remove unused line * fix border for color match themne * Tweak default * Revert input-hash changes, use new autocomplete prop * oops missed the import * AI ← Live Preview (#26330) * prevent iframe from loading when live preview is not active * add default live preview size as snap point so that we can easily resize to the default size * ensure that the live preview panel border only appears when not displayed at full width (mobile) * Run formatter * Add changeset * fix search input for mobile (#26331) * prevent submissions when pending tool call * AI ← Improve input focusing (#26334) * Focus on textarea when clicking within ai-input * Use text cursor * Fix cursor when disabled * fix max-width issue of search input on mobile (#26339) * AI ← A11y adjustments for Skip Menu and headline elements (#26337) * refactor SkipMenu usage so it appears next to its section * refactor SkipMenu keys to match section ID naming * ensure that sections accessed via the skip menu expand properly if they are collapsed * adjust the SkipMenu min-width to match the sidebar min-width * update tests * fix focus styles for headline elements * adjust positioning for mobile skip menu inside module navigation * add dynamic id binding to module navigation content for improved accessibility * Update app/src/views/private/components/skip-menu.vue Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * fix line-height in type-title mixin (#26341) * AI <- Hot Last Minute Quick Fixes (#26332) * close inline nav on route change * fix activator warnings * Update app/src/views/private/private-view/stores/nav-bar.ts Co-authored-by: Florian C. Wachmann <[email protected]> * pull in sidebar store --------- Co-authored-by: Florian C. Wachmann <[email protected]> * AI Chat <- Clears Messages and Settings on Sign Out (#26342) * clear messages and settings on signout * Add test coverage for AI store dehydrate function (#26343) * Initial plan * Add test coverage for dehydrate function in AI store Co-authored-by: rijkvanzanten <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> * Update .changeset/short-lamps-hunt.md Co-authored-by: Florian C. Wachmann <[email protected]> * Add AI Telemetry (#26347) * Add AI-related fields to telemetry * Include AI-related fields in tests * Use AI suggestion --------- Co-authored-by: Bryant Gillespie <[email protected]> Co-authored-by: daedalus <[email protected]> Co-authored-by: Nitwel <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> Co-authored-by: Alex Gaillard <[email protected]> Co-authored-by: ian <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Gerard Lamusse <[email protected]> Co-authored-by: bryantgillespie <[email protected]> Co-authored-by: Florian C. Wachmann <[email protected]> Co-authored-by: Connor Winston <[email protected]> * Remove aliased imports `/api` (#26350) * deps(actions)(deps): bump actions/upload-artifact from 4 to 5 (#26328) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * 📂 Add support for downloading multiple files and entire folder trees (#26006) * add files and folder download functionallity * undo test * deduplicate file names and add permission checks * improve access handling * fix filesService accountability * fix app download * add changeset * use $t for script translation * add Folder type * prefer post for folder download * add translated download folder * rename admin filesService to sudo * rename file deduper to name deduper * add permissioned downloads and seperate zip for file/folder * update lock * default zipped name should be consistent * remove dead code * auto add extension for file name default * update changeset * update param naming for filesToZip * only retrieve required fields * Add faster dedupe lookup times * add scope to sudo service * files uses uuids, so ids should be strings * prefer folder name as root over generic folder- * update changeset * update default app side file/folder names * improve zip folder name format * improve mime guess for fallback filename * update package version * rename `getDateFormatted` to `getDateTimeFormatted` * do not limit file query to 100 * remove dead type * move folderName from zipFolders under metadata * Fix zip folder name * auto sanitize names * error if no files are in the tree * add any empty folders to the tree * rename tree to buildTree and add comment * add test utils * expose new methods to types * Improve test coverage * add comments * remove dead type from name-deduper * improve name-deduper tests * dont restrict folder depth in tree * remove unnecessary cast * inline storage mock * move mocked services to respective folder * improve folders buildTree tests * add comment for id restriction on child lookup * add limit check to buildTree * bring buildtree in zipfolder inline with other tests * Update legal-streets-wonder.md * Improve /assets/files/ error handling * cleanup * add sdk methods * Update legal-streets-wonder.md * correct key type in downloadFolderZip * free URL memory after download * rename type to output and improve return type --------- Co-authored-by: Alex Gaillard <[email protected]> Co-authored-by: daedalus <[email protected]> * New Crowdin updates (#26249) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Romanian) * New translations en-us.yaml (French) * New translations en-us.yaml (Spanish) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Bulgarian) * New translations en-us.yaml (Catalan) * New translations en-us.yaml (Danish) * New translations en-us.yaml (German) * New translations en-us.yaml (Greek) * New translations en-us.yaml (Finnish) * New translations en-us.yaml (Hungarian) * New translations en-us.yaml (Italian) * New translations en-us.yaml (Japanese) * New translations en-us.yaml (Georgian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Mongolian) * New translations en-us.yaml (Dutch) * New translations en-us.yaml (Polish) * New translations en-us.yaml (Slovak) * New translations en-us.yaml (Slovenian) * New translations en-us.yaml (Albanian) * New translations en-us.yaml (Swedish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Chinese Simplified) * New translations en-us.yaml (Chinese Traditional) * New translations en-us.yaml (Vietnamese) * New translations en-us.yaml (Portuguese, Brazilian) * New translations en-us.yaml (Indonesian) * New translations en-us.yaml (Spanish, Chile) * New translations en-us.yaml (Spanish, Mexico) * New translations en-us.yaml (Marathi) * New translations en-us.yaml (Thai) * New translations en-us.yaml (Croatian) * New translations en-us.yaml (Estonian) * New translations en-us.yaml (English, Canada) * New translations en-us.yaml (English, United Kingdom) * New translations en-us.yaml (French, Canada) * New translations en-us.yaml (Esperanto) * New translations en-us.yaml (Breton) * New translations en-us.yaml (Bosnian) * New translations en-us.yaml (Serbian (Latin)) * New translations en-us.yaml (Nepali) * New translations en-us.yaml (Kurmanji (Kurdish)) * New translations en-us.yaml (Sorani (Kurdish)) * New translations en-us.yaml (Spanish, Latin America) * Update source file en-US.yaml * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Spanish, Latin America) * New translations en-us.yaml (Spanish, Latin America) * Update source file en-US.yaml * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Spanish, Latin America) * New translations en-us.yaml (Romanian) * New translations en-us.yaml (French) * New translations en-us.yaml (Spanish) * New translations en-us.yaml (Afrikaans) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Bulgarian) * New translations en-us.yaml (Catalan) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Danish) * New translations en-us.yaml (German) * New translations en-us.yaml (Greek) * New translations en-us.yaml (Finnish) * New translations en-us.yaml (Hebrew) * New translations en-us.yaml (Hungarian) * New translations en-us.yaml (Italian) * New translations en-us.yaml (Japanese) * New translations en-us.yaml (Georgian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Mongolian) * New translations en-us.yaml (Dutch) * New translations en-us.yaml (Norwegian) * New translations en-us.yaml (Polish) * New translations en-us.yaml (Portuguese) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Slovak) * New translations en-us.yaml (Slovenian) * New translations en-us.yaml (Albanian) * New translations en-us.yaml (Serbian (Cyrillic)) * New translations en-us.yaml (Swedish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Chinese Simplified) * New translations en-us.yaml (Chinese Traditional) * New translations en-us.yaml (Vietnamese) * New translations en-us.yaml (Icelandic) * New translations en-us.yaml (Portuguese, Brazilian) * New translations en-us.yaml (Indonesian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Spanish, Chile) * New translations en-us.yaml (Spanish, Mexico) * New translations en-us.yaml (Marathi) * New translations en-us.yaml (Thai) * New translations en-us.yaml (Croatian) * New translations en-us.yaml (Estonian) * New translations en-us.yaml (English, Canada) * New translations en-us.yaml (English, United Kingdom) * New translations en-us.yaml (French, Canada) * New translations en-us.yaml (Esperanto) * New translations en-us.yaml (Breton) * New translations en-us.yaml (Bosnian) * New translations en-us.yaml (Sinhala) * New translations en-us.yaml (Serbian (Latin)) * New translations en-us.yaml (Nepali) * New translations en-us.yaml (Kurmanji (Kurdish)) * New translations en-us.yaml (Sorani (Kurdish)) * Fix broken translations * New translations en-us.yaml (Ukrainian) * New translations en-us.yaml (Spanish, Latin America) * New translations en-us.yaml (Romanian) * New translations en-us.yaml (French) * New translations en-us.yaml (Spanish) * New translations en-us.yaml (Afrikaans) * New translations en-us.yaml (Arabic) * New translations en-us.yaml (Bulgarian) * New translations en-us.yaml (Catalan) * New translations en-us.yaml (Czech) * New translations en-us.yaml (Danish) * New translations en-us.yaml (German) * New translations en-us.yaml (Greek) * New translations en-us.yaml (Finnish) * New translations en-us.yaml (Hebrew) * New translations en-us.yaml (Hungarian) * New translations en-us.yaml (Italian) * New translations en-us.yaml (Japanese) * New translations en-us.yaml (Georgian) * New translations en-us.yaml (Korean) * New translations en-us.yaml (Lithuanian) * New translations en-us.yaml (Mongolian) * New translations en-us.yaml (Dutch) * New translations en-us.yaml (Norwegian) * New translations en-us.yaml (Polish) * New translations en-us.yaml (Portuguese) * New translations en-us.yaml (Russian) * New translations en-us.yaml (Slovak) * New translations en-us.yaml (Slovenian) * New translations en-us.yaml (Albanian) * New translations en-us.yaml (Serbian (Cyrillic)) * New translations en-us.yaml (Swedish) * New translations en-us.yaml (Turkish) * New translations en-us.yaml (Chinese Simplified) * New translations en-us.yaml (Chinese Traditional) * New translations en-us.yaml (Vietnamese) * New translations en-us.yaml (Icelandic) * New translations en-us.yaml (Portuguese, Brazilian) * New translations en-us.yaml (Indonesian) * New translations en-us.yaml (Persian) * New translations en-us.yaml (Spanish, Chile) * New translations en-us.yaml (Spanish, Mexico) * New translations en-us.yaml (Marathi) * New translations en-us.yaml (Thai) * New translations en-us.yaml (Croatian) * New translations en-us.yaml (Estonian) * New translations en-us.yaml (Azerbaijani) * New translations en-us.yaml (Hindi) * New translations en-us.yaml (Malay) * New translations en-us.yaml (English, Canada) * New translations en-us.yaml (English, United Kingdom) * New translations en-us.yaml (French, Canada) * New translations en-us.yaml (Faroese) * New translations en-us.yaml (Esperanto) * New translations en-us.yaml (Breton) * New translations en-us.yaml (Bosnian) * New translations en-us.yaml (Serbian (Latin)) * New translations en-us.yaml (Bengali, India) * New translations en-us.yaml (Nepali) * New translations en-us.yaml (Kurmanji (Kurdish)) * New translations en-us.yaml (Sorani (Kurdish)) * Fix broken translations --------- Co-authored-by: Alex Gaillard <[email protected]> * Release 11.14.0 (#26352) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Try updating npm to v11 (#26353) * Try sudo when installing npm (#26354) * Try remove registry (#26355) * Try inline npm install (#26356) * Install npm with pnpm (#26357) * Try swap sequence (#26358) * Try swap sequence * Remove cache * deps(deps): bump nodemailer from 7.0.10 to 7.0.11 (#26288) * deps(deps): bump nodemailer from 7.0.10 to 7.0.11 Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 7.0.10 to 7.0.11. - [Release notes](https://github.com/nodemailer/nodemailer/releases) - [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodemailer/nodemailer/compare/v7.0.10...v7.0.11) --- updated-dependencies: - dependency-name: nodemailer dependency-version: 7.0.11 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> * add changeset --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: daedalus <[email protected]> * Fix disabled state for `datetime`, `file`, `select-dropdown-m2o` & `collection-item dropdowns` interfaces (#26365) * Fix disabled state for `datetime`,`m2o`,`file` and `collection-item-dropdown` interfaces * Fix typing error * add changeset * Update app/src/interfaces/collection-item-dropdown/collection-item-dropdown.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/interfaces/collection-item-dropdown/collection-item-dropdown.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/interfaces/collection-item-dropdown/collection-item-dropdown.vue Co-authored-by: Florian C. Wachmann <[email protected]> * Update app/src/interfaces/datetime/datetime.vue Co-authored-by: Florian C. Wachmann <[email protected]> * fix issues from code suggestion commits --------- Co-authored-by: Florian C. Wachmann <[email protected]> * fix(storage-driver-supabase): failure with empty string root folder (#26384) * fix(storage-driver-supabase): failure with empty string root folder * fix(storage-driver-supabase): format * Use standardized header action button component (#26375) * Create reusable header bar action button comp * Use in activity route * Use in collection * Use vue router prop type * Use on files * Add support for download * use on file detail * Add support for active * Use on dashboard * Fix typo * Use on insights overview * Couple more * Update flows * Flows * Policies * Presets * Prestes 2 * Project settings * Roles * Role item detail * Public role * Sys logs * Translations * Translations, users * User detail * Drawers * Action components * Apply suggestion from @AlexGaillard * Install test required deps * Import comps/directives * Add tests for new comp * Add changeset * Run formatter --------- Co-authored-by: Alex Gaillard <[email protected]> * Enforce vue/no-undef-components (#26390) * Enforce vue/no-undef-components * Update tests * Run formatter * Enforce PascalCase component names (#26391) * Enable eslint rule * Auto-fix kebab-case usage * Add changeset * Run formatter * Enable for globals as well * Run formatter * Yeehaw? * Add themes to changeset * deps(actions)(deps): bump dessant/lock-threads from 5 to 6 (#26381) Bumps [dessant/lock-threads](https://github.com/dessant/lock-threads) from 5 to 6. - [Release notes](https://github.com/dessant/lock-threads/releases) - [Changelog](https://github.com/dessant/lock-threads/blob/main/CHANGELOG.md) - [Commits](https://github.com/dessant/lock-threads/compare/v5...v6) --- updated-dependencies: - dependency-name: dessant/lock-threads dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * deps(actions)(deps): bump actions/cache from 4 to 5 (#26382) Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Do not allow other file types for image interface (#25946) * feat: add image validation type for file image upload * refactor: format * feat: add changeset * feat: aggregate file validation errors in upload dialog * fix: fix formating --------- Co-authored-by: Alex Gaillard <[email protected]> * Update .changeset/rare-trams-search.md Co-authored-by: daedalus <[email protected]> * Update .changeset/rare-trams-search.md Co-authored-by: daedalus <[email protected]> --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alex Gaillard <[email protected]> Co-authored-by: Florian C. Wachmann <[email protected]> Co-authored-by: Rob Luton <[email protected]> Co-authored-by: Brainslug <[email protected]> Co-authored-by: daedalus <[email protected]> Co-authored-by: ian <[email protected]> Co-authored-by: Brainslug <[email protected]> Co-authored-by: Rijk van Zanten <[email protected]> Co-authored-by: Bryant Gillespie <[email protected]> Co-authored-by: Nitwel <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: rijkvanzanten <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Gerard Lamusse <[email protected]> Co-authored-by: bryantgillespie <[email protected]> Co-authored-by: Connor Winston <[email protected]> Co-authored-by: Arthur de Rugy <[email protected]> Co-authored-by: Gaetan SENN <[email protected]>
Scope
What's changed:
tabularandcardsare no longer dependant on the item count request completing before displayBEFORE
Screen.Recording.2025-10-24.at.3.14.09.PM.mov
AFTER
Screen.Recording.2025-10-24.at.3.12.57.PM.mov
Potential Risks / Drawbacks
Tested Scenarios
Review Notes / Questions
Checklist
Fixes #25984