Skip to content

Add URL-synced listing search#1217

Merged
aaronpowell merged 2 commits intostagedfrom
search-deeplinking
Mar 30, 2026
Merged

Add URL-synced listing search#1217
aaronpowell merged 2 commits intostagedfrom
search-deeplinking

Conversation

@aaronpowell
Copy link
Copy Markdown
Contributor

Summary

  • add URL-synced search and filter hydration for the static listing pages
  • use query params like ?q=java instead of hash fragments because #file=... is already used for modal deep links
  • add shared helpers for restoring Choices selections and syncing query params

Closes #1174

Validation

  • bash scripts/fix-line-endings.sh
  • npm run website:build

Closes #1174

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings March 30, 2026 00:59
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds URL-synced search/filter hydration to the website’s static listing pages so shared links can include state via query params (e.g. ?q=java) while preserving existing hash-based deep links (e.g. #file=...).

Changes:

  • Introduces shared query-param helpers (getQueryParam*, updateQueryParams) for reading and syncing listing state to the URL.
  • Hydrates initial search/filter/sort state from query params across listing pages (skills, agents, hooks, workflows, plugins, instructions, tools).
  • Adds a Choices.js helper to restore selected values from hydrated state.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
website/src/scripts/utils.ts Adds helpers to read/query/update URL query params while preserving hash.
website/src/scripts/choices.ts Adds helper to programmatically restore Choices selections.
website/src/scripts/pages/skills.ts Hydrates skills filters/search from query params and syncs state back to URL.
website/src/scripts/pages/agents.ts Hydrates agents filters/search from query params and syncs state back to URL.
website/src/scripts/pages/hooks.ts Hydrates hooks filters/search from query params and syncs state back to URL.
website/src/scripts/pages/workflows.ts Hydrates workflows filters/search from query params and syncs state back to URL.
website/src/scripts/pages/plugins.ts Hydrates plugins filters/search from query params and syncs state back to URL.
website/src/scripts/pages/instructions.ts Hydrates instructions filters/search from query params and syncs state back to URL.
website/src/scripts/pages/tools.ts Hydrates tools filters/search from query params and syncs state back to URL.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@aaronpowell aaronpowell merged commit aa86725 into staged Mar 30, 2026
4 checks passed
@aaronpowell aaronpowell deleted the search-deeplinking branch March 30, 2026 01:26
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.

2 participants