Skip to content

v0.4.0 Merge Strategy & Dependency Tracker #67

Description

@JohnRDOrazio

v0.4.0 Merge Strategy

This issue tracks the merge order and dependency relationships for v0.4.0 work. The focus of this release is the suggestion/PR workflow redesign, provider abstraction, and entity graph visualization. (SPARQL explorer was deferred to v0.5.0 — see #214.)

Predecessor: ontokit-web#34 — v0.3.0 Merge Strategy & Dependency Tracker
Successor: ontokit-web#214 — v0.5.0 Merge Strategy & Dependency Tracker


Bug Fixes

Security

Defensive hardening surfaced by static analysis (Semgrep, CodeQL). None of these are known active exploits — they're precautionary fixes that close attack surface before it can be abused. Tracked separately from Bug Fixes so the latter stays focused on user-visible defects.

Features

Architecture & Sync

Documentation

  • #198 — Add Properties chapter to the Ontology Guide (rdf:Property + OWL property typology), introduce sticky left-side TOC on the Changelog page, fix JSX whitespace stripping across all guide pages, and pass servers to Scalar so /api-docs code samples render without Invalid URL errors

Suggestion & PR Workflow Redesign

These issues require significant design work before implementation. #65 can be tackled first independently; the rest are interdependent and need design finalization:

  1. ontokit-api#217 — Subsume suggestion sessions into the PR model: draft state + auto-submitted marker + beacon auth — prerequisite for the whole section; SuggestionSession.pr_id is already an FK to pull_requests.id, and a field-by-field audit found only three things the PR model genuinely lacks: active (no draft PRStatus), auto-submitted (no marker), and beacon_token (no home for the unload beacon)
  2. ontokit-web#370 — Retire the suggestion-session subsystem; make the PR workflow the suggestion workflow — depends on ontokit-api#217 — deletes lib/api/suggestions.ts and the /suggestions* routes, redirects them to /pull-requests, rewires the beacon and status bar onto draft PRs
  3. ontokit-web#65 — Unify suggestions and PRs views with mode-aware labels — PR: feat: unify suggestions and PRs views with mode-aware labels #149the label + author-scoping half is independent and mergeable now; the editor/page.tsx toolbar unification must land after #370, since it removes the only link to /suggestions while active drafts and changes-requested feedback still live there. Split that one hunk out to merge the rest early
  4. ontokit-web#60 — Require suggester role by default; add project-level opt-in for open suggestions — foundation for access control changes
  5. ontokit-web#62 — Evaluate suggestion branch naming and user association strategy — informs branch creation logic
  6. ontokit-web#63 — Auto-commit suggestion edits to git on save/navigation — depends on branch strategy from Evaluate suggestion branch naming and user association strategy #62
  7. ontokit-web#66 — Auto-rebase strategy for open branches after PR merge — depends on branch strategy from Evaluate suggestion branch naming and user association strategy #62

Dependency Graph

graph LR
  subgraph "<b>Lint Configuration & Auto-Fix</b>"
    direction TB
    A26["API #26 per-project config"] --> W56["Web #56 lint config UI"]
    A26 --> A81["API #81 lint auto-fix"]
  end

  subgraph "<b>Favorites</b>"
    direction TB
    A30["API #30 favorites API<br/>(no PR yet — blocks #78)"] --> W78["Web #78 favorites UI<br/>(PR #147 ready)"]
  end

  subgraph "<b>Index & WebSocket</b>"
    direction TB
    A48["API #48 index-status"] --> W137["#137 index WS updates"]
    W137 --> W141["#141 HealthCheck WS regression"]
    W140["#140 decouple collab/lint WS"] ~~~ A78["API #78 per-project pubsub"]
    A79["API #79 async quality jobs"] --> W150["#150 async quality API"]
  end

  subgraph "<b>Sync</b>"
    direction TB
    A20["API #20 provider abstraction"] --> A21["API #21 loop prevention"]
    A21 --> W5["Web #5 read-only fields"]
  end

  subgraph "<b>Suggestion / PR Workflow</b>"
    direction TB
    A217["API #217 draft PR + auto-submitted"] --> W370["#370 retire session subsystem"]
    W370 --> W65["#65 unified UI"]
    W60["#60 access control"] --> W62["#62 branch strategy"]
    W62 --> W63["#63 auto-commit"]
    W62 --> W66["#66 auto-rebase"]
    W63 --> W370
    W66 --> W65
  end

  subgraph "<b>Independent</b>"
    direction TB
    W81["#81 entity graph"] ~~~ W89["#89 React Query migration"]
    W89 ~~~ W200["#200 set-state-in-effect cleanup"]
    W200 ~~~ W51["#51 multi-branch index"]
    W51 ~~~ W3["#3 custom login UI"]
    W3 ~~~ W97["#97 BCP 47 language picker"]
    W97 ~~~ W98["#98 viewer/editor selection"]
    W98 ~~~ W201["#201 dirty-draft indicators"]
    W201 ~~~ W202["#202 type-aware useIriLabels"]
    W202 ~~~ W99["#99 remote-sync errors"]
    W99 ~~~ W100["#100 aria-hidden a11y"]
    W100 ~~~ W101["#101 webhook error UX"]
    W101
  end
Loading

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions