Repository navigation
Hide system subtypes and seeded agent queries from the sidebar; Types and Views rename (#3851 #3850 #3839) - #3852
Merged
Merged
Conversation
mstomar125
commented
Oct 20, 2026
mstomar125
left a comment
Contributor
Author
There was a problem hiding this comment.
Review Type: Initial Review (no prior reviews)
Verdict: APPROVE WITH NITS
No blocking findings. The three issues are implemented as specified; the nits are non-blocking.
Requirements check
#3851 (hide by what it extends) - met
packages/desktop-app/src/lib/stores/schemas.svelte.ts:65-103:customSchemasnow excludes a schema whosenearestCoreType(id)is a core type outsideSIDENAV_CORE_TYPES. No new schema flag. The comment explains the rule, the reason, the known risk (a user type extendingdatabase-settings/collection/textis hidden too) and how to bring a type back.nearestCoreType(core-node-types.ts:109, viatypeChain): a schema with noextendshas a chain of only itself, so it returnsundefinedand is shown. A chain through a user type (leaf -> mid -> database-settings) resolves via the store's resolver and is hidden. A dangling or not-yet-loaded parent also returnsundefinedand the schema is shown, which is the safe direction. The resolver readsschemasStore.schemas, so this stays reactive.- Tests (
src/tests/stores/schemas.test.ts): hidden direct, hidden through a user type, shown with no extends, shown for a user type extending a browsable core type (direct and via a user parent), and the known-risk case. - Regression sweep for
customSchemas: the only consumer isnavigation-sidebar.svelte:144,600-611. The other hits inschema-plugin-loader.tsare local variables that filter!isCoreon their own. No type picker, count, onboarding or search reads it, so plugin registration and "create node of type" flows are unaffected. The change is a sidebar-list change only.
#3850 (seeded queries hidden, still real nodes) - met
src/lib/stores/saved-queries.svelte.ts:23-52,109: the 10 ids are filtered out of the sidebar list only. The nodes, ids and names are untouched, sorun_query "Ready tasks"andattached_toskills keep working.- Evidence: I compared the 10 UUIDs to
CORE_QUERY_IDSinpackages/core/src/services/query_service/core_queries.rs:26-60by hand and they are identical. A new test parses the Rust file and asserts set equality, which guards against drift. - User queries on the same type still show (store test and sidebar test).
savedQueriesData.has()is used by the sync listeners (tauri-sync-listener.ts:462,browser-sync-service.ts:277,297) only to trigger refreshes. Hidden seeded queries not triggering a refresh is harmless.
#3839 (strings) - met
query-node-viewer.svelte:669: the type page button readsAsk about {schemaNode.content} type.... The saved-query button at line 666 staysAsk.navigation-sidebar.svelte: label, both aria-labels (Collapse/Expand), the collapsed-statetitleand the comments are renamed.- Whole-repo grep for "Node Types": the only remaining hits are
scripts/check-node-types-doc.test.ts:25(a fixture doc title, unrelated) andpackages/core/src/models/core_schemas.rs:1975(a Rust comment about a doc heading). No stale UI strings in e2e, i18n, aria-labels or docs. RemainingAsklabels arebound-chat-button.test.ts(generic component test) and agent_loop.rs (unrelated "Ask" type-name test). - Tests:
query-node-viewer-ask.test.tsupdated; the negative assertion is loosened to/^Ask/, which is fine.
Findings
- Non-blocking (nit) -
packages/desktop-app/src/tests/stores/saved-queries.test.ts(the CORE_QUERY_IDS parity test): it parses Rust source with a regex and a fixedtoHaveLength(10). It works and does catch drift, but it breaks, with a message that may confuse, if the Rust list is reformatted or a query is added. Consider a clearer failure message ("update SEEDED_AGENT_QUERY_IDS"), or a note near the Rust const pointing at the TS set. - Non-blocking (nit) - same test file,
[...SEEDED_AGENT_QUERY_IDS].slice(3)relies on Set insertion order to pick "Ready tasks"/"Needs shaping"-like ids. Use the named ids (as the sidebar test does) so the test does not depend on list order. - Non-blocking (design note, accepted risk) -
schemas.svelte.ts:65-67: a user-made type extendingtext/collection/note-like non-browsable core types disappears from the sidebar. The PR documents this as decided, and it is covered by a test; I only flag that the hidden-type recovery path (add base toSIDENAV_CORE_TYPES) also lists the core base type inbuiltInSchemas, which the comment states. No action needed. - Non-blocking (nit) -
navigation-sidebar.svelte: internal names (nodeTypesExpanded,setNodeTypesExpanded, layout store key) keep the old wording. Keeping the persisted key avoids resetting users' saved state, so this is sensible; just noting it is intentional.
Verification run
bun x vitest run on schemas.test.ts, saved-queries.test.ts, navigation-sidebar-saved-queries.test.ts, query-node-viewer-ask.test.ts: 4 files, 31 tests, all passed. No Rust builds were run.
Security/performance: no concerns (the filter is O(chain length) per schema, only on the sidebar derive).
…e Types and Views - schemasStore.customSchemas drops a schema whose extends chain reaches a core type outside SIDENAV_CORE_TYPES - savedQueriesData skips the ten core-seeded query ids (kept as query nodes) - type-page chat button reads 'Ask about <type> type...' - side-nav parent renamed to 'Types and Views' Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…n saved-queries test Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
mstomar125
force-pushed
the
issue-3851-hide-system-types
branch
from
October 20, 2026 10:46
286f904 to
1168dcc
Compare
11 tasks
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 changed
schemasStore.customSchemasnow hides a non-core schema whoseextendschain reaches a core type that is not inSIDENAV_CORE_TYPES(e.g. a subtype ofdatabase-settings). No new schema field. A detailed comment at the filter explains the rule, why it was chosen over a declared flag, the known risk (a user type extending a hidden base is hidden too), and how to make a hidden type visible again.CORE_QUERY_IDSincore_queries.rs) are left out ofsavedQueriesData(the sidebar listing). They remain query nodes with the same ids and names; no backend change. Comment explains the reason and how to show them again (emptySEEDED_AGENT_QUERY_IDS).Tests
schemas.test.ts,saved-queries.test.ts,navigation-sidebar-saved-queries.test.ts,query-node-viewer-ask.test.ts(31 passed). New cases: extension subtype hidden (direct and via a custom parent), plain custom type shown, custom type extendingtaskshown, hidden-base risk documented; seeded queries excluded while a user query on the same type is listed (store and sidebar); a parity test keeps the TS id set equal to the RustCORE_QUERY_IDS.svelte-check0 errors; pre-push lint gate passed.run_querybehavior are untouched (existingcore_queries_test.rsunchanged).Closes #3851
Closes #3850
Closes #3839
🤖 Generated with Claude Code