Skip to content

release: v1.5.0 - Cognitive Orchestration, Metadata Caching, and High-Fidelity UX Refinements#32

Merged
matty-drexler merged 17 commits into
mainfrom
release-1.5.0
May 30, 2026
Merged

release: v1.5.0 - Cognitive Orchestration, Metadata Caching, and High-Fidelity UX Refinements#32
matty-drexler merged 17 commits into
mainfrom
release-1.5.0

Conversation

@matty-drexler
Copy link
Copy Markdown
Contributor

Objective

This PR delivers Version 1.5.0, a massive architectural and functional upgrade that transitions brass-monkey from a generic XML-RPC bridge into a highly intelligent, secure, and context-efficient Odoo Cognitive Orchestrator.

Key Releases & Features:

  1. The "Breadth vs. Depth" Gated Search Paradigm:

    • search_records (Breadth): Replaced search_read with a lightweight discovery tool returning our pagination envelope (with Odoo-side parallel search_count, and a semantic leads mapping of ID to Display Name). It defaults to a tight, low-token "Breadth Layout" (ID, Name, Freshness, and hierarchical parent relation), strictly excluding heavy arrays.
    • get_record / get_records (Depth): Added deep-dive dashboard fetchers that concurrently resolve relational display names, full child rows for line tables (One2many / Many2many), and the last 5 Odoo Chatter comments inside a single, highly dense turn.
    • Deprecated search_count and integrated its parallel counting natively into search_records.
  2. In-Memory Metadata Caching:

    • Introduced the MetadataCache service class.
    • Centralized layout resolution inside buildModelMetadata() (using XML-ID parent lookups and the strict if/else-if field categorization cascade).
    • Automatically detects the "Belonging Relation" parent model (e.g. project_id for tasks) and spawns parallel background warming of parent schemas.
    • Subsequent metadata fetches resolve in 0ms metadata latency, preventing N+1 database roundtrips.
  3. High-Signal UX & Navigation Enhancements:

    • Hierarchical Gated Menus (get_menu): Completely rewrote get_menu to return a recursive nested JSON tree, defaulting to a clean 2-level root apps list.
    • Local Neighborhood Context: Searching for a menu now walks up its ancestral lineage and appends all immediate folder siblings and children, keeping the tree 90% pruned while fully expanding the targeted local folder.
    • Self-Healing Actions (get_action): Automatically queries the base actions table first to auto-resolve action models (supporting window, server, client, or report actions dynamically). Resolves specific sub-view bindings and menu bindings in parallel.
    • Model Pagination (list_models): Added limit (defaulting to 50) and offset parameters to prevent massive dumps of Odoo's ~800 models.
  4. Decommissioned Server-Side Skill Gating:

    • Completely deleted SkillGuard and the server-side activate_skill tool, resolving the duplicate tool collision. The Gemini CLI client now handles 100% of the active skills prompt injections from disk perfectly.
    • Fully updated SKILL.md prompt guidelines for odoo-introspector and odoo-data-ops to teach the agent the "Breadth vs. Depth" search paradigm.
  5. Local Testing & Verification:

    • Upgraded start-inspectors.sh with CLI switches (--all, --dev, --prod, --legacy) and independent CLIENT_PORT and SERVER_PORT allocations to prevent port collisions.
    • All 12 test files (64 tests total) are 100% green.

… exact-match subfield categorization, and implement parallel multi-inspector orchestrator
…ModelMetadata with async parent warming, and search_records / get_record breadth-depth split
…__domain noise and renaming __count to count
…s action models and add structured envelope to list_models
…ew/menu resolutions, and list_models pagination limits
… align skill prompt files with search_records
@matty-drexler matty-drexler merged commit f17a4f7 into main May 30, 2026
3 checks passed
@matty-drexler matty-drexler deleted the release-1.5.0 branch May 30, 2026 12:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant