feat: Layer-2 fabric semantics + evidence-grounded AS-path diagrams - #10
Merged
downwithbgp merged 6 commits intoAug 4, 2026
Merged
Conversation
- V11: optional reviewed interconnection_context on case studies (Layer-2 fabric; attachments with reviewed ASN labels; presentation only, never protocol evidence). - New source-neutral path_diagram module: observed AS-path SVG nodes (reviewed names, plane-matched, origin highlight, prepend compaction), before/after state comparison with absence blocks, Layer-2 fabric diagram (undirected grey attachment lines, no fabric ASN), reviewed-unobserved relationship edges (dashed). - MAN LAN page: incident-context / completed-analysis / scope hierarchy, fabric diagram + text table + limitations, representative observer route story derived from canonical lifecycle.json (direct route-views2 stream), diagram legend, 'attached networks/connectors' heading; pilot no longer worded as complete incident verdict. - Smithville run page: dashed reviewed adjacency (sought, not observed) vs observed evidence, absence block, 'not observed in the selected public baselines' wording. - API: structured interconnection context + path comparison facts (no layout serialization). - OBSERVABILITY.md + manlan README: Layer-2 fabric semantics; the ContainsAny[11537] predicate is a reviewed transit-presence proxy, never a MAN LAN ASN. - Answer key: explicit incident-context truths for the MAN LAN scenario; regenerated.
…litator truths, schema v11
The plane-reference frozen set gains the integration test file (tracked evidence assertions are test-only); neutrality tokens stay out of source via runtime-derived labels and case-insensitive LIKE lookups. Migration tests rebuilt for V11 (schema-v9 fixtures built from the migration slice instead of stripping the latest).
… bounds - build_path_comparison skips runs without a resolvable lifecycle artifact instead of aborting the whole search. - All remaining SVG interpolations (aria-label, absence text, relationship title) escape their inputs. - asn_vec uses u32::try_from (no silent wraparound on malformed artifacts); the unused observation_ids field is removed.
downwithbgp
deleted the
session-54-layer2-fabric-and-as-path-visualization
branch
August 4, 2026 20:21
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.
Summary
Project-owner semantic correction: MAN LAN is a Layer-2 exchange/fabric —
it has no ASN for the case study, does not speak BGP, does not originate
routes, and does not appear as an AS-path hop. NORDUnet AS2603 is one
attached network and the target of the completed historical pilot. This
session adds compact, evidence-grounded AS-path diagrams (inspired by the
familiar operational visual grammar, never copying another product).
Internal project-owner review; zero external evaluation sessions (pilot
registry unchanged). No canonical evidence changed, no analyses rerun, no
new events.
Changes
interconnection_contexton casestudies (Layer-2 fabric, reviewed attachments with ASN labels where
established, provenance, limitations). Reviewed interpretation only;
production analysis never uses it as protocol evidence.
src/catalog/web/path_diagram.rs,server-rendered SVG, no JS, no Graphviz): observed AS-path nodes (bold
ASN, reviewed short name, plane-matched/origin/changed marking, prepend
compaction), before/after state comparison (Event baseline / Pre-finding
/ First changed / First return / Final; absence is a state block, never a
"withdrawn" node), Layer-2 fabric diagram (wide neutral rectangle, grey
undirected attachment lines, no fabric ASN), reviewed-unobserved
relationship edges (dashed). Text equivalents always preserve the full
normalized sequence. All input from canonical
lifecycle.jsonartifacts.Scope first-screen hierarchy; fabric diagram + text table + limitations;
representative observer route story derived from canonical evidence (the
direct route-views2 finding: baseline
AS11537 AS2603→ pre-finding →absence → return with
AS24489 ×4prepend → final), with links to thefull run evidence; diagram legend; "attached networks/connectors"
heading; pilot wording corrected (never "complete incident verdict").
Adjacent(AS19782, AS11550)labeled "reviewed relationship sought — not observed inselected evidence"; absence block for the observed area; explicit "not
observed in the selected public baselines" (never "does not exist").
(text sequences, observation kind); no layout serialization, no SVG in
the API.
the MAN LAN scenario; regenerated. Tasks unchanged (no answers added).
AS-path diagram, Reviewed unobserved relationship), DOMAIN, UX (diagram
grammar), OBSERVABILITY (the ContainsAny[11537] predicate is a reviewed
transit-presence proxy, never a MAN LAN ASN), case-study README,
facilitator guide, SCHEMA-VERSIONS/CATALOG-SCHEMA (v11).
tests use documentation ASNs; integration tests load tracked evidence),
fabric-no-ASN, non-directional attachment lines, canonical-derivation,
absence-not-ASN, compaction, lifecycle-state preservation, dashed-vs-
solid, plan-hash stability, artifact byte-identity.
Verification
cargo testdebug + release (1446 passed, 0 failed; baseline 1412),fmt, clippy -D warnings, rustdoc -D warnings, deny (licenses/bans),
cargo package+ extracted-crate build, demo init/verify, answer-keybyte-stable regeneration (packaged crate differs only in the documented
stderr.log summary fields), read-only browse of all 10 evaluator URLs
with the DB hash unchanged, project-scope audit, secret scan,
audit-docs, release/audit guards, clean-clone + extracted-crate page
verification. Full-diff review findings addressed (per-run skip,
SVG escaping, u32 bounds).