What
Merge trapfall-search crate (40 LOC) into trapfalld. The crate is a thin pass-through — 2 function calls delegating to trapfall-db backend methods.
Why
BMAD CTO+COO consensus: 40 LOC doesn't justify a crate boundary. The doc comment says "kept as separate crate for organisational clarity and future search-backend extensions (FTS5, Postgres trigram)." But right now it uses LIKE wildcards, not even FTS5. The abstraction is premature — it's organizational noise, not clarity.
Goal: Consolidate workspace from 9 → 6 crates.
Changes
- Move the 2 search functions from
trapfall-search/src/lib.rs into trapfalld (inline or small module)
- Update any references in
trapfalld that import from trapfall-search
- Remove
trapfall-search/ directory
- Remove from workspace members and dependency lists
- Verify search endpoint still works
Testing
cargo build --workspace — must pass
cargo test --workspace — all 231 tests must still pass
- Verify
/api/issues?q=... search endpoint returns correct results
What
Merge
trapfall-searchcrate (40 LOC) intotrapfalld. The crate is a thin pass-through — 2 function calls delegating totrapfall-dbbackend methods.Why
BMAD CTO+COO consensus: 40 LOC doesn't justify a crate boundary. The doc comment says "kept as separate crate for organisational clarity and future search-backend extensions (FTS5, Postgres trigram)." But right now it uses
LIKEwildcards, not even FTS5. The abstraction is premature — it's organizational noise, not clarity.Goal: Consolidate workspace from 9 → 6 crates.
Changes
trapfall-search/src/lib.rsintotrapfalld(inline or small module)trapfalldthat import fromtrapfall-searchtrapfall-search/directoryTesting
cargo build --workspace— must passcargo test --workspace— all 231 tests must still pass/api/issues?q=...search endpoint returns correct results