Repository navigation
Query builder: catalog, platforms, CLI and GUI surfaces, docs - #17
Merged
Merged
Conversation
…ervice; engine URLs read from the catalog
…inal pages excluded, company-page mining gated, builder fixes
…, docs and ADR-019
|
Sorry @Liebmann5, your pull request is larger than the review limit of 300,000 diff characters |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
Adds a search builder: a person picks an engine, a job board, a hiring platform or one company's careers page, and AA composes the search-bar text and/or link for them to copy or open. It ships on both surfaces: the CLI (
--searchplus scriptable--search-*flags) and the GUI (File → Build a Search…). It automates nothing; the only outward call is opening a link on an explicit click. The branch also updateskimicli.py(root tooling: per-run model choice and a saved default model, K3 still the default).Why
Users had no way to build a precise search for a given site without knowing each engine's operators, and no way to tell which searches AA can stand behind. The builder offers only searches whose mechanics are documented, labels what is unverified, and refuses (rather than silently weakening) any restriction a surface cannot carry.
How it was verified
Full suite on Windows at the branch head:
main.tests/adapters/test_engine_url_byte_identity.pyis green and untouched: automated discovery sends the same URL bytes as before.--search-platform jobvite|bamboohr|gusto --search-terms "Software Engineer"printssite:jobs.jobvite.com ("Software Engineer"),site:bamboohr.com/careers ("Software Engineer")andsite:jobs.gusto.com/boards ("Software Engineer"); an Indeed platform search prints its refusal and exits 1.site:query, and the window rendered fully in English and Spanish.Checklist
test_lint_gate,test_mypy_gate)building_searches.md,reference/cli.md,ui_port_layer.md, the Bible, README,verifying_platform_search.md)CHANGELOG.mdupdated under UnreleasedPins added or changed
tests/domain/test_query_composer.pytests/infrastructure/test_search_surface_registry.pytests/infrastructure/test_ats_platforms.pytests/application/test_query_builder_service.py,test_query_builder_platforms.pytests/adapters/test_search_builder_cli.pytests/adapters/test_gui_search_window.pytests/adapters/test_engine_url_byte_identity.pytest_ui_contract.py,test_ui_port_conformance.py,test_safety_pins.pyPredicted suite count after this change: 2242 → 2415 passed (5 skipped, 1 xfailed), +173 tests over
mainRisk
QueryBuilderService's builder methods now use the UI port's names (build_query,remember_query, …). Every caller in the repo was updated and the suite is green; anything outside the repo calling the old names would break.UIPortgrew from 17 to 27 methods. Conformance and data-only pins hold it, but every new port implementer must provide them.Screenshots
None attached.