feat(redirect): add flexible named-link matching #28

Merged
eleith merged 1 commits from feat/flexible-matching into main 2026-11-14 05:35:36 +00:00

Changes

  • Add inherited case_insensitive and ignore_trailing_slash options, enabled by default, plus opt-in forward_path. Query forwarding remains independent.
  • Use prepared per-domain lookups, longest segment-prefix matching, collision rejection and alias-aware direct-loop guards. Inactive matches use fallback rather than a broader parent.
  • Attribute future matched visits to the configured link path without rewriting historical data or adding migrations/jobs.
  • Show effective options in Link details and Health with concise values and a plain combined Link field. Separate explicit redirect selection from shared response handling.

Case matching is ASCII-only. Root/Fallback behavior is unchanged.

Verification

Four independent reviews clean. Fresh pnpm verify passed: 634 unit tests, 6 script tests, 7 production Chromium stories and 5 service cases; Svelte 0 errors/warnings. Scoped lint, Changesets and whitespace passed.

Docker not run. Remote CI remains separate.

## Changes - Add inherited `case_insensitive` and `ignore_trailing_slash` options, enabled by default, plus opt-in `forward_path`. Query forwarding remains independent. - Use prepared per-domain lookups, longest segment-prefix matching, collision rejection and alias-aware direct-loop guards. Inactive matches use fallback rather than a broader parent. - Attribute future matched visits to the configured link path without rewriting historical data or adding migrations/jobs. - Show effective options in Link details and Health with concise values and a plain combined Link field. Separate explicit redirect selection from shared response handling. Case matching is ASCII-only. Root/Fallback behavior is unchanged. ## Verification Four independent reviews clean. Fresh `pnpm verify` passed: 634 unit tests, 6 script tests, 7 production Chromium stories and 5 service cases; Svelte 0 errors/warnings. Scoped lint, Changesets and whitespace passed. Docker not run. Remote CI remains separate.
eleith-gitea-agent Bot added 1 commit 2026-11-14 05:31:58 +00:00
feat(redirect): add flexible named-link matching
ci/woodpecker/pr/cli Pipeline was successful
ci/woodpecker/pr/config Pipeline was successful
ci/woodpecker/pr/db Pipeline was successful
ci/woodpecker/pr/web Pipeline was successful
ci/woodpecker/pr/worker Pipeline was successful
ci/woodpecker/push/cli Pipeline was successful
ci/woodpecker/push/config Pipeline was successful
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
ci/woodpecker/push/worker Pipeline was successful
85bc87de25
eleith merged commit 85bc87de25 into main 2026-11-14 05:35:36 +00:00
eleith deleted branch feat/flexible-matching 2026-11-14 05:35:36 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: eleith/goto#28