Skip to content

Commit 97ee10e

Browse files
committed
fix(publish): sync v0.7.0 content the failed --apply skipped
The publish block's bash --apply hit WSL (broken) in PowerShell instead of git-bash, so the staging to public content sync was silently skipped and v0.7.0 shipped with only the version bump. Re-ran --apply via git-bash; this commits the 10 content files (graph v2 adapter, harness public-tolerance fix, report template, skill specs, mutation harness). Public harness 467/467 on the result. Published-from-internal: 7bdd332a9734c4186cc5d195881d76d786d41131
1 parent 83d9dcf commit 97ee10e

10 files changed

Lines changed: 1061 additions & 660 deletions

File tree

skills/deep-init/assets/report-template.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -915,6 +915,10 @@ <h3>Keyboard shortcuts</h3>
915915
var tx=svgEl("text",{x:p.x+dx,y:p.y+dy,"text-anchor":anch,"font-size":"11"}); tx.style.fill="var(--fg-soft)"; tx.textContent=n.id; grp.appendChild(tx); svg.appendChild(grp); });
916916
var wrap=el("div","depgraphwrap"); wrap.appendChild(svg); card.appendChild(wrap);
917917
var cap=el("p","sub"); cap.style.marginTop=".55rem"; cap.textContent=N+" components · "+edges.length+" import edges"+(truncated?" (top "+MAX+" by file count shown)":"")+" · click a node to open its docs, or open the Map for the full interactive graph."; card.appendChild(cap);
918+
var prov=(dash&&dash.graph&&dash.graph.provenance)||null;
919+
if(prov){ var pc=el("p","sub"); pc.style.marginTop=".2rem"; pc.style.opacity=".85";
920+
var cls=(prov.edge_classes||["imports"]);
921+
pc.textContent="Graph as of "+(prov.as_of||"unknown date")+" · edge data: "+cls.join("+")+" · rebuilt on each refresh"+((cls.indexOf("calls")<0)?" (imports only — install Graphify for calls/inheritance)":"")+"."; card.appendChild(pc); }
918922
return card;
919923
}
920924
// ===================================================================
@@ -966,6 +970,9 @@ <h3>Keyboard shortcuts</h3>
966970
var sr=document.createElement("input"); sr.type="text"; sr.placeholder=T("map_search"); sr.setAttribute("aria-label",T("map_search")); bar.appendChild(sr);
967971
var rb=el("button","mbtn",T("map_reset")); rb.type="button"; bar.appendChild(rb);
968972
bar.appendChild(el("span","maphint",T("map_lead")));
973+
var mprov=(dash.graph&&dash.graph.provenance)||null;
974+
if(mprov){ var mp=el("span","maphint"); mp.style.opacity=".8";
975+
mp.textContent="· graph as of "+(mprov.as_of||"?")+" · edge data: "+((mprov.edge_classes||["imports"]).join("+")); bar.appendChild(mp); }
969976
var canvas=el("div","mapcanvas");
970977
var tip=el("div","maptip");
971978
var legend=el("div","maplegend");

skills/deep-init/references/generation.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ Per file/component: `content_hash` (SHA256 of source) + `interface_hash` (SHA256
221221

222222
**Public-surface extraction (language-agnostic — pin it, don't improvise; the DP-1 skip AND the issue baseline match-key both rest on it).** The public surface is the **sorted, canonicalized list of exported symbol signatures** — name + param arity/kind + visibility, **excluding bodies, comments, and line numbers** — so a body-only edit leaves `interface_hash` unchanged while an export add/remove/signature change moves it.
223223
- **Primary (Graphify present):** each component's `exports` from `structural-graph.json`.
224+
- **Symbol-level DP-1 propagation (v2):** `structural-graph.json` v2 carries **per-symbol edge lists** (`imports_from`/`calls_into`/`inherits_from` map each dependent component → the specific symbols it uses). So when `interface_hash` moves, `update.md` Step 2 re-marks only the dependents of the *changed* symbol (`graphify_adapter.symbol_dependents`), not the whole importer closure. The hashed surface keys on symbol **name + arity where the layer provides it** — Graphify node labels carry the name (often with `()`) but not full parameter types, so cross-component propagation is keyed at **symbol-name** granularity (the grep fallback's captured signature line adds arity). Precision-only: it never widens what `interface_hash` itself detects, and falls back to the full `imported_by` closure when the edge is coarse.
224225
- **Fallback (Graphify absent):** grep the public-declaration patterns per language, capturing the **signature line, not the body**:
225226
- **TS/JS**`export (async )?(function|const|class|interface|type|enum) NAME` · `export { … }` (incl. `as` aliases) · `export default` · **re-export forms** `export * [as NS] from` / `export { … } from` · `export =` · **CommonJS** `module.exports[.X] =` / `exports.X =`
226227
- **Python** — module-level `def NAME(` / `class NAME` where NAME has no leading `_` (PEP-8 public), or names in `__all__` (a **dynamic / mutated `__all__`**`+=`, comprehension — is an unresolved indicator → fold, below)

skills/deep-init/references/issues.md

Lines changed: 245 additions & 244 deletions
Large diffs are not rendered by default.

skills/deep-init/references/report.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,12 @@ parser now handles those shapes, pinned by harness §43 G6).
7474
**Honest-degrades** to the "graph unavailable" state with no graph, and to a first-party
7575
inline-SVG render (with `data-node-id` click-navigation) when the lib can't initialise
7676
(headless / no canvas). Component-level only — symbol-level/whole-codebase stays out of scope.
77+
**Provenance (freshness honesty):** the Map carries its own **`as_of` date** (the
78+
`structural-graph.json` file mtime, distinct from the report's build time) + the **edge
79+
classes** the analysis had (`imports`, and on the v2 Graphify path `+calls +inheritance`),
80+
from `build_report._graph_provenance`. So a report regenerated today never *looks* current
81+
while embedding a months-old map — and since `--update` now rebuilds the graph (update.md
82+
Step 0b), the `as_of` tracks the code unless Graphify is absent (then it shows the true old date).
7783
- Cross-cutting: a **⌘K command palette**, instant client-side search, dark/light/auto
7884
theme (DFL navy + lime), a print stylesheet, keyboard shortcuts — all
7985
`prefers-reduced-motion`-aware.

0 commit comments

Comments
 (0)