Skip to content

iOS fresh signed-out installs present fabricated sessions as real account history #316

Description

@yxlyx

Summary

A fresh, signed-out install opens to realistic fabricated session rows without any Demo/Sample label. The rows look like account history, including titles, models, statuses, progress, timestamps, and transcripts.

Users can reasonably interpret this as real or retained account data, especially on a shared/test device.

Simulator reproduction

Confirmed on a fresh iPhone 17 Pro simulator running iOS 26.4:

  1. Install the current app with no codegraff key in Keychain.
  2. Cold-launch normally.
  3. The Sessions screen immediately displays:
    • “Add cube transport to c…” — Working, 2/5, just now
    • “Extend graff serve…” — Waiting on you, 1/3, 2m ago
    • “Notarize v0.0.16 build” — Done, 3/3, 1h ago
  4. No visible text identifies these rows as examples or demo content.

Root cause

SessionsListView initializes signed-out state with sampleSessions (apps/ios/Graff/Sources/SessionsListView.swift:4-6). The fixtures in GraffApp.swift:155-180 are realistic and navigable, but SessionsListView/SessionRow provides no user-visible Sample/Demo treatment. This behavior is not gated by --autotest.

Expected behavior

Prefer an explicit signed-out empty state with a sign-in call to action. If examples are intentionally retained:

  • isolate them from account history;
  • label every example clearly and persistently as Demo/Sample;
  • prevent confusion with account-owned sessions and credentials;
  • keep full fixtures behind test/demo launch configuration where possible.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions