Skip to content

feat(frameworks): harden activation with project evidence - #87

Merged
forhappy merged 4 commits into
mainfrom
agent/framework-evidence-hardening
Jul 30, 2026
Merged

feat(frameworks): harden activation with project evidence#87
forhappy merged 4 commits into
mainfrom
agent/framework-evidence-hardening

Conversation

@forhappy

Copy link
Copy Markdown
Contributor

What changed

  • add shared direct-evidence activation rules across the existing framework detectors
  • require exact imports, receivers, annotations, macros, decorators, configuration contracts, and static handler shapes before publishing framework facts
  • harden Laravel routing around the exact Illuminate\Support\Facades\Route receiver and static handlers
  • add a repository-level ProjectEvidenceIndex for npm, Composer, Python, Ruby, Maven/Gradle, Cargo, Go, .NET, and Swift manifests
  • select the nearest project boundary in monorepos and share the immutable index across extraction workers
  • replace hardcoded framework dispatch with source, config, and template pack registries
  • require matching project dependencies for SvelteKit, Nuxt, and Astro filesystem routes during repository builds
  • fingerprint project evidence in cached extractions so dependency changes invalidate only affected projects
  • preserve standalone Engine::default() extraction behavior for callers without repository context

Why

Framework detection previously allowed path conventions and textual near-matches to contribute too much confidence. That could classify unrelated APIs as framework facts, while filesystem routers lacked repository dependency evidence. The dispatcher was also centralized as a hardcoded language match, making broader framework support harder to extend consistently.

This change makes exact code/configuration evidence authoritative, treats path conventions as supporting evidence, and supplies bounded project context for cases where filesystem structure is itself the framework contract.

Impact

  • fewer false-positive framework routes and domain facts
  • monorepo-aware activation without parent dependency leakage
  • deterministic, cache-aware dependency evidence
  • a registry structure for adding larger framework packs without expanding a central match statement
  • unchanged standalone extraction compatibility

Validation

  • cargo clippy -p compass-languages -p compass-resolve -p compass-core --all-targets -- -D warnings
  • cargo test -p compass-languages -p compass-resolve -p compass-core
  • enterprise framework-resolution and pipeline scale ceilings passed
  • graphify update .

@forhappy
forhappy marked this pull request as ready for review July 30, 2026 18:24
@forhappy
forhappy merged commit 894bbe9 into main Jul 30, 2026
12 of 14 checks passed
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