fix(query): 'repos' keyword now returns all registered repositories#49
Merged
Conversation
Previously 'query repos' was parsed as Keyword('repos'), only matching
repositories whose path/id/tags contained the literal string 'repos'.
Add special-case handling so that the bare 'repos' expression returns
all registered repositories unfiltered, aligning CLI behavior with user
intuition and the sync subsystem's view of the registry.
Includes v0.21.0 architecture hardening plan.
juice094
added a commit
that referenced
this pull request
May 15, 2026
…ories Regression guard for the fix in PR #49: ensures that 'query repos' short-circuits keyword filtering and returns the full registry list.
juice094
added a commit
that referenced
this pull request
May 15, 2026
…ories Regression guard for the fix in PR #49: ensures that 'query repos' short-circuits keyword filtering and returns the full registry list.
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.
Problem
devbase query reposwas parsed asKeyword('repos'), only matching repositories whose path/id/tags contained the literal string'repos'. On a typical workspace this returned 1 result (the only repo whose path happened to contain\repos</code>), whilesync --dry-runcorrectly saw 71+ repositories.This created the illusion of a data-model split between the query layer and the sync layer, when in reality both read from the unified
entitiestable.Fix
Add special-case handling in
query::run_json: when the expression is exactlyrepos, return all registered repositories unfiltered.Verification
Before:
query repos→ count=1After:
query repos→ count=72Also includes the v0.21.0 architecture hardening plan document.