Repository navigation
web: no engine reads the HTML and CSS relations the parser emits #1908
Description
The parser already reads .html/.htm/.xhtml and .css files into seventeen web relations (all-html-*.csv, all-css-*.csv, schema under parser/src/schema/web/), but no engine reads them. When you index a plain HTML + CSS + JavaScript site, its pages, elements, classes, ids, stylesheets, rules, selectors and custom properties don't reach any graph, so context, impact and path can't answer about them. A developer porting such a site to a component framework has to grep for every class and id. Scope: HTML and CSS only; JavaScript files and inline script bodies are not parsed by this layer.
Reproduction
<!-- index.html -->
<link rel="stylesheet" href="widgets.css">
<div class="widget-card" id="main-widget"></div>/* widgets.css */
.widget-card { color: var(--widget-fg); }The parser writes html_element, html_class_reference, css_selector_part and css_declaration rows for these files. No engine declares those relations, so no graph table receives them.
Root cause
parser/src/extract.tscopies the web tables into thejava/,javascript/andtypescript/IR folders, but no engine reads them. There is nograph/web/, nowebadapter ingraph/bundle/languages.ts, and nowebmember in theLanguageunion.
$ grep -n "^export type Language" graph/bundle/schema.ts
18:export type Language = 'java' | 'typescript' | 'python' | 'javascript' | 'csharp';
$ grep -rln "html_element\|all-html-" graph/
$
Checklist
-
graph/web/engine: HTML and CSS as oneweblanguage,--lang web, with in-web edges. A selector that can't be decided statically is recorded as unknown. - Bundle
webadapter, documented ingraph/bundle/SCHEMA.md.context,impactandpathanswer on web nodes. - Nodes shaped for conversion: shared structures across pages, resolved styles per element, tokens, breakpoints, forms, assets, unused CSS.
- Torture suite under
graph/test/web/against an independent oracle, and measurement on real multi-page sites.
Activity
web engine: computed winners, tokens, styles grain, forms, references…
web answers: `at` is the node's own start, `via_at` the matched token…
web engine: P3s V2-14/16/17/19, lone-CR lines, index share on element…
web engine: value/prelude sizes and the 64 KiB LIMIT row (V2-12); con…
web torture: V2-12 full prelude/value text with sizes and the 64 KiB …
web parser: root-relative URLs at the nearest ancestor, directory URL…
web engine: nearest-ancestor and directory-index resolution, SSI dire…
web torture: iteration-4 oracle and grader rulings (V3-02, V3-07, V3-…
web answers: a templated class token or id is found by its written na…
6 remaining items
web cost: the bundle's heap is capped, IR hashes interned, unused ind…
web review 1: an undecidable contender is no certain winner; cascade,…
web torture: a fragment's own <style> applies in its host; commented …
skill: name the custom-property target without a flag-shaped token
web torture: a fragment's sheets are loaded by each host at the inclu…
web loads: a fragment's sheets are loaded by each host at the include…
web torture: key include references before the load edges; refuse raw…
web review 1, P3: data written whole, dropped IR rows declared, strin…
web torture: iteration-5 rulings and the single-quote oracle regression
web torture: keep nodes/27's CRLF fixture byte-exact (-text)
web torture: SET and SET>= grade query answers as multisets (review-1 #…
web torture: element-styled answers graded per (element, rule) on at,…
web: a later <include/> composes; no-op javascript: links; stored-tex…
web resources: a fragment's url() resolves against each host, and eve…
link: an asserted web include is taken and reported under --src