Skip to content

feat(catalog): add complete field-driven public filters - #7

Open
herefindalex wants to merge 10 commits into
masterfrom
fix/public-catalog-field-filters
Open

herefindalex wants to merge 10 commits into
masterfrom
fix/public-catalog-field-filters

Conversation

@herefindalex

@herefindalex herefindalex commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Public catalogue visitors currently cannot combine conditions across the complete set of product fields and category-specific Specs. This adds server-rendered, progressive GET filters for core fields and every applicable configured Spec, with one admitted published snapshot supplying definitions, options, matching, counts, sorting and pagination.

  • Add explicit text, choice, multi-choice and numeric search profiles, plus Admin configuration, source selection, typed manual adoption and durable normalization progress. Numeric conditions distinguish error magnitude from supported values/ranges.
  • Freeze filter semantics with each Product publication and reject stale activation. Preserve source-language keyword matches while displaying the selected locale; preserve filter and sorting URL state across Apply and pagination.
  • Preserve existing Raw values, source selections and manual preference/history on upgrade. Configure all 34 sample Specs explicitly for future installations; process initial normalization in bounded durable work outside the Installer write transaction.
  • Keep all core search/filter/pagination paths usable with JavaScript blocked. No version bump, tag or release is included.

Validation on final commit 3bda7f1:

  • Current-head GitHub CI passed for both push and pull_request events: PR workflow.

  • Go: 539 tests passed in 27 packages; PoC build tags: 578 passed in 27 packages; go vet ./... passed.

  • Frontend: typecheck, 59 tests and full system/public/admin build passed; generated assets match the committed build.

  • License policy passed. Sample JSON/schema/checksum and deterministic GNU gzip regeneration match; JSON schema validation passed (34 Specs, 1,200 Products, 4,834 Raw values).

  • Cross-builds passed for Linux amd64, Windows amd64 and macOS amd64/arm64. Native Windows runtime remains unverified.

  • Actual Linux browser: progressively combine Interface=SPI and supports 4 V, retain sort, paginate 27 results as 24+3, and clear to 28. Repeated native Apply/pagination/clear with CSP script-src 'none'. Admin checks covered revision conflicts preserving edits, read-only permissions, durable progress and manual preference preservation.

  • Independent whole-branch review: two Important findings and one sorting finding, regraded Important, fixed in one pass with observed RED→GREEN regressions; no findings deferred.

Limits and integration:

  • One native Apply per field keeps large field panels within the bounded GET request size. Existing installations need explicit profile configuration and normalization/adoption; no automatic sample reimport or field-name inference occurs.
  • Ten locale defaults have not received professional native-language, legal or marketing review.
  • Publication performance repair is independent PR v0.7.0 fix: avoid full catalogue reload for product publication #6. Neither branch includes the other; shared publication/worker files may need integration conflict resolution when both are accepted.
  • Thomas owns merging and release decisions. This PR has not been merged or released.

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