fix(mobile): hide placeholder session titles and disambiguate duplicate artifact names - #6759
Conversation
…te artifact names
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryThe incremental commit Files Reviewed (3 incremental files)
Previous Review Summary (commit 3bdc536)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 3bdc536)Status: No Issues Found | Recommendation: Merge Reviewed the mobile artifact mirror changes: placeholder session titles are now gated through Files Reviewed (5 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
- extract the unique-name tests to their own file to stay under max-lines - pass the artifact to uniqueArtifactDisplayName to fit max-params - name the splitArtifactExtension return type so the anti-slop rule accepts it
|
bot: Fixed failing checks in 7da1280. |
Fix proof
A session that still carries the backend's placeholder title (
New session - <ISO>/Child session - <ISO>) is shown in the phone's file browser as that machine string, because `buildSessionArtifacAsserted value:
apps/mobile/src/lib/artifacts/artifact-crawl.ts. Sense check (jev): probability 0.93The scripts were proven on an earlier base, so only the head ran.
Head
7da128024d17Head log: backend-assert 12df6407ebc6 exited 0
Two artifacts in one session that share a filename are written to the manifest with the same display
name, so the OS file browser shows duplicate, indistinguishable entries in the session folder; `bAsserted value:
apps/mobile/src/lib/artifacts/artifact-crawl.ts. Sense check (jev): probability 0.92The scripts were proven on an earlier base, so only the head ran.
Head
7da128024d17Head log: backend-assert 12df6407ebc6 exited 0
Changelog for users
Session <id>instead of a rawNew session - <ISO>folder for sessions that still carry the backend placeholder.(2),(3), and so on.Changelog for maintainers
sessionDisplayTitlebefore sanitizing, so a placeholder row reaches the manifest as a null title and falls back toSession <id>.uniqueArtifactDisplayNamessuffixes duplicates before the extension, keeps every name inside the byte bound, and returns the input files unmutated.(n)suffix, and the extension is capped so the counter keeps room.E2E proof
A session that still carries the backend's placeholder title (
New session - <ISO>/Child session - <ISO>) is shown in the phone's file browser as that machine string, becausebuildSessionArtifactspasses the rawsession.titlestraight tosafeArtifactSessionNameinstead of gating it through the sharedsessionDisplayTitlethat every app surface uses to hide the placeholder; the user opening the Kilo location sees a raw timestamp folder name the app itself would never paint.Code trace:
apps/mobile/src/lib/artifacts/artifact-crawl.ts:12 changed in c59cdf4a9d979f20addf729e7ae1ce07eec439e4. Sense check (jev): probability 0.92Changed lines
Two artifacts in one session that share a filename are written to the manifest with the same display
name, so the OS file browser shows duplicate, indistinguishable entries in the session folder;buildSessionArtifactsmaps each file throughtoMirrorFileindependently and never de-duplicates names within the session.Code trace:
apps/mobile/src/lib/artifacts/artifact-crawl.ts:12 changed in c59cdf4a9d979f20addf729e7ae1ce07eec439e4. Sense check (jev): probability 0.9Changed lines
Owner request