avo
4.4.0 at a glance
| 🎸 Features | 🐛 Fixes | 🧰 Other changes | 🔀 Total contributions | 📦 Packages | 🙌 Contributors |
|---|---|---|---|---|---|
| 55 | 97 | 55 | 207 | 23 | 9 |
Now stable: avo-ai, avo-mcp_server and avo-cli leave beta with 4.4.0.
🎸 Features
- feat: a flat button style @adrianthedev (
avo v.4.4.0#4996) - feat: a plugin reports its own settings to telemetry @adrianthedev (
avo v.4.4.0#4993) - Setting an add-on's options without its gem names the gem to install @adrianthedev (
avo v.4.4.0#4994) - feat: a plugin's row on the status page can carry a marker from its gem @Paul-Bob (
avo v.4.4.0#4991) - feat: setting to keep the admin running without a valid license @Paul-Bob (
avo v.4.3.13#4980) - Add resource view slots and lazy default replacements @adrianthedev (
avo v.4.3.11#4944) - Share native control rendering with dashboard headers @adrianthedev (
avo v.4.3.11#4971) - Status page at /status with update badges, Update all and release notes @adrianthedev (
avo v.4.3.11#4963) - Add before/after attach and detach hooks to association fields @Paul-Bob (
avo v.4.3.11#4969) - Persist sorting, selection and index pagination, with a toggle per kind of state @Paul-Bob (
avo v.4.3.11#4959) - Add opt-in commit and push to avo:update @adrianthedev (
avo v.4.3.10#4956) - feat: delete confirmation names the records the destroy cascades to @Paul-Bob (
avo v.4.3.8#4948) - Add refresh_on_destroy option to has_many fields @Paul-Bob (
avo v.4.3.8#4947) - feat: static telemetry counts scopes @adrianthedev (
avo v.4.3.6#4945) - feat: static telemetry collector without identifying data @adrianthedev (
avo v.4.3.6#4940) - feat: developers can rebind or disable any keyboard shortcut @adrianthedev (
avo v.4.3.6#4934) - feat: array resources can paginate at the source with page and per_page @Paul-Bob (
avo v.4.3.6#4928) - Show date picker month and weekday names in the app locale @Shub3am (
avo v.4.3.2#4873) - Use the model's attribute translations for field labels @Shub3am (
avo v.4.3.2#4869) - Let actions hide the confirm and cancel buttons @Shub3am (
avo v.4.3.2#4868) - Support link_to_record on number and date fields @Shub3am (
avo v.4.3.2#4871) - feat(key_value): suggest keys and values while editing @nnegi88 (
avo v.4.3.1#4866) - Add autofocus field option @Shub3am (
avo v.4.3.1#4853) - feat: plugin keyboard shortcuts can be rebound from config.hotkeys @adrianthedev (
avo-advanced_search v.4.3.2,avo-ai v.4.4.0,avo-custom_controls v.4.3.1,avo-kanban v.4.3.1#404) - Configure dynamic filters, audit logging, notifications and meta inside Avo.configure @adrianthedev (
avo-ai v.4.4.0,avo-api v.4.4.0,avo-audit_logging v.4.4.0,avo-dynamic_filters v.4.4.0,avo-mcp_server v.4.4.0,avo-notifications v.4.4.0#504) - Audit logging: log every change to a model, even outside Avo @Paul-Bob (
avo-ai v.4.4.0,avo-audit_logging v.4.3.2,avo-mcp_server v.4.4.0#419) - Create reusable skills from AI chat @adrianthedev (
avo-ai v.4.4.0#402) - feat(avo-ai): actions can close the chat window they were run from (AVO-1647) @adrianthedev (
avo-ai v.4.4.0#481) - feat(avo-ai): pit-core avocado on the Agent button and new-chat page @adrianthedev (
avo-ai v.4.4.0#416) - feat(avo-ai): use full-page chat without the floating bar @adrianthedev (
avo-ai v.4.4.0#407) - feat(avo-ai): search remote MCP tools instead of loading every one @Paul-Bob (
avo-ai v.4.4.0#372) - feat(avo-ai): pit-core avocado on the retracted chat button @adrianthedev (
avo-ai v.4.4.0#377) - Add dynamic fields to record chips @adrianthedev (
avo-ai v.4.4.0#361) - feat(avo-licensing): the licensing lab @Paul-Bob (
avo-api v.4.4.0,avo-authorization v.4.4.0,avo-dashboards v.4.4.0,avo-licensing v.4.4.0,avo-mcp_server v.4.4.0,avo-record_reordering v.4.4.0,avo-scopes v.4.4.0#498) - Audit logging: change what an entry stores with a payload proc @Paul-Bob (
avo-audit_logging v.4.3.2#501) - Audit logging: the History card and filter options follow the host's activity policy @Paul-Bob (
avo-audit_logging v.4.3.2#425) - Audit logging: read an activity's record, resource, model and policy in code @Paul-Bob (
avo-audit_logging v.4.3.2#424) - Audit logging: pause logging for a block of code @Paul-Bob (
avo-audit_logging v.4.3.2#423) - Audit logging: record activity from your own code, with or without a user @Paul-Bob (
avo-audit_logging v.4.3.1#414) - feat(avo-licensing): the admin blocks on a license it cannot confirm @Paul-Bob (
avo-authorization v.4.4.0,avo-licensing v.4.4.0#499) - Add content slots to Calendar and Notifications indexes @adrianthedev (
avo-calendar_view v.4.4.0,avo-mcp_server v.4.4.0,avo-notifications v.4.4.0#415) - feat(avo-collaboration): watchers take an author proc and can hide values @adrianthedev (
avo-collaboration v.4.3.1#395) - Add custom controls to dashboard headers @adrianthedev (
avo-custom_controls v.4.4.0,avo-dashboards v.4.3.4#484) - Load dashboard cards on scroll, and on click for manual cards @Paul-Bob (
avo-dashboards v.4.4.0#483) - feat(avo-dynamic_filters): pinned and inline filters, and a new filter dropdown @adrianthedev (
avo-dynamic_filters v.4.4.0#405) - Dynamic filters stay applied across visits when session persistence is on @Paul-Bob (
avo-dynamic_filters v.4.3.2#469) - feat(avo-licensing): the status page marks add-ons the license doesn't include as off @Paul-Bob (
avo-licensing v.4.4.0#503) - feat(avo-licensing): the trial notice asks an Avo 4 trial beside Avo 3 to migrate on Avo HQ @Paul-Bob (
avo-licensing v.4.3.4#458) - feat(avo-licensing): build the HQ payload from core's static telemetry @adrianthedev (
avo-licensing v.4.3.1#412) - Delete existing nested records from the parent form @Paul-Bob (
avo-nested v.4.4.0#475) - feat(avo-scopes): the resource knows which scope its index shows @Paul-Bob (
avo-scopes v.4.3.2#488)
✨ Enhancements
- enhancement: select all on the grid view @Paul-Bob (
avo v.4.3.10#4955) - enhancement: index_query in action fields, messages, and the grid view @Paul-Bob (
avo v.4.3.10#4949) - enhancement: dropdown rows share one hover fill and drop the focus ring @adrianthedev (
avo v.4.3.6#4935) - Badge field: select on forms with show_on: :forms @Shub3am (
avo v.4.3.1#4858)
🐛 Bug Fixes
- fix: ignore encoded_filters values that don't decode to filters @officialasishkumar (
avo v.4.4.0#4989) - fix: deleting a Media Library file removes it from its records, and the confirm says so @Paul-Bob (
avo v.4.4.0#4998) - fix: distribution chart adds up the counts of values sharing a label @officialasishkumar (
avo v.4.4.0#4988) - fix: Media Library delete removes the file and refuses attached blobs @officialasishkumar (
avo v.4.4.0#4987) - fix: a refused page keeps the panel's JavaScript, and a refused DELETE can't replay @Paul-Bob (
avo v.4.4.0#4983) - Status and updates pages compile through Herb, and CI checks it @adrianthedev (
avo v.4.3.12#4981) - Keep a lazy index's header description in step with its frame @Paul-Bob (
avo v.4.3.11#4973) - Show the dedicated search results shortcut badge @adrianthedev (
avo v.4.3.11#4968) - Run the host Avo initializer once at boot, and take prop_initializer 0.5.0 @Paul-Bob (
avo v.4.3.11#4966) - fix: stop grid view cache logging missing templates and refresh cached cards after upgrades @Paul-Bob (
avo v.4.3.11#4965) - belongs_to select keeps its value past the lookup limit and says when it's capped @adrianthedev (
avo v.4.3.11#4962) - fix: remove unused resource_table and resource_grid helpers @Paul-Bob (
avo v.4.3.11#4960) - fix: run actions only on records the policy allows, and answer a refusal with nowhere to go back to with a 403 @Paul-Bob (
avo v.4.3.9#4951) - test: scope the HABTM detach spec to the users panel @Paul-Bob (
avo v.4.3.8#4950) - fix: the index header no longer leaves a gap for an empty toolbar row @adrianthedev (
avo v.4.3.6#4933) - fix: the tags field loading spinner is vertically centered on the text @Paul-Bob (
avo v.4.3.6#4932) - fix: Backspace after pasting into a selected tag deletes one character, not the whole paste @Paul-Bob (
avo v.4.3.6#4931) - fix: escape query values appended by URIService @RaphaelFakhri (
avo v.4.3.6#4926) - fix: pasting into a tags field in select mode no longer drops the text @Paul-Bob (
avo v.4.3.6#4922) - fix: development reloads no longer stack copies of Avo's turbo stream actions @Paul-Bob (
avo v.4.3.6#4929) - fix: a polymorphic belongs_to sent only a new type no longer links a record by the old id @Paul-Bob (
avo v.4.3.5#4917) - A belongs_to among attach_fields now saves onto the join record @Paul-Bob (
avo v.4.3.5#4919) - A form with a belongs_to that matches no record keeps the user's other edits @Paul-Bob (
avo v.4.3.5#4915) - Attaching a has_many, has_one or HABTM record saves only what its attach_scope offers @Paul-Bob (
avo v.4.3.5#4916) - A belongs_to value that matches no record is a form error, not a 404 @Paul-Bob (
avo v.4.3.5#4911) - Key association listings by field id @joeljunstrom (
avo v.4.3.4#4902) - fix: let fill_field take typed JSON values, not only form strings @Paul-Bob (
avo v.4.3.4#4910) - fix: enforce key_value field disable_* options when saving @Paul-Bob (
avo v.4.3.4#4909) - fix: disable non-standalone actions on has_many panels until a record is selected @Paul-Bob (
avo v.4.3.3#4904) - Allowlist dummy associations for Ransack 6 combinator searches @nnegi88 (
avo v.4.3.3#4901) - Fetch tag suggestions again after a value is selected in select mode @Shub3am (
avo v.4.3.2#4872) - fix: boolean group field stops writing an option's key twice, so json 3 can encode it @Paul-Bob (
avo v.4.3.2#4895) - fix(i18n): store set_locale only after authentication (GHSA-h7x6-9mqf-vgmx) @Paul-Bob (
avo v.4.3.1#4893) - fix(i18n): ignore unknown locales in set_locale and force_locale, deprecate set_locale @bruno-costanzo (
avo v.4.3.1#4886) - fix: stop mapping budget and money columns to the removed currency field @afurm (
avo v.4.3.1#4890) - Reactive fields post only when a watched input changes @Paul-Bob (
avo v.4.3.1#4887) - Fix country field default storing the country name instead of the code @Paul-Bob (
avo v.4.3.1#4885) - Fix accessibility gaps: name the modal dialog, give tabs unique ids, point belongs_to labels at the select, name icon-only actions @Paul-Bob (
avo v.4.3.1#4880) - fix(index): keep selected rows and scroll position when going back from a record @nnegi88 (
avo v.4.3.1#4867) - Make page-only global search highlight the Enter destination @adrianthedev (
avo-advanced_search v.4.4.0#477) - Searchable belongs_to: only the visible search input carries the field id @Paul-Bob (
avo-advanced_search v.4.3.1#374) - fix: gem tooltips follow core's text-unless-safe rule @Paul-Bob (
avo-ai v.4.4.0,avo-audit_logging v.4.3.2,avo-dashboards v.4.3.4,avo-dynamic_filters v.4.3.2#500) - feat(avo-ai, avo-mcp_server): turn chat and MCP on or off per user; custom MCP tools declare their resources @Paul-Bob (
avo-ai v.4.4.0,avo-mcp_server v.4.4.0,avo-menu v.4.4.0#494) - Audit logging: outside_avo logs changes made outside Avo from their PaperTrail version @Paul-Bob (
avo-ai v.4.4.0,avo-audit_logging v.4.3.2,avo-mcp_server v.4.4.0#491) - Close the remaining write gaps around chat skills @adrianthedev (
avo-ai v.4.4.0#486) - fix(avo-ai): a query on a column the Index hides matches only rows the user may open @Paul-Bob (
avo-ai v.4.4.0#455) - test: follow core's 403 refusal and act_on? on runs @Paul-Bob (
avo-ai v.4.4.0,avo-authorization v.4.3.3,avo-forms v.4.3.1,avo-nested v.4.3.2#447) - fix(avo-ai): the chat reads a record's fields and files only when show? allows it @Paul-Bob (
avo-ai v.4.4.0#442) - fix(avo-ai): record a typed confirmation, and say the write is running @adrianthedev (
avo-ai v.4.4.0#245) - fix(avo-ai): development reloads no longer stack copies of the messages helper @Paul-Bob (
avo-ai v.4.4.0#397) - fix(avo-ai, avo-mcp_server): a new polymorphic type sent without its id is refused, naming the id @Paul-Bob (
avo-ai v.4.4.0,avo-mcp_server v.4.4.0#393) - fix(avo-ai, avo-mcp_server): AI and MCP writes go through your resource's fields @Paul-Bob (
avo-ai v.4.4.0,avo-api v.4.3.1,avo-mcp_server v.4.4.0#385) - fix(avo-ai): chat-loader no longer fails to connect on every Avo page @Paul-Bob (
avo-ai v.4.4.0#373) - Keep field autofocus out of AI chat cards and nested and reactive forms @Paul-Bob (
avo-ai v.4.4.0,avo-nested v.4.3.1,avo-reactive_fields v.4.3.1#355) - fix(avo-ai): boot on released ruby_llm when the mcp gem is bundled @Paul-Bob (
avo-ai v.4.4.0#371) - fix(avo-api): belongs_to and has_one ids read as the related record's to_param, a string @Paul-Bob (
avo-api v.4.4.0#454) - fix(avo-api): the gem no longer sets root_path, license_key or current_user_method in your app @Paul-Bob (
avo-api v.4.4.0#453) - fix(avo-authorization): with a client set, a lapsed license refuses every resource instead of turning policies off @Paul-Bob (
avo-api v.4.3.1,avo-authorization v.4.3.3,avo-kanban v.4.3.2,avo-mcp_server v.4.4.0#444) - fix(avo-api): the shipped initializer no longer sets the authorization client @Paul-Bob (
avo-api v.4.3.1#446) - fix(avo-api): association fields follow view_? and the related policy scope @Paul-Bob (
avo-api v.4.3.1#431) - fix(avo-api): a belongs_to id that matches no record answers 422 naming the field @Paul-Bob (
avo-api v.4.3.1#389) - Audit logging: passwords and other filtered values no longer reach the activity payload @Paul-Bob (
avo-audit_logging v.4.3.2,avo-mcp_server v.4.4.0#495) - Audit logging: the record opt-in judges the author it records @Paul-Bob (
avo-audit_logging v.4.3.2#482) - fix(avo-audit_logging): Undo needs a user allowed to update the record, and the activity payload hides fields they may not see @Paul-Bob (
avo-audit_logging v.4.3.1#440) - fix(avo-licensing): keep the status page reachable at /status @adrianthedev (
avo-authorization v.4.4.0,avo-licensing v.4.4.0#470) - fix(avo-nested): a nested form writes only the children the user may update or create @Paul-Bob (
avo-authorization v.4.3.3,avo-nested v.4.3.2#430) - fix(avo-authorization): repeated Avo boots no longer stack copies of the items extension @Paul-Bob (
avo-authorization v.4.3.2#396) - fix(avo-authorization): agent skill tells Action Policy clients to pass the rule as a Symbol @Paul-Bob (
avo-authorization v.4.3.1#382) - fix(avo-notifications, avo-calendar_view): bulk actions and calendar navigation stay in their own has_many panel @Paul-Bob (
avo-calendar_view v.4.3.1,avo-notifications v.4.3.1#386) - fix(avo-collaboration): a reaction can only be added with an emoji the resource offers @Paul-Bob (
avo-collaboration v.4.3.3#450) - fix(avo-collaboration): timeline requests need access to the record and its timeline @Paul-Bob (
avo-collaboration v.4.3.2#433) - Fix clipped text descenders in dashboard list cards @adrianthedev (
avo-dashboards v.4.3.3#461) - fix(avo-dashboards): a card's URL asks what the page that renders it asks @Paul-Bob (
avo-dashboards v.4.3.2#437) - fix(avo-dashboards): a card keeps to the ranges it lists @adrianthedev (
avo-dashboards v.4.3.2#422) - test(avo-dashboards): cover resource cards on the page behind an action modal @Paul-Bob (
avo-dashboards v.4.3.1#376) - Dynamic filters specs wait for the filter to apply before asserting @Paul-Bob (
avo-dynamic_filters v.4.3.2#480) - Dynamic filters ignore Enter pressed to confirm an IME conversion @Paul-Bob (
avo-dynamic_filters v.4.3.2#474) - fix(avo-dynamic_filters): a filter applies only the conditions it offers @Paul-Bob (
avo-dynamic_filters v.4.3.1#429) - fix(avo-forms): a form can set self.authorize to refuse opening, submitting and listing it @Paul-Bob (
avo-forms v.4.3.1#439) - fix(avo-http_resource): stop re-loading its lib files at boot @Paul-Bob (
avo-http_resource v.4.4.0#473) - fix(avo-http_resource): the debug console runs a probe only when the policy allows that action @Paul-Bob (
avo-http_resource v.4.3.1#435) - fix(avo-kanban): a card's # tag shows the record's to_param, not its primary key @Paul-Bob (
avo-kanban v.4.3.4#456) - fix(avo-kanban): a card hides Remove and dragging when the policy refuses them, and a column counts only the cards the user sees @Paul-Bob (
avo-kanban v.4.3.3#452) - fix(avo-kanban): kanban routes and all_boards follow the board policy, and cards their record's policy @Paul-Bob (
avo-kanban v.4.3.2,avo-menu v.4.3.1#438) - Stop logging a missing valid_indicator template at boot on view_component 4.20 @Paul-Bob (
avo-licensing v.4.4.0#471) - fix(avo-licensing): an anonymous visitor can no longer get the license blocked with a forged Host header @Paul-Bob (
avo-licensing v.4.3.3#441) - fix(avo-mcp_server): a client can't reach the server's bookkeeping by naming it @Paul-Bob (
avo-mcp_server v.4.4.0#502) - fix(avo-mcp_server): MCP tools leave out associations the policy refuses and read a has_one through its policy scope @Paul-Bob (
avo-mcp_server v.4.4.0#436) - fix(avo-mcp_server): the connections panel names an owner by to_param, not its primary key @Paul-Bob (
avo-mcp_server v.4.4.0#391) - fix(avo-mcp_server): MCP tools name and find records by to_param, so apps that hide their primary keys keep them hidden @Paul-Bob (
avo-mcp_server v.4.4.0#388) - fix(avo-menu): a sidebar action shows only when the resource's policy allows act_on? @Paul-Bob (
avo-menu v.4.3.1#445) - fix(avo-notifications): a user can only open, delete or act on their own notifications @Paul-Bob (
avo-notifications v.4.3.1#427) - fix(avo-reactive_fields): stop the missing template format warning on boot @adrianthedev (
avo-reactive_fields v.4.3.2#383) - Reactive fields post only when a watched field changes, keep focus where you moved it, and render answers in order @Paul-Bob (
avo-reactive_fields v.4.3.1#379) - fix(avo-record_reordering): the reorder endpoint refuses a move when the license lacks record reordering @Paul-Bob (
avo-record_reordering v.4.3.2#449) - fix(avo-record_reordering): moving a record needs reorder? on its policy and redirects back only within the app @Paul-Bob (
avo-record_reordering v.4.3.1#434) - fix(avo-scopes): a scope count asks the same policy as the index it counts @Paul-Bob (
avo-scopes v.4.3.1#432)
🧪 Test
- Test that a belongs_to target outside the user's policy scope is refused like a missing one @Paul-Bob (
avo v.4.3.5#4912)
✏️ Docs
- agents.md explains why license_123 only works for avo core @Paul-Bob (
avo v.4.3.11#4964) - docs(skills): an Avo 4 trial beside Avo 3 is a third amber trial state @Paul-Bob (
avo v.4.3.10#4952) - Add a spec that has_many panels apply the listed resource's policy scope @Paul-Bob (
avo v.4.3.5#4914) - Mark set_locale deprecated in the i18n skill @Paul-Bob (
avo v.4.3.1#4892) - Stop the admin-config skill tying config.currency to removed currency fields @Paul-Bob (
avo v.4.3.1#4891) - docs(avo-authorization): the agent skill says a policy scope filters has_many panels @Paul-Bob (
avo-authorization v.4.3.2#392)
💡 Refactor
- Resources get find_records, and bulk actions find the selected records with it @Paul-Bob (
avo v.4.3.5#4918) - Save a form through the field declaration the form shows @Paul-Bob (
avo v.4.3.5#4913) - refactor(avo-ai, avo-mcp_server): find records by param through core's find_records @Paul-Bob (
avo-ai v.4.4.0,avo-mcp_server v.4.4.0#394) - refactor(avo-ai, avo-mcp_server): authorize writes against the field that saves them @Paul-Bob (
avo-ai v.4.4.0,avo-authorization v.4.3.2,avo-mcp_server v.4.4.0#390)
🤖 Maintenance
- [ruby] Update all Bundler dependencies (2026-10-29) @app/depfu (
avo v.4.4.0#4954) - [js] Update all Yarn dependencies (2026-11-05) @app/depfu (
avo v.4.4.0#4979) - [ruby] Update all of rails 8.1.4 → 8.1.4.1 (minor) @app/depfu (
avo v.4.4.0#4982) - docs(skills): the paused admin retries the license every minute @Paul-Bob (
avo v.4.4.0#4997) - chore: the licensing skills say access is paused, never blocked or locked @Paul-Bob (
avo v.4.4.0#4995) - chore: PR descriptions show avo.gemspec dependency changes @Paul-Bob (
avo v.4.3.12#4978) - Release notes file Dependabot PRs under Maintenance @Paul-Bob (
avo v.4.3.12#4976) - chore(deps): bump minimatch from 3.1.2 to 3.1.5 in the npm_and_yarn group across 1 directory @app/dependabot (
avo v.4.3.11#4923) - Sync shipped skills with docs through c5b0263 (2026-11-03) @adrianthedev (
avo v.4.3.11#4972) - Sync shipped skills with docs through 151d7b0 (2026-11-02) @adrianthedev (
avo v.4.3.11#4900) - Describe Avo as an admin panel framework in the gemspec @adrianthedev (
avo v.4.3.11#4967) - [js] Update all Yarn dependencies (2026-10-29) @app/depfu (
avo v.4.3.10#4953) - Share the status page plugin list with avo-licensing @adrianthedev (
avo v.4.3.7#4946) - fix: make row clicks reliable and support middle-click @adrianthedev (
avo v.4.3.6#4939) - fix(dummy): ArrayValues controller and Playground array field records @adrianthedev (
avo v.4.3.6#4938) - chore: prepare repository for Amp orbs @adrianthedev (
avo v.4.3.6#4937) - The RubyGems homepage link now opens avohq.io/gems/avo @adrianthedev (
avo v.4.3.6#4936) - Link plugins on the status page to their avohq.io gem pages @adrianthedev (
avo v.4.3.5#4924) - chore(deps): bump markdown-it from 14.3.2 to 14.3.3 in the npm_and_yarn group across 1 directory @app/dependabot (
avo v.4.3.5#4907) - Label docs-sync PRs as Chore @Paul-Bob (
avo v.4.3.4#4908) - [ruby] Update all Bundler dependencies (2026-10-22) @app/depfu (
avo v.4.3.4#4906) - [js] Update all Yarn dependencies (2026-10-22) @app/depfu (
avo v.4.3.4#4905) - [js] Update all Yarn dependencies (2026-10-15) @app/depfu (
avo v.4.3.3#4897) - [ruby] Update all Bundler dependencies (2026-10-15) @app/depfu (
avo v.4.3.3#4898) - Sync shipped skills with docs through f6cae23 (2026-10-14) @adrianthedev (
avo v.4.3.3#4896) - [ruby] Update all Bundler dependencies (2026-10-08) @app/depfu (
avo v.4.3.2#4876) - Sync shipped skills with docs through 372e001 (2026-10-14) @adrianthedev (
avo v.4.3.1#4889) - Sync shipped skills with docs through 67e0e5d (2026-10-13) @adrianthedev (
avo v.4.3.1#4881) - chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates @app/dependabot (
avo v.4.3.1#4879) - Sync shipped skills with docs through 8e4140b (2026-10-07) @adrianthedev (
avo v.4.3.1#4874) - [js] Update all Yarn dependencies (2026-10-08) @app/depfu (
avo v.4.3.1#4875) - Sync shipped skills with docs through c73b294 (2026-10-06) @adrianthedev (
avo v.4.3.1#4814) - Move Avo core and website clones to the workspace root @adrianthedev (
avo-advanced_search v.4.3.2,avo-ai v.4.4.0,avo-api v.4.3.1,avo-audit_logging v.4.3.1,avo-authorization v.4.3.2,avo-calendar_view v.4.3.1,avo-cli v.4.4.0,avo-collaboration v.4.3.2,avo-custom_controls v.4.3.1,avo-dashboards v.4.3.2,avo-dynamic_filters v.4.3.1,avo-forms v.4.3.1#413) - chore: dummy apps boot on the next free port when theirs is taken @adrianthedev (
avo-advanced_search v.4.3.2,avo-ai v.4.4.0,avo-api v.4.3.1,avo-audit_logging v.4.3.1,avo-authorization v.4.3.2,avo-calendar_view v.4.3.1,avo-collaboration v.4.3.2,avo-custom_controls v.4.3.1,avo-dashboards v.4.3.2,avo-dynamic_filters v.4.3.1,avo-forms v.4.3.1,avo-http_resource v.4.3.1,avo-kanban v.4.3.1,avo-mcp_server v.4.4.0,avo-menu v.4.3.1,avo-nested v.4.3.2,avo-notifications v.4.3.1,avo-reactive_fields v.4.3.2,avo-record_reordering v.4.3.1,avo-scopes v.4.3.1#410) - RubyGems homepage links now open each gem's page on avohq.io @adrianthedev (
avo-advanced_search v.4.3.2,avo-ai v.4.4.0,avo-api v.4.3.1,avo-audit_logging v.4.3.1,avo-authorization v.4.3.2,avo-calendar_view v.4.3.1,avo-collaboration v.4.3.2,avo-custom_controls v.4.3.1,avo-dashboards v.4.3.2,avo-dynamic_filters v.4.3.1,avo-forms v.4.3.1,avo-http_resource v.4.3.1,avo-kanban v.4.3.1,avo-licensing v.4.3.1,avo-mcp_server v.4.4.0,avo-menu v.4.3.1,avo-nested v.4.3.2,avo-notifications v.4.3.1,avo-reactive_fields v.4.3.2,avo-record_reordering v.4.3.1,avo-scopes v.4.3.1#406) - chore(avo-ai, avo-mcp_server, avo-cli): ship 4.4.0 as stable @Paul-Bob (
avo-ai v.4.4.0,avo-cli v.4.4.0,avo-licensing v.4.4.0,avo-mcp_server v.4.4.0#509) - Default the avo-ai dummy app to gpt-6-luna @adrianthedev (
avo-ai v.4.4.0#487) - avo-ai: require released ruby_llm 2.1, defer the rename tool @adrianthedev (
avo-ai v.4.4.0#384) - avo-audit_logging: dummy sign-in forms come filled in with the seeded admin @Paul-Bob (
avo-audit_logging v.4.3.2#489) - chore: refresh workspace lockfiles @app/avo-buddy (
avo-audit_logging v.4.3.2,avo-collaboration v.4.4.0,avo-dashboards v.4.3.4,avo-dynamic_filters v.4.3.2,avo-licensing v.4.4.0#463) - Test that avo-authorization refuses denied records on the association show route @Paul-Bob (
avo-authorization v.4.3.2#387) - chore(avo-custom_controls): action link specs match the action, not the whole URL @Paul-Bob (
avo-custom_controls v.4.3.2#457) - chore(avo-licensing): access is paused, never blocked, in the words customers read @Paul-Bob (
avo-licensing v.4.4.0#505) - Link plugins to their avohq.io gem pages on the licensing status page @adrianthedev (
avo-licensing v.4.3.2#418)
Dependency changes
@@ avo-advanced_search v.4.4.0, avo-ai v.4.4.0, avo-api v.4.4.0, avo-authorization v.4.4.0, avo-calendar_view v.4.4.0, avo-collaboration v.4.4.0, avo-custom_controls v.4.4.0, avo-dashboards v.4.4.0, avo-dynamic_filters v.4.4.0, avo-forms v.4.4.0, avo-http_resource v.4.4.0, avo-kanban v.4.4.0, avo-licensing v.4.4.0, avo-mcp_server v.4.4.0, avo-menu v.4.4.0, avo-nested v.4.4.0, avo-notifications v.4.4.0, avo-reactive_fields v.4.4.0, avo-record_reordering v.4.4.0, avo-scopes v.4.4.0 @@
- avo (>= 4.3.0)
+ avo (>= 4.4.0)
@@ avo-advanced_search v.4.4.0, avo-ai v.4.4.0, avo-api v.4.4.0, avo-authorization v.4.4.0, avo-calendar_view v.4.4.0, avo-collaboration v.4.4.0, avo-custom_controls v.4.4.0, avo-dashboards v.4.4.0, avo-dynamic_filters v.4.4.0, avo-forms v.4.4.0, avo-http_resource v.4.4.0, avo-kanban v.4.4.0, avo-mcp_server v.4.4.0, avo-menu v.4.4.0, avo-nested v.4.4.0, avo-notifications v.4.4.0, avo-reactive_fields v.4.4.0, avo-record_reordering v.4.4.0, avo-scopes v.4.4.0 @@
- avo-licensing (>= 4.3.0)
+ avo-licensing (>= 4.4.0)
@@ avo-ai v.4.4.0, avo-mcp_server v.4.4.0 @@
- avo-authorization (>= 4.3.0)
+ avo-authorization (>= 4.4.0)
@@ avo-ai v.4.4.0 @@
- ruby_llm (>= 2.0.0.rc4, < 2.1)
+ ruby_llm (~> 2.1)