6 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
ff5df70044 fix(security): address CodeQL findings in audit, staffml worker, migrator, auth
- Recognize HTML comment close --!> in LineWalker (py/bad-tag-filter)
- Stop returning provider error detail to clients; log server-side (js/stack-trace-exposure)
- Harden migrate-html-to-yaml script tag match and tag stripping loops (js/bad-tag-filter, js/incomplete-multi-character-sanitization)
- Resolve post-login next redirect via URL() with same-origin checks (js/client-side-unvalidated-url-redirection)
2026-04-13 09:29:42 -04:00
Vijay Janapa Reddi
aeaf0bd4c2 merge: integrate origin/dev into local dev with periodic-table polish
# Conflicts:
#	interviews/staffml/src/app/framework/page.tsx
#	interviews/staffml/src/app/layout.tsx
#	interviews/staffml/src/app/practice/page.tsx
#	interviews/staffml/src/components/Nav.tsx
#	interviews/staffml/src/components/vault/TopicDetail.tsx
#	interviews/staffml/src/data/periodicTable.ts
#	periodic-table/index.html
#	periodic-table/paper/figures/periodic_table_hero.pdf
#	periodic-table/paper/figures/periodic_table_hero.svg
#	periodic-table/paper/paper.tex
#	periodic-table/paper/references.bib
#	periodic-table/paper/scripts/generate_periodic_svg.py
#	periodic-table/paper/summary.txt
#	periodic-table/scripts/validate.mjs
#	periodic-table/table.schema.json
#	periodic-table/table.yml
2026-04-08 19:56:40 -04:00
Vijay Janapa Reddi
13b4d968a4 polish(periodic-table): resolve taxonomy grid constraints, clarify titles, and refine framework limitations
- Refactored table.yml to expand grid from 15 to 18 columns, perfectly aligning elements to their block columns without visual impurity.
- Updated schema validation and SVG layout logic to handle 18-col bounds.
- Re-generated periodic_table_hero.svg with the new clean grid layout.
- Switched 'Constraint-Driven Lowering Heuristic' to 'Constraint-Driven Structural Search' to emphasize generative design over compiler semantics.
- Fixed paper.tex title to remove academic jargon ('Generative Design Space').
- Styled code listings with custom 'elegant' light-theme formatting.
- Added Mamba compound visual figure to the limitations section.
- Added 'Predict the Paper' table to validate the heuristic empirically.
- Generated and included 'Nomenclature' table of all 90 elements.
- Re-added 'Framework Tax' limitation acknowledging software bottlenecks.
2026-04-08 19:49:37 -04:00
Vijay Janapa Reddi
4846513629 periodic-table: add canonical YAML, generator scripts, and paper
Add the Periodic Table of Machine Learning Systems source of truth and
the academic paper that introduces it.

  * table.yml — canonical 90-element design space (8 abstraction layers
    x 5 information-processing roles), with table.schema.json
  * scripts/ — Node.js tools that build index.html from the YAML,
    migrate prior HTML to YAML, and validate the schema
  * paper/ — LaTeX paper "The Periodic Table of Machine Learning Systems:
    A Constraint-Driven Design Heuristic with Compiler Correspondence"
  * paper/scripts/generate_periodic_svg.py — vector hero figure
    generator that reads table.yml and emits a crisp SVG/PDF the paper
    embeds in place of a screenshot
  * paper/figures/ — molecular_ml, mamba, and periodic_table_hero
    figures (SVG sources + PDF outputs)
  * paper/Makefile — full build pipeline (svgs -> rsvg-convert -> pdf)
  * paper/references.bib — bibliography including Hennessy-Patterson,
    Hooker, Sze/Emer, Halide, GPipe, PipeDream, Korthikanti, Kung
2026-04-07 10:35:53 -04:00
Vijay Janapa Reddi
64c940c363 chore(framework): add periodic-table paper, figures, and iteration archive
Companion commit to c5f90022b (the YAML migration). Pulls in the rest of
the periodic-table work that was sitting in the working tree.

- periodic-table/paper/: LaTeX paper draft (paper.tex, references.bib),
  Makefile with hero-figure and SVG->PDF rules (uses rsvg-convert), the
  Puppeteer capture_table.js script used to screenshot the table for the
  paper, generate_periodic_svg.py which builds the hero SVG from
  table.yml (the same source of truth used by the React app), and the
  figure sources (SVGs) + derived outputs (PDFs/PNGs) + compiled paper.pdf.
- root .gitignore gains two entries following the existing convention
  (cf. the !interviews/paper/fig-*.pdf line just above) so the
  periodic-table paper PDF + figure PDFs are not swept up by the blanket
  *.pdf LaTeX-artifact rule.
- periodic-table/paper/.gitignore excludes the LaTeX build artifacts
  (aux, bbl, blg, log, out, fdb_latexmk, synctex, toc) that make paper
  regenerates.
- periodic-table/{iteration,refinement,debate}-log.md: research
  provenance from the 100-round LLM iteration loop and the 5-expert
  debate simulations that produced v0.2 of the table.
- periodic-table/scripts/archive/: historical iteration scripts
  (iterate.sh, debate.sh, debate-continue.sh, run_100_rounds.sh, plus
  the Python helpers append_log.py, get_elements.py, patch_informal.py,
  patch_website.py, run_claude_loop.py, run_iterations{,_13,_16_20}.py,
  update_log.py) moved out of the repo root into an archive subdirectory
  with a README documenting their provenance and caveats. These scripts
  are preserved for reproducibility and are not part of the active build
  pipeline -- the source of truth is now periodic-table/table.yml.
- root package.json + package-lock.json pin puppeteer ^24 for
  capture_table.js.
2026-04-07 09:30:21 -04:00
Vijay Janapa Reddi
c5f90022b4 feat(framework): add Periodic Table page with YAML source of truth
- periodic-table/table.yml is now the canonical source for 90 elements
  and 53 compounds, validated against table.schema.json on every build.
- build-html.mjs regenerates the standalone index.html idempotently;
  sentinel comments mark the data sections so CSS and render JS are
  preserved across edits.
- sync-periodic-table.mjs regenerates the StaffML React data file as a
  prebuild/predev hook in interviews/staffml; the generated TS file
  carries an @generated header.
- validate.mjs catches cell collisions, broken bonds, undeclared symbol
  collisions, and unresolved formula references at edit time.
- new /framework route in StaffML renders the table interactively with
  search, block filter, element detail modal, and bidirectional cross-
  references between elements and Molecular ML compounds.
- dark mode is the site-wide default; CSP allows 'unsafe-eval' in dev so
  Next.js HMR can run without blocking client JS hydration.
- Makefile + package.json scripts let you run \`make all\` (or just
  \`npm run dev\`) to keep both consumers in sync from the YAML.
2026-04-07 08:52:43 -04:00