avo-ai
🎸 Features
- Configure dynamic filters, audit logging, notifications and meta inside Avo.configure @adrianthedev (#504) (also in avo-api, avo-audit_logging, avo-dynamic_filters, avo-mcp_server, avo-meta, avo-notifications)
- Audit logging: log every change to a model, even outside Avo @Paul-Bob (#419) (also in avo-audit_logging, avo-mcp_server)
- Create reusable skills from AI chat @adrianthedev (#402)
- feat(avo-ai): actions can close the chat window they were run from (AVO-1647) @adrianthedev (#481)
- feat(avo-ai): pit-core avocado on the Agent button and new-chat page @adrianthedev (#416)
- feat: plugin keyboard shortcuts can be rebound from config.hotkeys @adrianthedev (#404) (also in avo-advanced_search, avo-custom_controls, avo-kanban)
- feat(avo-ai): use full-page chat without the floating bar @adrianthedev (#407)
- feat(avo-ai): search remote MCP tools instead of loading every one @Paul-Bob (#372)
- feat(avo-ai): pit-core avocado on the retracted chat button @adrianthedev (#377)
- Add dynamic fields to record chips @adrianthedev (#361)
🐛 Bug Fixes
- fix: gem tooltips follow core's text-unless-safe rule @Paul-Bob (#500) (also in avo-audit_logging, avo-dashboards, avo-dynamic_filters)
- feat(avo-ai, avo-mcp_server): turn chat and MCP on or off per user; custom MCP tools declare their resources @Paul-Bob (#494) (also in avo-mcp_server, avo-menu)
- Audit logging: outside_avo logs changes made outside Avo from their PaperTrail version @Paul-Bob (#491) (also in avo-audit_logging, avo-mcp_server)
- Close the remaining write gaps around chat skills @adrianthedev (#486)
- fix(avo-ai): a query on a column the Index hides matches only rows the user may open @Paul-Bob (#455)
- test: follow core's 403 refusal and act_on? on runs @Paul-Bob (#447) (also in avo-authorization, avo-forms, avo-nested)
- fix(avo-ai): the chat reads a record's fields and files only when show? allows it @Paul-Bob (#442)
- fix(avo-ai): record a typed confirmation, and say the write is running @adrianthedev (#245)
- fix(avo-ai): development reloads no longer stack copies of the messages helper @Paul-Bob (#397)
- fix(avo-ai, avo-mcp_server): a new polymorphic type sent without its id is refused, naming the id @Paul-Bob (#393) (also in avo-mcp_server)
- fix(avo-ai, avo-mcp_server): AI and MCP writes go through your resource's fields @Paul-Bob (#385) (also in avo-api, avo-mcp_server)
- fix(avo-ai): chat-loader no longer fails to connect on every Avo page @Paul-Bob (#373)
- Keep field autofocus out of AI chat cards and nested and reactive forms @Paul-Bob (#355) (also in avo-nested, avo-reactive_fields)
- fix(avo-ai): boot on released ruby_llm when the mcp gem is bundled @Paul-Bob (#371)
💡 Refactor
- refactor(avo-ai, avo-mcp_server): find records by param through core's find_records @Paul-Bob (#394) (also in avo-mcp_server)
- refactor(avo-ai, avo-mcp_server): authorize writes against the field that saves them @Paul-Bob (#390) (also in avo-authorization, avo-mcp_server)
🤖 Maintenance
- chore(avo-ai, avo-mcp_server, avo-cli): ship 4.4.0 as stable @Paul-Bob (#509) (also in avo-cli, avo-licensing, avo-mcp_server)
- Default the avo-ai dummy app to gpt-6-luna @adrianthedev (#487)
- Move Avo core and website clones to the workspace root @adrianthedev (#413) (also in avo-advanced_search, avo-api, avo-audit_logging, avo-authorization, avo-calendar_view, avo-cli, avo-collaboration, avo-custom_controls, avo-dashboards, avo-dynamic_filters, avo-forms)
- chore: dummy apps boot on the next free port when theirs is taken @adrianthedev (#410) (also in avo-advanced_search, avo-api, avo-audit_logging, avo-authorization, avo-calendar_view, avo-collaboration, avo-custom_controls, avo-dashboards, avo-dynamic_filters, avo-forms, avo-http_resource, avo-kanban, avo-mcp_server, avo-menu, avo-meta, avo-nested, avo-notifications, avo-query, avo-reactive_fields, avo-record_reordering, avo-scopes)
- RubyGems homepage links now open each gem's page on avohq.io @adrianthedev (#406) (also in avo-advanced_search, avo-api, avo-audit_logging, avo-authorization, avo-calendar_view, avo-collaboration, avo-custom_controls, avo-dashboards, avo-dynamic_filters, avo-forms, avo-http_resource, avo-kanban, avo-licensing, avo-mcp_server, avo-menu, avo-meta, avo-nested, avo-notifications, avo-permissions, avo-reactive_fields, avo-record_reordering, avo-scopes)
- avo-ai: require released ruby_llm 2.1, defer the rename tool @adrianthedev (#384)
Dependency changes
- avo (>= 4.3.0)
+ avo (>= 4.4.0)
- avo-authorization (>= 4.3.0)
+ avo-authorization (>= 4.4.0)
- avo-licensing (>= 4.3.0)
+ avo-licensing (>= 4.4.0)
- ruby_llm (>= 2.0.0.rc4, < 2.1)
+ ruby_llm (~> 2.1)