# PR #23213 evidence: what else differs between AFTER (head f7082eceb) and BEFORE (main 8d3b061121)

Head forks from ed9b7ca9c5. Base main 8d3b061121 is 39 commits ahead of that fork point.
Scope: `git diff --stat ed9b7ca9c5 8d3b061121 -- apps/web packages/client-runtime apps/server/src/assets apps/server/src/http.ts` (59 files, +1651/-294).

## Changes on the image/asset path that only base has
- **3b95e7831b fix(web): paused sidebar videos stop reloading after every command (#23106)**
  - `apps/server/src/assets/AssetAccess.ts` (+6): `issueAssetUrl` now returns `fileRevision = dev:ino:size:mtimeNs:ctimeNs` for media files.
  - `packages/contracts/src/assets.ts`: `AssetCreateUrlResult.fileRevision` is optional.
  - `packages/client-runtime/src/state/assets.ts` (+2): passes `fileRevision` through into `AssetUrlState`.
  - Consumer: only `apps/web/src/components/files/FilePreviewPanel.tsx` (it appends `?file-revision=`), plus AudioPreview and MediaVideoPlayer.
  - Confound assessment: the chat markdown image path (`ChatMarkdownMedia` / `assetUrls.ts`) does not read `fileRevision` on base. It is also only read from a *response*, so it cannot force a new `createUrl` call when the atom key is unchanged. That makes base, if anything, *more* likely to look fixed than head's fork point, and base still reproduced the stale image (BLUE in reply 2). The pair is not confounded in the direction that matters.
- `apps/web/src/components/ChatMarkdown.tsx` (+15/-?): adds the `rehypeTextDirection` plugin (the `dir` attribute) and logical border classes on alerts. This is not on the media URL path.
- `apps/server/src/http.ts`: unchanged between fork and base. The asset route caching headers (`private, max-age=3600` for images) are identical.

## Other web/client-runtime changes (not on the asset path)
threadDetail/threadExecution/threadRequests (client-runtime state), ChatView/ThreadTimeline/ThreadErrorBanner, composer text direction (RTL), settings scoping, command palette, AddProjectToMachine dialog, vite.config.ts.

## Visible unrelated UI differences noticed
- None material in the captured frames. The timeline, image sizing and sidebar layout look the same at 1440x900 light and 390x844 dark. Project and thread names differ only by side (`img-proof-head` / `chart-head` vs `img-proof-base` / `chart-base`).
- Both sides also show an auto-bootstrapped `server` project (`New thread`). It comes from the dev server's cwd (`apps/server`), not from any real data.
