Skip to content

feat(gfsim): add committed replay with source names and selectable Table trees - #79

Open
hmljy2020 wants to merge 8 commits into
PTO-ISA:mainfrom
hmljy2020:feat/gfsim-replay
Open

feat(gfsim): add committed replay with source names and selectable Table trees#79
hmljy2020 wants to merge 8 commits into
PTO-ISA:mainfrom
hmljy2020:feat/gfsim-replay

Conversation

@hmljy2020

@hmljy2020 hmljy2020 commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Record committed Queue/Table dataflow in PYC6TRC3 and render it in an offline viewer. Lightweight observation hooks preserve atomic commit boundaries and keep replay state outside ordinary components.

Preserve frontend rule/module names through verified ac.source_name metadata into gfsim replay labels, with canonical identities retained. Render nested Table fields with collapsible grouped headers and selectable fields and original row indices. Selections survive playback and seeking; hidden changes offer a reveal action and typed details preserve exact integer widths.

Include DavinciOO ROB contracts, single/dual-flow test drivers, an allocation NDF draft and local validation evidence. At the author's explicit request, designs/davincioo/spe/ooo/rob.py is excluded from this submission and remains local. The new ROB tests require that missing module and cannot be reproduced from this PR checkout alone. The ROB evidence describes the complete local working tree, not a self-contained ROB delivery in this PR.

pyc6 Decision / Contract Impact

  • Decisions 0228 (replay and presentation) and 0222 (DavinciOO design program); preserve scheduling/transaction contracts 0176, 0177, 0189, 0194 and 0196.
  • Generic frontend fixes cover typed rule literal context and aggregate updates. Source labels have MLIR verification and propagation coverage.
  • Observation does not reevaluate policies, influence arbitration or split atomic commits. Filtering affects presentation only.

Validation

  • Required PR checks passed previously on f17b5ab1 (run 34199377528); the new head requires fresh CI:
    • G0: Python Checks
    • G0: Agentic Python Checks
  • Prior replay baseline: 281 gfsim and 136 codegen C++ tests; eight focused lit tests; four circular ROB/backpressure tests with identical recorded projections.
  • Source-name follow-up: frontend 259 passed / 4 skipped; 12 focused regressions; eight native replay tests; seven CLI tests; existing four ROB tests and nested-module execution passed.
  • Complete local ROB working tree: five dual-flow and four single-flow scenarios passed, including functional expected-state checks, scan/activation parity and recording parity. These require the intentionally excluded rob.py.
  • Viewer and producer unit suites: four tests each. Five final Table-tree browser scenarios passed, including independent synthetic expected states, exact integers, row/field filtering, hidden changes and every real trace commit projection. Existing nested, source-name and legacy browser checks passed offline.
  • Scoped formatting/API hygiene and strict MkDocs builds passed. Use /home/lc/.codex/skills/pyc6/scripts/run.sh for the fixed environment.
  • Evidence and reproduction commands:
    • docs/gates/logs/20260908-replay-main-migration/
    • docs/gates/logs/20260908-davincioo-rob/
    • docs/gates/logs/20260908-source-names/
    • docs/gates/logs/20260908-single-rob/
    • docs/gates/logs/20260908-table-tree/
  • PYC/RTL, Verilator and release closure lanes are outside this scope.

Documentation

Update the observation contract, standalone viewer README, source-name decision/status evidence, DavinciOO ROB/CMT interface contracts and module checklist. The NDF allocation example remains a draft; local ROB completion claims in archived evidence do not imply the excluded implementation is delivered remotely.

Risk / Compatibility

  • ROB implementation intentionally omitted as described above; this PR is not a standalone delivery of the new DavinciOO ROB.
  • Two existing Queue codegen structural assertions remain failing (ISQ snapshot-set count and same-owner policy count); neither assertion was relaxed. Strict decision-status retains 35 missing historical evidence paths for Decisions 0176–0210.
  • Nested aggregate and enum presentation is now covered; replay still does not claim complete private-state or reset capture. Large traces load in memory, and field/row filtering does not reduce that memory. Viewer selections reset on reload.
  • Source display paths may change with source call order; canonical IDs remain available. Descriptive metadata changes integrity fingerprints without changing scheduling.
  • Generated HTML, native artifacts, browser dependencies/screenshots, local rob.py and unrelated env.md are excluded from Git.

Related Issues

No automatic issue closure; upstream #70 and #73#78 remain preserved by the existing merge.

Add opt-in replay recording with topology, typed state snapshots, token identities and atomic operation events (Decision 0223). Keep HTML generation in an independent, uncommitted tool package.

Evidence: docs/gates/logs/20260908-queue-table-flow/. ROB and native checks pass; existing Queue codegen failures and historical missing decision evidence are documented.
@hmljy2020 hmljy2020 changed the title feat(gfsim): add committed Queue/Table recording and offline flow viewer feat(gfsim): add committed replay with source names and selectable Table trees Sep 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant