-
Notifications
You must be signed in to change notification settings - Fork 1
docs: refresh public README and Pages navigation #908
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
Draft
seonghobae
wants to merge
23
commits into
main
Choose a base branch
from
docs/public-surface-deepwiki
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
23 commits
Select commit
Hold shift + click to select a range
1219a06
docs: refresh README public surface
seonghobae 415a411
docs: repair Pages navigation
seonghobae 47352b5
docs: add authoritative Pages landing source
seonghobae 63e3d7a
fix(pages): publish the intended landing source
seonghobae 8ecc367
test(pages): bind publication to authoritative landing
seonghobae ced23d9
ci(pages): validate the public landing contract
seonghobae 2239319
docs: remove unpublished duplicate landing source
seonghobae c86daf8
test(pages): include landing in publisher fixtures
3ee5b07
test(ci): require explicit hosted runner images
seonghobae cb9ef1c
fix(ci): pin test runners to Ubuntu 24.04
seonghobae 8f70c48
fix(ci): pin Pages runners to Ubuntu 24.04
seonghobae 3836855
fix(ci): pin PROV-O runner to Ubuntu 24.04
seonghobae 35b226b
fix(security): scope SRI exception to canonical metadata
seonghobae 85a03a3
test(ci): inspect job-level runner declarations
seonghobae c00bd31
docs: make LineageWeave README product-first
seonghobae 032a991
docs: align stack quickstart with home env contract
seonghobae 7540eb9
chore(ci): adopt protected docs-only Tests paths on public-surface br…
seonghobae 72cdf7f
chore(stack): converge public-surface branch with protected main
seonghobae de3d7a7
chore(public): converge public surface with protected main
seonghobae 01895d1
test(public): expose #931/#908 workflow convergence RED
seonghobae 53cbd8b
fix(public): preserve Draft admission with pinned hosted runners
seonghobae 5e085c3
fix(public): pin PROV-O runner without reopening Draft admission
seonghobae 00e90e0
fix(public): converge Pages publication with Draft admission
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
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
Large diffs are not rendered by default.
Oops, something went wrong.
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,55 @@ | ||
| <!doctype html> | ||
| <html lang="en"> | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
| <title>LineageWeave</title> | ||
| <meta name="description" content="Evidence-bound lineage reconstruction and branching history for scattered enterprise records."> | ||
| <!-- nosemgrep: html.security.audit.missing-integrity.missing-integrity -- canonical metadata fetches no subresource --> | ||
| <link rel="canonical" href="https://contextualwisdomlab.github.io/LineageWeave/"> | ||
| <style> | ||
| :root { color-scheme: light dark; font-family: Inter, ui-sans-serif, system-ui, sans-serif; line-height: 1.55; } | ||
| * { box-sizing: border-box; } | ||
| body { margin: 0; color: #172033; background: #f5f7fb; } | ||
| a { color: #174ea6; } | ||
| a:focus-visible { outline: 3px solid #f2b705; outline-offset: 3px; } | ||
| header { color: white; background: #102a43; padding: 3rem max(1.25rem, calc((100vw - 70rem)/2)); } | ||
| header p { max-width: 70ch; color: #d9e8f5; } | ||
| main { max-width: 70rem; margin: 0 auto; padding: 2rem 1.25rem 4rem; } | ||
| .actions { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); margin: 1.5rem 0 2rem; } | ||
| .actions a { display: block; padding: 1rem; border: 1px solid #c8d2df; border-radius: .75rem; background: #fff; text-decoration: none; font-weight: 700; } | ||
| .boundary { padding: 1rem 1.25rem; border-left: .35rem solid #2b6cb0; background: #eaf2fb; } | ||
| footer { border-top: 1px solid #c8d2df; padding: 2rem 1.25rem; text-align: center; } | ||
| @media (prefers-color-scheme: dark) { | ||
| body { color: #e8eef5; background: #0b1522; } | ||
| header { background: #06111d; } | ||
| a { color: #8fc2ff; } | ||
| .actions a { background: #122236; border-color: #38516a; } | ||
| .boundary { background: #102a43; } | ||
| footer { border-color: #38516a; } | ||
| } | ||
| </style> | ||
| </head> | ||
| <body> | ||
| <header> | ||
| <h1>LineageWeave</h1> | ||
| <p>Evidence-bound lineage reconstruction and branching history for scattered enterprise records.</p> | ||
| </header> | ||
| <main> | ||
| <p>Use LineageWeave when related records do not carry reliable explicit cross-record links and you need to inspect how events, claims, posts, and decisions relate over time without turning inferred lineage into source-system truth.</p> | ||
| <nav class="actions" aria-label="LineageWeave public navigation"> | ||
| <a href="ontology/">Ontology</a> | ||
| <a href="https://github.com/ContextualWisdomLab/LineageWeave">Repository</a> | ||
| <a href="https://github.com/ContextualWisdomLab/LineageWeave/blob/main/README.md">README</a> | ||
| <a href="https://github.com/ContextualWisdomLab/LineageWeave/blob/main/ARCHITECTURE.md">Architecture</a> | ||
| <a href="https://github.com/ContextualWisdomLab/LineageWeave/releases">Releases</a> | ||
| <a href="https://deepwiki.com/ContextualWisdomLab/LineageWeave">Ask DeepWiki</a> | ||
| </nav> | ||
| <section class="boundary" aria-labelledby="boundary-heading"> | ||
| <h2 id="boundary-heading">Evidence boundary</h2> | ||
| <p>Published source and release evidence remain authoritative. Lineage inference, retrieval, and model-assisted adjudication do not silently become source-system truth, authentication authority, tenant authority, measurement authority, or provider-routing authority.</p> | ||
| </section> | ||
| </main> | ||
| <footer><p>ContextualWisdomLab / LineageWeave</p></footer> | ||
| </body> | ||
| </html> | ||
This file was deleted.
Oops, something went wrong.
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,53 @@ | ||
| """Repository-owned Linux workflows use an explicit supported hosted image.""" | ||
|
|
||
| from pathlib import Path | ||
|
|
||
|
|
||
| ROOT = Path(__file__).resolve().parents[1] | ||
| EXPECTED_JOB_COUNTS = { | ||
| ROOT / ".github" / "workflows" / "tests.yml": 2, | ||
| ROOT / ".github" / "workflows" / "ontology-pages.yml": 2, | ||
| ROOT / ".github" / "workflows" / "prov-o-contract.yml": 1, | ||
| } | ||
|
|
||
|
|
||
| def _job_level_runners(path: Path) -> dict[str, str]: | ||
| """Return literal ``jobs.<job>.runs-on`` declarations from one workflow. | ||
|
|
||
| GitHub workflow job keys are two spaces below the top-level ``jobs`` map and | ||
| their scalar ``runs-on`` declarations are four spaces below it. Restricting | ||
| extraction to those structural levels prevents comments, shell heredocs, and | ||
| unrelated strings from satisfying this repository contract without adding a | ||
| YAML parser solely for a CI-policy test. | ||
| """ | ||
| runners: dict[str, str] = {} | ||
| current_job: str | None = None | ||
| in_jobs = False | ||
|
|
||
| for raw_line in path.read_text(encoding="utf-8").splitlines(): | ||
| if raw_line == "jobs:": | ||
| in_jobs = True | ||
| current_job = None | ||
| continue | ||
| if not in_jobs: | ||
| continue | ||
| if raw_line and not raw_line.startswith(" ") and not raw_line.startswith("#"): | ||
| break | ||
| if raw_line.startswith(" ") and not raw_line.startswith(" "): | ||
| stripped = raw_line.strip() | ||
| if stripped and not stripped.startswith("#") and stripped.endswith(":"): | ||
| current_job = stripped[:-1] | ||
| continue | ||
| if current_job is not None and raw_line.startswith(" runs-on:"): | ||
| value = raw_line.split(":", 1)[1].split("#", 1)[0].strip().strip("'\"") | ||
| runners[current_job] = value | ||
|
|
||
| return runners | ||
|
|
||
|
|
||
| def test_repository_workflows_pin_ubuntu_2404() -> None: | ||
| """Require every actual repository-owned Linux job to pin Ubuntu 24.04.""" | ||
| for path, expected_count in EXPECTED_JOB_COUNTS.items(): | ||
| runners = _job_level_runners(path) | ||
| assert len(runners) == expected_count, (path, runners) | ||
| assert set(runners.values()) == {"ubuntu-24.04"}, (path, runners) |
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,56 @@ | ||
| """Tests for the authoritative LineageWeave GitHub Pages landing source.""" | ||
|
|
||
| from __future__ import annotations | ||
|
|
||
| import importlib.util | ||
| from pathlib import Path | ||
|
|
||
| import pytest | ||
|
|
||
| ROOT = Path(__file__).resolve().parents[1] | ||
| SCRIPT = ROOT / "scripts" / "publish_ontology_site.py" | ||
|
|
||
|
|
||
| def _load_publisher(): | ||
| spec = importlib.util.spec_from_file_location("publish_ontology_site_landing", SCRIPT) | ||
| if spec is None or spec.loader is None: | ||
| raise AssertionError("ontology publisher could not be loaded") | ||
| module = importlib.util.module_from_spec(spec) | ||
| spec.loader.exec_module(module) | ||
| return module | ||
|
|
||
|
|
||
| def test_publication_copies_the_authoritative_landing_with_durable_navigation( | ||
| tmp_path: Path, | ||
| ) -> None: | ||
| publisher = _load_publisher() | ||
| output = tmp_path / "site" | ||
|
|
||
| publisher.publish_site(ROOT, output) | ||
|
|
||
| source = (ROOT / publisher.LANDING_RELATIVE_PATH).read_text(encoding="utf-8") | ||
| published = (output / "index.html").read_text(encoding="utf-8") | ||
| assert published == source | ||
| for target in ( | ||
| 'href="ontology/"', | ||
| 'href="https://github.com/ContextualWisdomLab/LineageWeave"', | ||
| 'href="https://github.com/ContextualWisdomLab/LineageWeave/blob/main/README.md"', | ||
| 'href="https://github.com/ContextualWisdomLab/LineageWeave/blob/main/ARCHITECTURE.md"', | ||
| 'href="https://github.com/ContextualWisdomLab/LineageWeave/releases"', | ||
| 'href="https://deepwiki.com/ContextualWisdomLab/LineageWeave"', | ||
| ): | ||
| assert target in published | ||
|
|
||
|
|
||
| def test_publication_fails_closed_without_the_authoritative_landing( | ||
| tmp_path: Path, | ||
| monkeypatch, | ||
| ) -> None: | ||
| publisher = _load_publisher() | ||
| output = tmp_path / "site" | ||
| monkeypatch.setattr(publisher, "LANDING_RELATIVE_PATH", Path("docs/missing-index.html")) | ||
|
|
||
| with pytest.raises(FileNotFoundError, match="public landing source"): | ||
| publisher.publish_site(ROOT, output) | ||
|
|
||
| assert not output.exists() |
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
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.