ARCH-CAT-002 — Use one catalog-tree presentation across Catalog and SQL Editor
| Field | Value |
|---|---|
| Status | Open finding; source-verified |
| Severity | Medium |
| Affected surface | Catalog sidebar and SQL Editor object browser |
| Implementation issue | oqullus #528 |
| Code-change repository | sparqd/oqullus |
Where the problem appears
Expand the same catalog, schema, and table in Catalog and SQL Editor, then compare icons, loading, search, errors, and available actions.
Concrete observed case
Both surfaces consume the same discovery state but render separate trees. Catalog treats tables as folders and stops expansion at schemas; SQL Editor uses table and column icons and can expand tables. Their placeholder actions and error behavior also differ.
Expected condition
One accessible CatalogTree owns object types, icons, expansion, loading, errors, refresh, and search. Each surface supplies only its valid actions: navigation and governance in Catalog, identifier insertion and copying in SQL Editor.
Cause and evidence
- Both surfaces consume the same catalog context and backend discovery results.
- Rendering, recursion, icons, and actions are independently defined.
- The same table is visibly represented differently across the two surfaces.
Why it matters
Duplicated presentation produces inconsistent errors, accessibility, object meaning, and maintenance. Fixes in one surface do not reliably reach the other.
Existing controls and workarounds
Cross-check the object in SQL Editor when the Catalog hierarchy or icon is ambiguous. There is no workaround for inconsistent loading or recovery behavior.
Alternatives considered
- Recommended: one shared tree with mode-specific capabilities.
- Share only low-level row components — insufficient because loading and error semantics would still diverge.
- Keep two trees and synchronize manually — rejected due to continuing drift.
Component involvement
- Oqullus owns the shared presentation contract.
- BFF continues returning one canonical discovery model.
- Catalog and SQL Editor retain separate valid action sets.
Reproduction and verification
Follow CAT-S011. Record the visible state, request outcome, effective identity, and recovery behavior relevant to this finding.
Resolution conditions
Close when the same object has the same identity, type, icon, loading, error, retry, and search behavior in both surfaces, with only intentional actions differing.
Validation and blockers
Oqullus owns remediation. Product and accessibility review are required before closure.