Skip to content

fix: correct search, navigation, and catalog checks - #1

Merged
kishormorol merged 4 commits into
kishormorol:mainfrom
WhiteHades:fix/atlas-search-navigation-and-validation
Sep 12, 2026
Merged

kishormorol merged 4 commits into
kishormorol:mainfrom
WhiteHades:fix/atlas-search-navigation-and-validation

Conversation

@WhiteHades

Copy link
Copy Markdown
Contributor

this pr adds:

  • case-sensitive exact matches for CLI flags, so -h ranks help above -H headers
  • skip links that keep the current route and query parameters
  • mobile navigation wrapping, readable page labels, and reduced-motion scrolling
  • keyboard focus on the first added result after Show more
  • recovery from unsupported URL filters
  • validation errors for malformed records instead of tracebacks
  • route collision checks before generated pages are overwritten
  • rejection of HTTPS source redirects to HTTP
  • a correction to the Muse binary claim, backed by Meta's release manifest
  • regression tests and regenerated static pages

checks:

  • python scripts/validate.py
  • python -m unittest discover -s tests
  • node --check site/app.js
  • node tests/test_site_search.js
  • python scripts/build_catalog.py
  • deterministic generated output and whitespace checks
  • all 63 registered source URLs
  • browser checks at 320, 375, 390, 768, and 1280 pixels
  • nested skip links, invalid filters, pagination focus, and reduced motion
  • skip-link targets in all 2,725 generated pages
  • independent code review

The HTML changes regenerate tracked pages with corrected skip links and updated asset hashes. The catalog still contains 2,604 entries and 33 capabilities. Muse version and help output were inspected and the executable matched the release manifest; individual Muse entries remain documentation-backed.

kishormorol added a commit that referenced this pull request Sep 12, 2026
TestCase.enterContext landed in 3.11, so the nine new source-checker
tests errored out with AttributeError on 3.10. CI pins 3.12 and stayed
green, which hid the raised floor. Swap in start()/addCleanup, which
behaves identically and works everywhere.

Follow-up to the source-checker tests WhiteHades contributed in #1; the
tests and the behaviour they cover are theirs, this only lowers the
interpreter floor back to 3.10.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018rw2KxMtReyjCJDwrgVtZR
kishormorol added a commit that referenced this pull request Sep 12, 2026
Add an acknowledgements section naming WhiteHades for the search,
accessibility, route, source, and validation fixes in #1, so the credit
survives however the pull request is merged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018rw2KxMtReyjCJDwrgVtZR
@kishormorol

Copy link
Copy Markdown
Owner

Thanks for this — it's a careful piece of work, and the write-up made it easy to check.

I fetched the branch and ran everything:

Check Result
scripts/validate.py OK — 2604 entries, 33 capabilities
python -m unittest discover -s tests 37 passed
node --check site/app.js OK
node tests/test_site_search.js valid
scripts/build_catalog.py rebuild deterministic — regenerated output matches the tracked pages exactly
scripts/check_sources.py all 63 registered URLs resolved under the new redirect handler

A few notes on the fixes themselves:

  • The skip link was a genuine bug and I'd missed it. Generated pages carry <base href="../../">, so a bare #main-content resolved against the base and navigated off the page entirely. Emitting the full page path fixes it, and the click handler preserving query parameters is a nice touch.
  • Dropping behavior: "smooth" is right rather than a regression — styles.css already had a prefers-reduced-motion block that the JS option was overriding.
  • Using Object.hasOwn for the type filter, and testing ?type=constructor explicitly, is exactly the right instinct.
  • The validate.py restructure drops the isinstance guards only after continueing on schema failures, and the schema does guarantee those types. Correct as written.

Two follow-ups from my side:

  1. tests/test_check_sources.py uses TestCase.enterContext, which is Python 3.11+, so those nine tests error out with AttributeError on 3.10. CI pins 3.12 so it stayed green, which hid the raised floor. I've pushed a one-line swap to start()/addCleanup on the pr-1-py310-compat branch — no need for you to do anything unless you'd prefer it in your own branch.
  2. The only claim I could not verify independently is the Muse checksum. The manifest is live and the x86_linux sha256 and size are there, but I have not downloaded the 286 MB binary myself, and this reverses the atlas's earlier "ships no inspectable binary" line. If you still have the shasum -a 256 output from your check, pasting it here would close the loop.

Everything else looks good to merge. I'll merge without squashing so your commits keep their authorship, and I've added an acknowledgements section to the README.

@kishormorol
kishormorol merged commit ec9cbc5 into kishormorol:main Sep 12, 2026
1 check passed
WhiteHades pushed a commit to WhiteHades/agent-command-atlas that referenced this pull request Sep 12, 2026
TestCase.enterContext landed in 3.11, so the nine new source-checker
tests errored out with AttributeError on 3.10. CI pins 3.12 and stayed
green, which hid the raised floor. Swap in start()/addCleanup, which
behaves identically and works everywhere.

Follow-up to the source-checker tests WhiteHades contributed in kishormorol#1; the
tests and the behaviour they cover are theirs, this only lowers the
interpreter floor back to 3.10.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018rw2KxMtReyjCJDwrgVtZR
WhiteHades pushed a commit to WhiteHades/agent-command-atlas that referenced this pull request Sep 12, 2026
Add an acknowledgements section naming WhiteHades for the search,
accessibility, route, source, and validation fixes in kishormorol#1, so the credit
survives however the pull request is merged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018rw2KxMtReyjCJDwrgVtZR
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