stemedb/crates
jml 4012791e7e fix(api): enable non-strict mode for URL-encoded bracket notation
## Problem
Dashboard sends URL-encoded query parameters:
  ?sources%5B%5D=rfc&sources%5B%5D=owasp
  (%5B = '[', %5D = ']')

But QsQuery extractor used strict mode, which rejects encoded brackets:
  Error: "Invalid field contains an encoded bracket"

Result: All corpus filters in the dashboard failed silently.

## Solution
Changed QsQuery to use serde_qs non-strict mode:
  Config::new(5, false) // false = non-strict

Now accepts BOTH:
  - Literal brackets: ?sources[]=rfc
  - Encoded brackets: ?sources%5B%5D=rfc (browsers)

## Verification
 URL-encoded query: ?sources%5B%5D=rfc&sources%5B%5D=community
   Returns: 24 items (was: error)
   Logs: sources=Some(["rfc", "community"]) 

 Literal brackets: ?sources[]=rfc (still works)
 All 4 extractor tests pass (added encoded brackets test)
 Clippy clean (0 warnings)

## Files Changed
- crates/stemedb-api/src/extractors.rs: Use non-strict Config
- crates/stemedb-api/README.md: Document QsQuery usage
- .claude/guides/backend/api-endpoints.md: Add best practices
- CLAUDE.md: Reference extractors documentation

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-09 16:11:25 +00:00
..
stemedb-api fix(api): enable non-strict mode for URL-encoded bracket notation 2026-02-09 16:11:25 +00:00
stemedb-chaos feat: Multi-application expansion with chaos testing and community UI 2026-02-04 01:24:14 -07:00
stemedb-cluster feat: Multi-application expansion with chaos testing and community UI 2026-02-04 01:24:14 -07:00
stemedb-core feat(aphoria): add inline claim markers and claim enrichment infrastructure 2026-02-08 20:18:20 +00:00
stemedb-ingest feat: Complete Aphoria Phase 8-9 + UAT suite (90/90 tests passing) 2026-02-06 22:50:55 -07:00
stemedb-lens feat: Phase 6 UAT - Admission control, HLC recency, cluster coordination 2026-02-03 00:43:37 -07:00
stemedb-merkle feat: Distributed replication foundation (Phase 6A) - HLC, Merkle trees, CRDT stores, sync protocol 2026-02-02 19:31:54 -07:00
stemedb-ontology feat(aphoria): add inline claim markers and claim enrichment infrastructure 2026-02-08 20:18:20 +00:00
stemedb-query feat: Multi-application expansion with chaos testing and community UI 2026-02-04 01:24:14 -07:00
stemedb-rpc feat: Multi-application expansion with chaos testing and community UI 2026-02-04 01:24:14 -07:00
stemedb-sim feat: Phase 6 UAT - Admission control, HLC recency, cluster coordination 2026-02-03 00:43:37 -07:00
stemedb-storage feat(aphoria): add inline claim markers and claim enrichment infrastructure 2026-02-08 20:18:20 +00:00
stemedb-sync feat: Multi-application expansion with chaos testing and community UI 2026-02-04 01:24:14 -07:00
stemedb-wal feat: Aphoria security extractors + LLM evaluation architecture + ontology docs 2026-02-05 15:22:55 -07:00