-
Notifications
You must be signed in to change notification settings - Fork 1
fix: repair frontend build and publish ontology Pages #426
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
52 commits
Select commit
Hold shift + click to select a range
11a60b3
fix(frontend): repair the inherited login/admin-panel build break
seonghobae 02fe670
docs: refresh product technical gap baseline (#475)
seonghobae cf419cd
ci: publish ontology through GitHub Pages (#373)
seonghobae 5e42882
test(frontend): isolate OIDC storage state
seonghobae 215a370
fix(ontology): inventory every published artifact
seonghobae d49eb1b
docs: attribute ontology publication to owning PR
seonghobae 3f0394b
fix(ontology): keep encoded fragment links addressable
seonghobae 4828b3a
fix(ontology): clean up failed site builds
seonghobae 60efee9
docs(adr): decide public ontology namespace identity (#491)
seonghobae c8a4be8
feat: publish ontology namespace compatibility map (v2.16.0) (#492)
seonghobae 42dbcac
docs: allocate ontology publication ADR 0158
seonghobae d4e9548
docs(adr): allocate ontology publication ADR 0159
seonghobae 7ff3104
fix(ontology): preserve publication semantics
seonghobae 250f20e
docs: restore non-identifying gap baseline (ADR 0001) (#497)
seonghobae 3e214a5
test(frontend): cover unauthenticated login fallbacks
seonghobae a2daa92
docs: refresh non-identifying gap evidence on the #426 stack
seonghobae a44f360
docs: refresh canonical gap dependency evidence
seonghobae b953af6
docs: refresh TEPP delivery evidence
seonghobae 2275a29
fix(ontology): remove unreachable external link branch
seonghobae 6eff570
fix(ontology): stop minting legacy support-profile IRIs (#504)
seonghobae aed41f9
docs: record clean privacy remediation paths
seonghobae 27792e2
docs: record planned-facility follow-up lifecycle
seonghobae 89ed1fb
test(frontend): cover LineageDag with tests and stories (#439)
seonghobae 618238d
test(frontend): cover FiveW1H with realistic tests and Storybook (#437)
seonghobae b2d9bdb
test(api): cover Ask, Rankings, and locale preference boundaries (#435)
seonghobae 887a52e
docs: refresh planned-facility restack evidence
seonghobae c0a7773
docs: bind gap baseline to scheduler rate-limit and login collection …
seonghobae 4988fb7
fix(admin): prevent no-op tenant saves and cover settings states (#436)
seonghobae 00ce55c
docs: record non-default follow-up merge
seonghobae 2cf16db
docs: bind gap baseline to current #494 login and collection head
seonghobae 0b19f39
docs: refresh login stack ownership evidence
seonghobae 1ff0cd1
test: preserve optional-extra pytest collection (#494)
seonghobae 9b47ce4
fix(ontology): declare reification semantics
seonghobae f6f2950
fix: measure leftover-map distances on two Gabriel axes (v2.12.13) (#…
seonghobae 4dd8b36
feat: persist leftover observed Y and expected E (v2.12.14) (#511)
seonghobae 8948cdb
test(collection): skip only missing optional import graphs
seonghobae f9ce021
docs: refresh product gap evidence
seonghobae c4a16c2
feat: name leftover-map rank on leftover pairs (v2.12.15) (#513)
seonghobae 6af3dc7
docs: keep buyer-gap evidence non-identifying
seonghobae 96f2de4
test(leftover): lock nonfinite fallback rank
seonghobae 3521d58
fix(deploy): migrate.sh's migration whitelist silently fell behind (#…
seonghobae b2456fc
Merge current stacked base
seonghobae aeb9af4
test: detect private post identifier variants
seonghobae 04fe942
Merge pull request #517 from ContextualWisdomLab/codex/pr426-nonfinit…
seonghobae 006db55
Merge commit 'refs/codex/pr426-current' into codex/pr516-nonidentifyi…
seonghobae c2edd9c
test: avoid verbose identifier regex mode
seonghobae 721742d
feat: name leftover residual on period-report pair rows (v2.12.16) (#…
seonghobae a7891d1
Merge pull request #516 from ContextualWisdomLab/codex/gap-baseline-p…
seonghobae fa57c15
fix(lineage): preserve grouping provenance and fail closed weights (#…
seonghobae 88e4445
feat: disclose RankWeave ranking channel evidence (v2.12.17) (#500)
seonghobae 2ef7afa
fix(api): restore liveness routing and enforce public docstrings (#498)
seonghobae 3b7c3e2
feat: render quantity superscripts in post bodies (v2.12.18) (#427)
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,138 @@ | ||
| name: Ontology Pages | ||
|
|
||
| on: | ||
| pull_request: | ||
| branches: [main] | ||
| paths: | ||
| - "docs/ontology/**" | ||
| - "scripts/build_ontology_site.py" | ||
| - "scripts/publish_ontology_site.py" | ||
| - "scripts/ontology_site_contract.py" | ||
| - "tests/test_ontology.py" | ||
| - "tests/test_ontology_site.py" | ||
| - "tests/test_publish_ontology_site.py" | ||
| - ".github/workflows/ontology-pages.yml" | ||
| - "pyproject.toml" | ||
| - "uv.lock" | ||
| push: | ||
| branches: [main] | ||
| paths: | ||
| - "docs/ontology/**" | ||
| - "scripts/build_ontology_site.py" | ||
| - "scripts/publish_ontology_site.py" | ||
| - "scripts/ontology_site_contract.py" | ||
| - "tests/test_ontology.py" | ||
| - "tests/test_ontology_site.py" | ||
| - "tests/test_publish_ontology_site.py" | ||
| - ".github/workflows/ontology-pages.yml" | ||
| - "pyproject.toml" | ||
| - "uv.lock" | ||
| workflow_dispatch: | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| validate: | ||
| name: Validate ontology publication | ||
| if: github.event_name == 'pull_request' | ||
| concurrency: | ||
| group: ontology-pages-validation-${{ github.event.pull_request.number || github.ref }} | ||
| cancel-in-progress: true | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # actions/checkout@v7 | ||
| with: | ||
| persist-credentials: false | ||
|
|
||
| - name: Set up Python | ||
| uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # actions/setup-python@v6 | ||
| with: | ||
| python-version: "3.12" | ||
|
|
||
| - name: Set up locked Python dependency manager | ||
| uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 | ||
| with: | ||
| version: "0.11.28" | ||
| enable-cache: false | ||
|
|
||
| - name: Install committed dependencies | ||
| run: uv sync --frozen --extra dev | ||
|
|
||
| - name: Verify ontology and publication contracts | ||
| run: | | ||
| uv run --frozen python -m pytest -q tests/test_ontology.py | ||
| uv run --frozen python -m coverage run --branch \ | ||
| -m pytest -q tests/test_ontology_site.py tests/test_publish_ontology_site.py | ||
| uv run --frozen python -m coverage report \ | ||
| --include=scripts/build_ontology_site.py,scripts/publish_ontology_site.py \ | ||
| --fail-under=100 | ||
|
|
||
| - name: Build static ontology site | ||
| run: uv run --frozen python scripts/publish_ontology_site.py --output-dir _site | ||
|
|
||
| - name: Compile owned Python surface | ||
| run: >- | ||
| uv run --frozen python -m compileall -q | ||
| scripts/build_ontology_site.py scripts/publish_ontology_site.py | ||
| scripts/ontology_site_contract.py | ||
| tests/test_ontology_site.py tests/test_publish_ontology_site.py | ||
|
|
||
| publish: | ||
| name: Publish ontology to GitHub Pages | ||
| if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' | ||
| concurrency: | ||
| group: ontology-pages-publication | ||
| cancel-in-progress: false | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: read | ||
| pages: write | ||
| id-token: write | ||
| environment: | ||
| name: github-pages | ||
| url: ${{ steps.deployment.outputs.page_url }} | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # actions/checkout@v7 | ||
| with: | ||
| persist-credentials: false | ||
|
|
||
| - name: Set up Python | ||
| uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # actions/setup-python@v6 | ||
| with: | ||
| python-version: "3.12" | ||
|
|
||
| - name: Set up locked Python dependency manager | ||
| uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 | ||
| with: | ||
| version: "0.11.28" | ||
| enable-cache: false | ||
|
|
||
| - name: Install committed dependencies | ||
| run: uv sync --frozen --extra dev | ||
|
|
||
| - name: Verify exact protected source before publication | ||
| run: | | ||
| uv run --frozen python -m pytest -q tests/test_ontology.py | ||
| uv run --frozen python -m coverage run --branch \ | ||
| -m pytest -q tests/test_ontology_site.py tests/test_publish_ontology_site.py | ||
| uv run --frozen python -m coverage report \ | ||
| --include=scripts/build_ontology_site.py,scripts/publish_ontology_site.py \ | ||
| --fail-under=100 | ||
|
|
||
| - name: Build deterministic publication artifact | ||
| run: uv run --frozen python scripts/publish_ontology_site.py --output-dir _site | ||
|
|
||
| - name: Configure GitHub Pages | ||
| uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0 | ||
|
|
||
| - name: Upload GitHub Pages artifact | ||
| uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 | ||
| with: | ||
| path: _site | ||
|
|
||
| - name: Deploy GitHub Pages artifact | ||
| id: deployment | ||
| uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0 | ||
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| ## 2.12.13 — Two-dimensional leftover-map distances | ||
|
|
||
| - Measure closest and farthest leftover post–criterion distances on | ||
| the two-axis Jeon / Gabriel interaction map (ADR 0119). Hidden SVD | ||
| axes after the second no longer change `leftover_distance`. Rank-0 | ||
| and rank-1 maps still pad unused axes with zero. After `make seed`, | ||
| leftover pairs above the member list still open that post. Never | ||
| invent a leftover score or a theta. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| ## 2.12.14 — Leftover observed Y and expected E | ||
|
|
||
| - Persist observed `Y` and expected `E[Y|θ, item]` on leftover | ||
| post–criterion pairs (ADR 0163). Residual stays `R = Y − E`. After | ||
| `make seed`, closest and farthest leftover pairs sit above the member | ||
| list with `Y` and `E` next to leftover-map distance `d`; click opens | ||
| that post. Omit the badge when either value is missing. Never invent | ||
| a leftover score or a theta. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| - Replay every idempotent migration from 0012 onward on existing PostgreSQL | ||
| volumes through a POSIX `/bin/sh` filename boundary, including tenant settings | ||
| and leftover evidence migrations, while stopping startup on the first error. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| ## 2.12.15 — Leftover-map rank | ||
|
|
||
| - Persist leftover-map rank on leftover post–criterion pairs (ADR 0164). | ||
| Rank is the number of Gabriel singular values above the floor. After | ||
| `make seed`, closest and farthest leftover pairs sit above the member | ||
| list with `rank {n}` next to leftover-map distance `d`; click opens | ||
| that post. Rank 0 names no leftover structure. Never invent a leftover | ||
| score or a theta. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| # 2.12.16 leftover residual disclosure | ||
|
|
||
| After `make seed`, closest and farthest leftover pairs sit above the | ||
| period-report member list with signed residual `R`, observed `Y`, | ||
| expected `E`, full leftover-map rank, and two-axis distance `d`. | ||
| Read the named evidence, then click the pair to open that post. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| # 2.12.17 — RankWeave ranking channel evidence | ||
|
|
||
| Rankings now shows why a fused hit landed. | ||
|
|
||
| - `GET /api/rankings` attaches owned-channel evidence: 1-based | ||
| newest-first and title-overlap ranks plus Cormack RRF contribution | ||
| `weight / (η + rank)` with η = 60. | ||
| - A channel the post is missing from is omitted. RankWeave extra | ||
| fields are ignored. No fused score or theta is invented. | ||
| - The Rankings list discloses that evidence under each hit. Copy | ||
| states this is not a calibrated score. Click still opens the post. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| # 2.12.18 — Quantity superscript display | ||
|
|
||
| ## Fixed | ||
|
|
||
| - Post popups now show cubic metres and similar quantities as superscripts | ||
| and subscripts (`12 m³`, `H₂O`) instead of flattened `m^3` or `m3`. | ||
| Semantic units store Unicode so embeddings keep the exponent. Comparison | ||
| operators and leading footnote carets stay literal (ADR 0165). |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| # Verify buyer API failure and authorization boundaries | ||
|
|
||
| Exercise Ask Agent, RankWeave rankings, and saved locale preferences through | ||
| their authenticated HTTP routes. Rankings now have deterministic accepted and | ||
| unavailable contract evidence, including proof that another entity's private | ||
| post does not enter a buyer's channels. Ask Agent's explicit empty-question | ||
| response now uses FastAPI's current `HTTP_422_UNPROCESSABLE_CONTENT` status | ||
| name without changing the wire status. Backend integration tests keep | ||
| Starlette's TestClient on the project's official `httpx` dev dependency; no | ||
| alternate look-alike transport package is introduced. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| # Verify lineage DAG states before changing graph CSS | ||
|
|
||
| Open `Lineage/LineageDag` in Storybook and compare the empty, grouped/forked, | ||
| ungrouped, and long-title states. The graph now omits a relationship from both | ||
| the SVG and its count unless both endpoints are visible in the same reconstruct | ||
| group. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| # Restore a non-identifying product and technical gap baseline | ||
|
|
||
| - Rewrites `docs/product-technical-gap-baseline.md` without identifying | ||
| post identifiers, organization names, or production record keys (ADR 0001). | ||
| - Binds remaining gaps to the live PR and issue inventory, Figma File ID | ||
| `1Su3lDRmiZdcUs47t1QwIX` (ADR 0002), and the org coverage/hourly callers | ||
| ContextualWisdomLab/.github#1258 and #1259. | ||
| - Does not change login or frontend typecheck; LineageWeave#426 owns the | ||
| shared unauthenticated AdminPanel/OIDC repair, ontology Pages stack, and this | ||
| baseline because #497 merged into #426 rather than protected `main`. | ||
| LineageWeave#494 remains an overlap audit, not a second dependency. Repeated | ||
| concurrent add/revert oscillation was not chased; its exact `5d9728a` head | ||
| instead merge-restacks current #426, has a four-file optional-only diff, and | ||
| passes Frontend while Full suite remains in progress. #426 must land first | ||
| to retain that dependency order. | ||
| - Records #496's accepted-receipt recheck dependency, #505's non-default #490 | ||
| merge, #509's subsequent merge into that same unprotected stack, and #507's | ||
| clean protected-main restack without claiming any as protected-release | ||
| evidence. #507's exact remote tree matches its validated local tree, with 41 | ||
| focused and 770 parent tests passing; hosted Frontend, Full suite, and | ||
| OpenCode are green, all 12 threads are resolved, and only Strix remains in | ||
| progress, but zero approvals still require independent review. #509 remains | ||
| a narrow changelog/parser/test/live-schema diff; | ||
| its all-green checks and resolved thread do not make #490 protected delivery. | ||
| #499 remains hidden-stack evidence. | ||
| - Records that a closed unmerged PR and pre-existing public history require an | ||
| ADR 0001 security/privacy-owner remediation process, without reproducing or | ||
| hinting at the private runtime source-table identifier involved. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| ## Added | ||
|
|
||
| - Added a deterministic GitHub Pages publication pipeline for the public | ||
| ontology documentation URL, with fragment-addressable terms and Turtle, | ||
| JSON-LD, N-Triples, PROV-O profile, and source-digest artifacts. | ||
| - Added semantic round-trip, byte-determinism, fail-closed source, CLI, and | ||
| 100% statement/branch coverage tests for the ontology site renderer. | ||
| - Added a complete manifest inventory for every published ontology artifact. | ||
| - Added a fail-closed publication boundary that prevents duplicate public | ||
| fragments, unsafe linked IRI schemes, symlink or source-overlapping outputs, | ||
| and deletion of output directories not marked as generated. | ||
| - Restricted Pages deployment to `main`, preserved non-cancelling publication | ||
| concurrency, and kept all third-party Actions pinned by full commit SHA. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| # Skip optional-extra suites when the sandbox did not install them | ||
|
|
||
| - OpenCode coverage-evidence supplies pytest and coverage but not | ||
| LineageWeave's optional backend extras. Collection no longer fails | ||
| with ``ModuleNotFoundError`` for ``asyncpg``, ``psycopg2``, ``redis``, | ||
| ``fast_mlsirm``, or its ``numpy`` runtime dependency when those extras | ||
| are absent. The repository-root hook also covers sibling ``backend/tests`` | ||
| and tests that import an optional dependency through a local module, | ||
| including ``period_report`` when only NumPy is unavailable. | ||
| - Kept paths defer to pytest's remaining ignore hooks, preserving built-in | ||
| ``--ignore`` and project collection rules. | ||
| - Hosted CI still installs ``dev`` and ``backend`` extras, so every | ||
| suite continues to collect and run there. | ||
| - Login typecheck and the ADR 0001 gap baseline remain owned by | ||
| LineageWeave#426; this PR keeps only optional-extra collection work. |
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.