Repository navigation
feat: add --linkouts/-lo to build-kg for EdgeLinkouts edge deep links - #216
Merged
Merged
Conversation
…eep links The flag appends https://linkouts.skyelanegoetz.com/edges/{edge_id} to the graph-infores primary sources entry of every emitted edge; the existing post-dedup sweep resolves {edge_id} to each edge's final id, so the linkouts.skyelanegoetz.com EdgeLinkouts app can deep-link every edge the way DAKP's hand-authored override.sources does. Sections declaring provenance.override stay author-controlled, default-off emission is unchanged, and the mode caches under its own .linkouts store suffix.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
SkyeAv
added a commit
that referenced
this pull request
Oct 14, 2026
Cut 20.0.0 and bump the package version in pyproject.toml, CITATION.cff, and uv.lock. Major: two breaking changes and one feature ship since 19.7.0. The experimental agent pipeline, the GEPA prompt-optimization surface, and the distillation dataset export/weigh surface are removed, including the `tablassert agent` / `distill-export` / `distill-weigh` commands, the `--optimize` flag family, the `[agent]`/`[optimize]`/`[distill]` extras, and the agent-only error codes (#215). The QC embedding stage now runs RenaissanceComputing's Babel-fine-tuned SapBERT checkpoint with its own `.tablassert/sapbert-babel/` cache dir (#214). `build-kg` gains the opt-in `--linkouts`/`-lo` flag for EdgeLinkouts edge deep links (#216). Changelog: - Versioned the 20.0.0 section with Breaking Changes and Added entries, PR links, and a migration note for the removed surfaces. Docs: CHANGELOG.md, CITATION.cff, and pyproject.toml only; the merged PRs carried their own docs updates. Testing: - make check -> exit 0 (ruff check, ruff format --check, pyright, cargo fmt, cargo test, clippy -D warnings) - uv run pytest -> 1209 passed, 1 skipped in 21.28s - uv lock --check -> resolved, in sync - docs guards -> 192 passed
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Adds an opt-in
--linkouts/-loflag onbuild-kgthat appends DAKP's EdgeLinkouts record URL template to the graph's own infores entry on every emitted edge, so linkouts.skyelanegoetz.com can deep-link each edge without hand-authoringprovenance.override.sources.Flag wiring
--linkouts,-loonbuild-kg(src/tablassert/cli.py), threadedbuild_kg->build_pipeline->build_graph_pipeline-> theTcodedict, the same path--head/--release/--qctake.EDGE_LINKOUT_URL_TEMPLATE = "https://linkouts.skyelanegoetz.com/edges/{edge_id}"(src/tablassert/lib.py) is appended to the primarysourcesentry (resource_id = rig.source_info.infores_id) after the section's declaredsource.urlvalues.{edge_id}rides the op list unresolved and is substituted per-edge by the existing post-dedup sweep (_resolve_edge_id_placeholders), so no new resolution code and no id-ordering hazard.Semantics and safety
provenance.override(any form) are never touched; DAKP hand-writes the same template intooverride.sources, and an injected second URL would duplicate it.test_tcode_collect_omits_edge_linkout_by_default).--linkoutsbuilds cache under their own.linkoutsstore suffix so a cached full build can never quick-exit a linkouts build (or vice versa), matching the.head/.release/.qccontract.sourcesis aCORE_EDGE_FIELD, so the RIG's per-edge-type summaries don't change.Docs
docs/cli.md:--linkouts, -lorow in thebuild-kgflag table (docs-coverage gated).Testing
uv run pytest tests/test_lib.py -q -k 'linkout or store_path'->4 passeduv run pytest tests/test_e2e_smoke.py -q->8 passed, including the new real-redb smoke asserting every edge's primary entry is["https://example.com/data.tsv", "https://linkouts.skyelanegoetz.com/edges/<its own id>"]with no{edge_id}placeholder left in the fileuv run pytest tests/test_cli_help_friendly.py tests/test_docs_cli_coverage.py tests/test_docs_source_of_truth.py -q->216 passedmake check: exit 0 (ruff, ruff format, pyright, pytest1730 passed, 52 skippedpre-existing environmental skips, cargo test, clippy-D warnings)Deferred
network-marked corpus sweeps were not run; the gate suite stayed offline, same as prior PRs.