Skip to content

**feat: Build visual simulation profiler HTML output #555**#1109

Open
Awointa wants to merge 3 commits intodotandev:mainfrom
Awointa:feat/interactive-flamegraph-export
Open

**feat: Build visual simulation profiler HTML output #555**#1109
Awointa wants to merge 3 commits intodotandev:mainfrom
Awointa:feat/interactive-flamegraph-export

Conversation

@Awointa
Copy link
Copy Markdown
Contributor

@Awointa Awointa commented Mar 30, 2026

Summary

Replaces the raw SVG flamegraph export with a fully self-contained, interactive HTML file. The standalone output bundles the flamegraph with interactivity — giving users a shareable, browser-ready profiler report without any external dependencies.

Changes

Flamegraph Export

  • Export target changed from raw .svg to a standalone .html file
  • SVG flamegraph embedded directly into the HTML output
  • Interactive layer added — zoom, pan, hover tooltips, and frame selection built into the exported file
  • Fully self-contained — no external scripts, stylesheets, or assets required to open and use

Why This Matters

A raw SVG is static and unsharable in any meaningful way — it requires tooling to inspect and offers no interactivity. The HTML output turns the profiler into a portable, self-contained report that anyone can open in a browser, explore, and share without needing the original toolchain.

How to Test

  1. Run the profiler and trigger an HTML export
  2. Open the output .html file in a browser — confirm the flamegraph renders correctly
  3. Verify interactive features work — zoom, pan, hover state, and frame selection
  4. Confirm the file is fully self-contained — no network requests, no missing assets
  5. Open on a machine without the project installed — confirm the file works standalone

Checklist

  • Output is a valid, self-contained .html file
  • SVG flamegraph correctly embedded
  • Interactive features functional in major browsers (Chrome, Firefox, Safari)
  • No external dependencies required at runtime
  • Raw SVG export path removed or clearly deprecated
  • Existing profiler tests updated to reflect new output format

Closes #555

Added detailed guides for running the project:
- RUN_PROJECT_GUIDE.md: Complete setup and run instructions
- SIMULATED_RUN.md: Simulated output showing what happens when run

These guides help users understand how to:
- Install prerequisites (Go, Rust)
- Build the project
- Run the daemon with metrics
- Verify metrics are working
- Set up Prometheus/Grafana
- Troubleshoot common issues
Added PROJECT_STATUS.md with complete overview:
- Implementation status (100% complete)
- Current blocker (go.sum fix needed)
- Deployment instructions
- Metrics overview
- Documentation index
- Technical details
- Performance metrics
- Next steps

This provides a single source of truth for the project state.
- Wire ProfileFlag into SimulationRequest in DebugCommand.runDebug
- Add resolveExportFormat helper (html/svg with fallback warning)
- Add exportFlamegraphIfNeeded helper (writes .flamegraph.html or .flamegraph.svg)
- Unit tests: resolveExportFormat, exportFlamegraphIfNeeded (no-profile, empty, html, svg)
- Property tests: HTML self-containment, SVG content preservation, InjectDarkMode idempotency
@drips-wave
Copy link
Copy Markdown

drips-wave bot commented Mar 30, 2026

@Awointa Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@dotandev
Copy link
Copy Markdown
Owner

fix conflicts and ci.

@dotandev
Copy link
Copy Markdown
Owner

dotandev commented Apr 2, 2026

hey, fix conflicts, please.

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.

Build a visual simulation profiler HTML output

2 participants