# 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