You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue tracks the merge order and dependency relationships for v0.5.0 work across ontokit-web and ontokit-api. The focus of this release is SPARQL explorer, editor/tree UX polish, settings & navigation cleanup, seed ontologies / marketplace, i18n / pt-BR translations, and a backlog of dark-theme / accessibility / state-preservation bug fixes surfaced during v0.4.0 testing.
ontokit-web#206 — "Back to project" doesn't preserve viewer/editor state (selection, mode, active tab) (independent) — follow-up to #98 selection-preservation work
ontokit-web#209 — Class tree search highlights only leaf-level matches; intermediate ancestors with matching labels are missed (independent) — PR: #363 (replaces closed #245) — related to #210 tree-search UX
ontokit-api#216 — Extend label-per-language to skos:definition (independent) — backend counterpart to ontokit-web#203; the editor's cardinality table treats skos:definition as one-per-language, the linter currently does not
Features — Editor & Tree UX
Editor polish and tree-search ergonomics. Independent of each other.
ontokit-web#203 — Editor proposes a duplicate row for cardinality-1 annotations (skos:prefLabel, etc.) (independent) — PR: #273 — pairs with ontokit-api#216, which extends the backend label-per-language rule to skos:definition so the linter and the editor agree on cardinality
ontokit-web#210 — Tree search UX: hide irrelevant toolbar buttons during search, expose search mode, and multi-field matching (independent) — pairs with #209
ontokit-web#224 — Eliminate detail-panel flash when switching entities in the tree (independent) — evaluates keepPreviousData + manual reset vs. Suspense vs. view-transition options; revisits the key={iri} remount introduced in commit c22733a
ontokit-web#229 — Phase 17: Move entity graph + source view into right-pane tab strip (Detail | Graph | Source) — Standard view drops the hidden Graph icon button; Developer view drops the Tree | Source mode strip and the entity-actions </> Source link; both gain a unified right-pane tab strip with the graph and source as entity-scoped tabs; Open Full Source uses a Modal ⇄ Maximize round-trip — design contract in .planning/notes/graph-as-entity-pane.md, four sketches in .planning/sketches/ — must merge after #88 (entity graph) lands in dev
Features — Settings & Navigation
Settings-page and project-page navigation cleanup. All independent.
ontokit-web#207 — Replace Project Dashboard page with an inline "About" dialog (independent) — enables #211
ontokit-web#211 — Reorder + rename "Info" to "About", add CDCF/SALI/FOLIO disclaimer, drop redundant Browse Projects button (independent) — depends on #207 for the inline About dialog
ontokit-web#169 — Seed/example ontologies and ontology marketplace (independent) — deferred from v0.4.0; needs design pass before implementation
Features — Internationalization
ontokit-web#102 — Extract hardcoded strings and add i18n translations (independent) — PR: #142 (feat(i18n): add pt-BR support and extract hardcoded strings) — deferred from v0.4.0 — PR feat(i18n): add pt-BR support and extract hardcoded strings #142 is phase 1 only (header, user-menu, ConnectionStatus, app/page.tsx); it also mounts the NextIntlClientProvider that dev was missing entirely, without which any useTranslations() call throws. Issue stays open for the remaining extraction sweep. ⚠️Note:i18n: extract hardcoded strings and add translations #102's claim that locale routing is set up under app/[locale]/ is stale — no such directory exists
ontokit-web#368 — Cookie-based locale detection makes every route dynamic — decide on locale routing — follow-up to #102 / PR #142; mounting the provider in the root layout drops static routes from 20 to 2 (/docs/**, /info, /auth/*, /api-docs all become server-rendered). Decide deliberately — accept it, adopt app/[locale]/ routing, or split the docs tree — before more of the app is translated and the restructure gets expensive
Testing & QA
ontokit-web#139 — Add Playwright e2e tests for WebSocket and API integration (independent) — covers lint WS, index status WS, remote-sync flows; complements unit-test coverage from v0.4.0
Dependency Graph
graph LR
subgraph "<b>SPARQL</b>"
direction TB
A23["API #23 endpoint enhancements"] --> W48["Web #48 explorer UI"]
end
subgraph "<b>Settings & Navigation</b>"
direction TB
W207["#207 inline About dialog"] --> W211["#211 rename Info→About + disclaimer"]
W212["#212 reorder Editor Prefs"] ~~~ W213["#213 Back link"]
end
subgraph "<b>Tree UX</b>"
direction TB
W209["#209 ancestor-match highlights"] ~~~ W210["#210 tree search UX"]
end
subgraph "<b>Bug Fixes (independent)</b>"
direction TB
W204["#204 PRCreateModal dark theme"] ~~~ W205["#205 BranchSelector width"]
W205 ~~~ W206["#206 Back-to-project state"]
W206 ~~~ W208["#208 Collapse split-button"]
end
subgraph "<b>Editor</b>"
direction TB
W203["#203 cardinality-1 duplicate row"] ~~~ W224["#224 detail-panel flash"]
end
subgraph "<b>QA</b>"
direction TB
W139["#139 Playwright e2e"]
end
subgraph "<b>Marketplace</b>"
direction TB
W169["#169 seed ontologies + marketplace"]
end
subgraph "<b>i18n</b>"
direction TB
W102["#102 i18n translations + pt-BR"] --> W368["#368 locale routing decision<br/>(static vs dynamic)"]
end
v0.5.0 Merge Strategy
This issue tracks the merge order and dependency relationships for v0.5.0 work across
ontokit-webandontokit-api. The focus of this release is SPARQL explorer, editor/tree UX polish, settings & navigation cleanup, seed ontologies / marketplace, i18n / pt-BR translations, and a backlog of dark-theme / accessibility / state-preservation bug fixes surfaced during v0.4.0 testing.Bug Fixes
UI defects and regressions surfaced during v0.4.0. None are blocking — all are independent and can be parallelized.
ontokit-web#204 —
PRCreateModal: From/Into branch dropdowns render white-on-white in dark theme (independent) — PR: #243 — stacked on #242ontokit-web#205 —
BranchSelectordropdown is fixed-width and shows a horizontal scrollbar with longer branch names (independent) — PR: #244 — stacked on #242 → #243; merge in that order, or merge fix: let BranchSelector dropdown grow to fit content #244 alone to land all threeontokit-web#206 — "Back to project" doesn't preserve viewer/editor state (selection, mode, active tab) (independent) — follow-up to #98 selection-preservation work
ontokit-web#208 — Tree toolbar: Collapse split-button is inverted relative to Expand (icons + actions) (independent) — PR: #242 — base of the fix: restore readable text in PRCreateModal branch dropdowns on dark theme #243 → fix: let BranchSelector dropdown grow to fit content #244 stack; merges first
ontokit-web#209 — Class tree search highlights only leaf-level matches; intermediate ancestors with matching labels are missed (independent) — PR: #363 (replaces closed #245) — related to #210 tree-search UX
ontokit-api#216 — Extend
label-per-languagetoskos:definition(independent) — backend counterpart to ontokit-web#203; the editor's cardinality table treatsskos:definitionas one-per-language, the linter currently does notFeatures — Editor & Tree UX
Editor polish and tree-search ergonomics. Independent of each other.
skos:prefLabel, etc.) (independent) — PR: #273 — pairs with ontokit-api#216, which extends the backendlabel-per-languagerule toskos:definitionso the linter and the editor agree on cardinalitykeepPreviousData+ manual reset vs. Suspense vs. view-transition options; revisits thekey={iri}remount introduced in commitc22733a</> Sourcelink; both gain a unified right-pane tab strip with the graph and source as entity-scoped tabs; Open Full Source uses a Modal ⇄ Maximize round-trip — design contract in.planning/notes/graph-as-entity-pane.md, four sketches in.planning/sketches/— must merge after #88 (entity graph) lands in devFeatures — Settings & Navigation
Settings-page and project-page navigation cleanup. All independent.
/(independent)Features — SPARQL Explorer
Cross-repo: backend endpoint enhancements ship before the frontend explorer UI. Deferred from v0.4.0.
Features — Seed Ontologies & Marketplace
Features — Internationalization
feat(i18n): add pt-BR support and extract hardcoded strings) — deferred from v0.4.0 — PR feat(i18n): add pt-BR support and extract hardcoded strings #142 is phase 1 only (header,user-menu,ConnectionStatus,app/page.tsx); it also mounts theNextIntlClientProviderthatdevwas missing entirely, without which anyuseTranslations()call throws. Issue stays open for the remaining extraction sweep.app/[locale]/is stale — no such directory exists/docs/**,/info,/auth/*,/api-docsall become server-rendered). Decide deliberately — accept it, adoptapp/[locale]/routing, or split the docs tree — before more of the app is translated and the restructure gets expensiveTesting & QA
Dependency Graph
graph LR subgraph "<b>SPARQL</b>" direction TB A23["API #23 endpoint enhancements"] --> W48["Web #48 explorer UI"] end subgraph "<b>Settings & Navigation</b>" direction TB W207["#207 inline About dialog"] --> W211["#211 rename Info→About + disclaimer"] W212["#212 reorder Editor Prefs"] ~~~ W213["#213 Back link"] end subgraph "<b>Tree UX</b>" direction TB W209["#209 ancestor-match highlights"] ~~~ W210["#210 tree search UX"] end subgraph "<b>Bug Fixes (independent)</b>" direction TB W204["#204 PRCreateModal dark theme"] ~~~ W205["#205 BranchSelector width"] W205 ~~~ W206["#206 Back-to-project state"] W206 ~~~ W208["#208 Collapse split-button"] end subgraph "<b>Editor</b>" direction TB W203["#203 cardinality-1 duplicate row"] ~~~ W224["#224 detail-panel flash"] end subgraph "<b>QA</b>" direction TB W139["#139 Playwright e2e"] end subgraph "<b>Marketplace</b>" direction TB W169["#169 seed ontologies + marketplace"] end subgraph "<b>i18n</b>" direction TB W102["#102 i18n translations + pt-BR"] --> W368["#368 locale routing decision<br/>(static vs dynamic)"] end