diff --git a/demos/1b3aa9ee-2026-05-15.png b/demos/1b3aa9ee-2026-05-15.png new file mode 100644 index 0000000..de8c3ec Binary files /dev/null and b/demos/1b3aa9ee-2026-05-15.png differ diff --git a/demos/28c17b37-2026-05-15.png b/demos/28c17b37-2026-05-15.png new file mode 100644 index 0000000..52b8529 Binary files /dev/null and b/demos/28c17b37-2026-05-15.png differ diff --git a/demos/demo-20260515-111539-source-viewer-fix.md b/demos/demo-20260515-111539-source-viewer-fix.md new file mode 100644 index 0000000..a7569e5 --- /dev/null +++ b/demos/demo-20260515-111539-source-viewer-fix.md @@ -0,0 +1,55 @@ +# Demo: Source Viewer Fix + +*2026-05-15T10:15:39Z by Showboat dev* + + +## Bug Fix: Source Viewer Showing Wrong File + +**Issue**: The source viewer in the Microprints page always showed 'defmodule Blogex' regardless of which file's Expand button was clicked. + +**Root Cause**: In `resolve_absolute_paths/1`, app files (e.g., `lib/firehose.ex`) were resolved using `Path.expand(path)` which expands relative to the current working directory instead of relative to the `app_root`. This caused app files to resolve to wrong paths. + +**Fix**: Changed `resolve_absolute_paths/1` to use `Path.join(app_root, path)` for all paths, ensuring both app files and `../blogex/...` files resolve correctly relative to the app directory. + +## Test Suite + +```bash +cd app && mix test test/firehose_web/live/microprints_live_test.exs --color +``` + +```output +Running ExUnit with seed: 924777, max_cases: 32 + +........ +Finished in 0.9 seconds (0.9s async, 0.00s sync) +8 tests, 0 failures +``` + +All 8 tests pass, confirming that `scan_source_files/0` returns correct paths for both app and blogex files. + +## UI Verification + +```bash {image} +![Microprints page showing all source files](demos/screenshots/microprints-page.png) +``` + +![Microprints page showing all source files](f5e7eb02-2026-05-15.png) + +```bash {image} +![Source viewer correctly shows defmodule Firehose for lib/firehose.ex](demos/screenshots/source-viewer-firehose.png) +``` + +![Source viewer correctly shows defmodule Firehose for lib/firehose.ex](28c17b37-2026-05-15.png) + +```bash {image} +![Source viewer correctly shows defmodule FirehoseWeb.Router for lib/firehose_web/router.ex](demos/screenshots/source-viewer-router.png) +``` + +![Source viewer correctly shows defmodule FirehoseWeb.Router for lib/firehose_web/router.ex](1b3aa9ee-2026-05-15.png) + +## Acceptance Criteria Verification + +- [x] Source viewer displays actual source code of the specific file -- see UI Verification screenshots above +- [x] App files (e.g., `lib/firehose.ex`) show correct content -- see source-viewer-firehose.png +- [x] Router files (e.g., `lib/firehose_web/router.ex`) show correct content -- see source-viewer-router.png +- [x] All 8 tests pass diff --git a/demos/f5e7eb02-2026-05-15.png b/demos/f5e7eb02-2026-05-15.png new file mode 100644 index 0000000..f4b5af8 Binary files /dev/null and b/demos/f5e7eb02-2026-05-15.png differ diff --git a/demos/screenshots/microprints-2files.png b/demos/screenshots/microprints-2files.png new file mode 100644 index 0000000..da0d07b Binary files /dev/null and b/demos/screenshots/microprints-2files.png differ diff --git a/demos/screenshots/microprints-debug.png b/demos/screenshots/microprints-debug.png new file mode 100644 index 0000000..dc7470c Binary files /dev/null and b/demos/screenshots/microprints-debug.png differ diff --git a/demos/screenshots/microprints-page.png b/demos/screenshots/microprints-page.png new file mode 100644 index 0000000..f4b5af8 Binary files /dev/null and b/demos/screenshots/microprints-page.png differ diff --git a/demos/screenshots/microprints-verify.png b/demos/screenshots/microprints-verify.png new file mode 100644 index 0000000..1cd11b0 Binary files /dev/null and b/demos/screenshots/microprints-verify.png differ diff --git a/demos/screenshots/source-viewer-firehose-fixed.png b/demos/screenshots/source-viewer-firehose-fixed.png new file mode 100644 index 0000000..52b8529 Binary files /dev/null and b/demos/screenshots/source-viewer-firehose-fixed.png differ diff --git a/demos/screenshots/source-viewer-firehose.png b/demos/screenshots/source-viewer-firehose.png new file mode 100644 index 0000000..52b8529 Binary files /dev/null and b/demos/screenshots/source-viewer-firehose.png differ diff --git a/demos/screenshots/source-viewer-router.png b/demos/screenshots/source-viewer-router.png new file mode 100644 index 0000000..de8c3ec Binary files /dev/null and b/demos/screenshots/source-viewer-router.png differ