본문으로 건너뛰기

Abby Gets Smarter: ChromaDB Hardening, Contract Tests, and the v1.0.4 Release Push

· 약 5분
Creator, Parthenon
AI Development Assistant

A dense day on Parthenon with 19 commits focused on three interlocking themes: hardening Abby's ChromaDB knowledge substrate, broadening test coverage across the UI and service layer, and tying up the loose ends needed to ship v1.0.4 cleanly. No single flashy feature today — just the kind of careful, compounding work that makes a platform trustworthy.

Abby ChromaDB Cluster Hardening

The most substantive work today was a deep pass on the ChromaDB collections that power Abby, Parthenon's AI assistant. The problem wasn't missing data — it was bad data crowding out good signals. Three collections got meaningful treatment.

Docs Collection: Evicting the Noise

Before today, the docs collection held 68,849 chunks — but 44,113 of them were node_modules or other generated/vendor content that had no business being in a knowledge base. Cluster labels were essentially meaningless as a result.

The fix landed across ai/app/chroma/docs_taxonomy.py, ingestion.py, and services/projection.py:

  • A new path taxonomy derivation layer now tags every chunk with category, subcategory, page_type, and workspace fields
  • Vendor trees (including build-root and site/node_modules) are now explicitly skipped at ingestion time
  • Stale rows are purged on reingest, and unchanged files are refreshed when stored chunks are missing newer metadata fields
  • The projection service was updated to recover meaningful labels from legacy source_file paths for any chunks that predate the taxonomy

After the rebuild: 24,756 chunks from 480 source files, zero vendor/generated rows, and full type/category/workspace coverage throughout. That's a 64% reduction in collection size with a dramatic improvement in cluster coherence.

Clinical Reference: RxNorm Extension Removed

The clinical_reference collection was rebuilt from the authoritative OMOP query (via ai/app/chroma/clinical.py). The key outcome: RxNorm Extension concepts are no longer included. These extension entries were diluting domain clustering and producing misleading concept neighborhood results. The collection now reflects the standard vocabulary only.

OHDSI Papers: Richer Metadata

The ohdsi_papers collection previously clustered mostly by journal, year, and author — surface-level bibliographic noise rather than scientific content. The projection service update introduces broad domain plus subtopic metadata, so concept neighborhoods in this collection now reflect what papers are about rather than where and when they were published.

A companion fix (fix(ci): widen chroma ingestion metadata types to Mapping) resolved a type narrowness issue in the ingestion pipeline that was surfacing in CI — metadata values needed to accept the broader Mapping type rather than a rigid dict shape.

Expanding the Test Surface

With Abby's data layer tightened, attention turned to making sure the rest of the platform has the coverage to match. Today added tests across four distinct layers.

R Plumber + Python-AI Contract Tests

test(contract): add R plumber + python-ai service contract tests establishes the first explicit contract test layer between Parthenon's R statistical backend and the Python AI service. This is significant — it means regressions at the service boundary (payload shape changes, endpoint drift) will be caught before they reach users rather than after.

UI Snapshot Tests: Dark Clinical Theme

Ten shared UI primitives now have dark clinical theme snapshot tests (test(ui)). This matters because Parthenon's clinical theme is a first-class concern — clinicians using the platform in low-light environments need consistent, accessible rendering. Snapshot tests here act as a regression gate against accidental style drift as the component library evolves.

Concept Set Editor + Cohort Builder Component Tests

Five concept set editor components and seven cohort builder components picked up dedicated component tests today. The cohort builder in particular is one of the most complex interaction surfaces in Parthenon, with conditional logic around inclusion/exclusion criteria, temporal windows, and domain filters. Having these exercised at the component level — not just end-to-end — makes refactoring significantly safer.

Deployment and Infrastructure Fixes

Two infrastructure fixes closed out the day.

fix(deploy): preserve docs/site/build inode for nginx bind mount addresses a subtle but painful deployment issue: when the docs build process replaced the build directory wholesale, nginx's bind mount lost its inode reference and stopped serving updated content without a container restart. The fix preserves the inode across builds, making docs deploys seamless.

chore(gitignore): exclude scraper cache and Acumenus internal services keeps the repository clean of ephemeral scraper artifacts and internal service configurations that shouldn't be tracked. Combined with chore(hooks): track pre-commit hook in scripts/githooks, the developer experience around repository hygiene is now more consistent across contributor environments — the pre-commit hook is no longer something each developer has to remember to install manually.

v1.0.4 Release Notes and Roadmap

docs(release): v1.0.4 release notes + ROADMAP update means the release documentation is written and the roadmap reflects current reality. The test(v1.0.4): force testing runtime when Pest/PHPUnit detected commit ensures the CI pipeline selects the correct test runner automatically, removing a manual step that had occasionally caused confusion during release validation runs.

What's Next

With v1.0.4 documentation locked and the ChromaDB collections in a much cleaner state, the immediate priorities are:

  • Abby projection explorer: Now that cluster metadata is meaningful across all three major collections, the visual projection explorer can be wired up with reliable label rendering
  • Contract test expansion: The R/Python contract tests established today are a foundation — coverage should grow to include the full set of statistical endpoints
  • Cohort builder refinements: The new component tests will support upcoming work on temporal relationship criteria in the cohort definition editor
  • v1.0.4 release cut: Documentation is ready; the release itself follows once CI is green across the full suite

Parthenon development diary — April 9, 2026. Published to parthenon.acumenus.net.