v0.1.7 — Resolver made framework-agnostic (component_reason data-driven, .ts/.tsx fix) + Next.js benchmark
Latest
·
1 commit
to main
since this release
Changed
resolver.py:component_reason()no longer hardcodes Rails component descriptions (controller/operation/form/model/serializer) — now derives text fromcontext.yaml's owncomponents.<name>.responsibility/patterns, so a non-Rails component namedmodel(or any of those 5 names) no longer leaks Rails-specific text (ApplicationForm,attr_reader).resolver.py:.ts/.tsxfiles are no longer misclassified as directories in file inference; the "specific file" check is now based on whether the path has any extension, not a hardcoded.rb/.py/.jsallowlist.resolver.py: the directory-search naming hint is now derived fromcontext.yaml's ownfiles.<component>.namingtemplates instead of a hardcoded.rbhint.__init__.py,cli.py: wording no longer describes the resolver itself as Rails-only (thearchitecture validatesubcommand remains genuinely Rails-only and its help text still says so).
Added
examples/nextjs-sample/— a Next.js App Router / Server Actions reference sample (context.yaml + tests + context-decisions.md), generated via/oc-setup, used to benchmark the resolver on a second framework.docs/nextjs-effectiveness-report.md— coverage/amplification/token-reduction results against the Next.js sample, and the writeup of both bugs fixed in this release.docs/nextjs-real-world-test-report.md— results from testing against an unmodified third-party Next.js repo; surfaces an open finding (not fixed in this release): the resolver's routing threshold requires ≥2 keyword hits, so natural single-concept phrasing can silently fail to route.
Verification
pytest tests/test_hook_integration.py -v— 19/19 pass- Manual
resolvesmoke tests against bothrails-hmvc-sampleandnextjs-sampleconfirm no regression and no Rails-text leakage