{
  "schemaVersion": 1,
  "captureScope": "full",
  "captureMethod": "imagemagick-x11-window",
  "packaged": true,
  "generatedAt": "2026-09-20T09:04:55.539Z",
  "commit": "62c60feeecebdb515a90d5494512ab04bf4efbf7",
  "dirty": false,
  "versionStamp": null,
  "workflowRun": {
    "id": "35501144493",
    "url": "https://github.com/ArchiveBox/electron-archivebox/actions/runs/35501144493"
  },
  "appVersion": "0.9.35",
  "electronVersion": "44.4.3",
  "playwrightVersion": "1.63.0",
  "platform": "linux-x64",
  "dockerImage": {
    "reference": "archivebox/archivebox:dev",
    "id": "sha256:453fba33025b97b939febe47e57a1672d9799f56e25be9dca35df46d96766fcc",
    "repoDigests": [
      "archivebox/archivebox@sha256:c1e9d008c4c2ecffcee0158854829b4286ccf76235e4b78388c420770917cd76"
    ]
  },
  "requiredScreenshots": [
    "setup",
    "startup",
    "empty-archive",
    "login",
    "add-urls",
    "add-options",
    "activity",
    "archive",
    "search",
    "snapshot-overview",
    "snapshot",
    "archive-grid",
    "tags",
    "archive-log",
    "manage-users",
    "add-user",
    "edit-user",
    "settings",
    "network-settings",
    "network-lan",
    "stopped",
    "restarted",
    "docker-error"
  ],
  "screenshots": [
    {
      "id": "setup",
      "file": "setup.png",
      "title": "First-run setup",
      "description": "The ordinary desktop app opens a fresh collection and asks for its administrator account.",
      "checks": [
        "New empty data directory",
        "Visible administrator setup form"
      ],
      "capturedAt": "2026-09-20T09:02:57.933Z",
      "route": null,
      "width": 1288,
      "height": 864,
      "sha256": "7044efce7e0b4f41464c620c78977ff8c999b7ec3e2100e39589511c142c3c70"
    },
    {
      "id": "startup",
      "file": "startup.png",
      "title": "Starting ArchiveBox",
      "description": "The app connects to Docker and initializes the collection after submitting the setup form.",
      "checks": [
        "Setup submitted through the visible form",
        "Real service startup panel"
      ],
      "capturedAt": "2026-09-20T09:02:58.135Z",
      "route": null,
      "width": 1288,
      "height": 864,
      "sha256": "df9d0e0983845d54439770a5a53ea302d839b437220b53fe55f3dfb27fce46b0"
    },
    {
      "id": "empty-archive",
      "file": "empty-archive.png",
      "title": "Empty collection",
      "description": "The newly initialized collection is ready for its first saved page.",
      "checks": [
        "Live ArchiveBox public index",
        "Zero snapshot rows"
      ],
      "capturedAt": "2026-09-20T09:03:51.381Z",
      "route": "/public/",
      "width": 1288,
      "height": 864,
      "sha256": "79b9169d1db8953616a148816922d8d601b0977318faab756302557ad80d7bba"
    },
    {
      "id": "login",
      "file": "login.png",
      "title": "Sign in",
      "description": "ArchiveBox requires the administrator created during setup before adding pages.",
      "checks": [
        "Real authentication form reached by Add URLs"
      ],
      "capturedAt": "2026-09-20T09:03:51.711Z",
      "route": "/admin/login/?next=/add/",
      "width": 1288,
      "height": 864,
      "sha256": "4636ff1f2c6ffca4186941fe45242daf1b2485ce75053d71ee7707fde048069f"
    },
    {
      "id": "add-urls",
      "file": "add-urls.png",
      "title": "Add URLs",
      "description": "Two public websites are entered in the actual ArchiveBox form, with title, HTML and browser screenshot extraction selected.",
      "checks": [
        "Authenticated Add URLs form",
        "Two entered URLs",
        "Real title, wget and screenshot extractors selected"
      ],
      "capturedAt": "2026-09-20T09:03:53.949Z",
      "route": "/add/",
      "width": 1288,
      "height": 864,
      "sha256": "dc88ff58f0007188672584bb7fe1c49d52eb033081b2a54c7c078f6f879e1526"
    },
    {
      "id": "add-options",
      "file": "add-options.png",
      "title": "Crawl plugins",
      "description": "The real Add URLs form lets the user choose archiving plugins and reusable presets.",
      "checks": [
        "Actual crawl plugin controls",
        "Title, wget and screenshot methods selected"
      ],
      "capturedAt": "2026-09-20T09:03:54.158Z",
      "route": "/add/",
      "width": 1288,
      "height": 864,
      "sha256": "8dbe89b657c09c1578b3a92dc85b7090e78158b3f2d5002ab4e2fad38ddce842"
    },
    {
      "id": "activity",
      "file": "activity.png",
      "title": "Live activity",
      "description": "The Activity button opens ArchiveBox’s live progress monitor while the submitted crawl runs real extractors.",
      "checks": [
        "Activity clicked in desktop toolbar",
        "Live crawl state is started",
        "Actual progress monitor receives running-job data"
      ],
      "capturedAt": "2026-09-20T09:03:58.424Z",
      "route": "/admin/",
      "width": 1288,
      "height": 864,
      "sha256": "1b80d5cb2161eddb44c418d8b07f27de01faebf90f596557ad88aaa25fdda479"
    },
    {
      "id": "archive",
      "file": "archive.png",
      "title": "Saved pages",
      "description": "The collection lists two real pages saved through Add URLs, with extracted titles and tags.",
      "checks": [
        "Two real snapshot rows",
        "Both extracted titles equal Example Domain",
        "Tag desktop-demo visible"
      ],
      "capturedAt": "2026-09-20T09:04:03.191Z",
      "route": "/admin/core/snapshot/",
      "width": 1288,
      "height": 864,
      "sha256": "71858ab42b03ba0642cd5c2fc722d65afb81470e3abf53162379069bcec0385b"
    },
    {
      "id": "search",
      "file": "search.png",
      "title": "Search the archive",
      "description": "Selecting metadata search and entering example.com filters the two-page collection to the snapshot whose URL matches.",
      "checks": [
        "Metadata mode selected using visible Search mode control",
        "Search submitted using visible form",
        "One matching URL result"
      ],
      "capturedAt": "2026-09-20T09:04:03.506Z",
      "route": "/admin/core/snapshot/?search_mode=meta&q=example.com",
      "width": 1288,
      "height": 864,
      "sha256": "cd3cc31ac8e36b2cac7ee3b6ba52c1662cff71f4ae007d9052a64c95dda893ef"
    },
    {
      "id": "snapshot-overview",
      "file": "snapshot-overview.png",
      "title": "Snapshot details",
      "description": "The actual snapshot detail page shows saved files, metadata and extraction status for example.com.",
      "checks": [
        "Saved snapshot link opened",
        "Snapshot URL matches example.com",
        "Wget output available"
      ],
      "capturedAt": "2026-09-20T09:04:03.879Z",
      "route": "/archivebox/20260920/example.com/06aafa17c56c73db8000a39ec62d434b/index.html",
      "width": 1288,
      "height": 864,
      "sha256": "5c5f512b4b76e46e622480bbb8cd866401b0ee1b70762069e1c4e8a85ac59d0a"
    },
    {
      "id": "snapshot",
      "file": "snapshot.png",
      "title": "Archived page",
      "description": "The snapshot viewer displays the HTML actually downloaded by wget from example.com.",
      "checks": [
        "Snapshot opened by its saved-page link",
        "Wget HTML preview selected",
        "Downloaded HTML renders Example Domain"
      ],
      "capturedAt": "2026-09-20T09:04:04.177Z",
      "route": "/archivebox/20260920/example.com/06aafa17c56c73db8000a39ec62d434b/index.html",
      "width": 1288,
      "height": 864,
      "sha256": "1a0e1dfe09aa79fe862a7e13edbd64c2d4c3b26fa6089b9656425d5bc5c445b2"
    },
    {
      "id": "archive-grid",
      "file": "archive-grid.png",
      "title": "Snapshot grid",
      "description": "The grid toggle shows the saved pages with their real browser screenshots.",
      "checks": [
        "Snapshots navigation clicked",
        "Grid view selected",
        "Actual saved-page thumbnails displayed"
      ],
      "capturedAt": "2026-09-20T09:04:05.073Z",
      "route": "/admin/core/snapshot/grid/",
      "width": 1288,
      "height": 864,
      "sha256": "8987cf570df0d0bc8c0180268f47c311f4bca353820d79087d706d0ab07a81e8"
    },
    {
      "id": "tags",
      "file": "tags.png",
      "title": "Manage tags",
      "description": "The Tags screen lists the tag assigned through the Add URLs form.",
      "checks": [
        "Tags link clicked",
        "Persisted desktop-demo tag visible"
      ],
      "capturedAt": "2026-09-20T09:04:05.424Z",
      "route": "/admin/core/tag/",
      "width": 1288,
      "height": 864,
      "sha256": "01f0ce422a731f4605214eb180f5771abf8aca7c686aca229fad7bf2f830e796"
    },
    {
      "id": "archive-log",
      "file": "archive-log.png",
      "title": "Archive results",
      "description": "The Log screen shows the actual title and wget extraction jobs for the saved pages.",
      "checks": [
        "Log link clicked",
        "Real wget extraction results present"
      ],
      "capturedAt": "2026-09-20T09:04:05.872Z",
      "route": "/admin/core/archiveresult/?o=-1",
      "width": 1288,
      "height": 864,
      "sha256": "0a3e7a666dcccb009a24fcd74889c6490766f4b66f9ed4e8301bf24f78febe7b"
    },
    {
      "id": "manage-users",
      "file": "manage-users.png",
      "title": "Manage users",
      "description": "Django administration lists the real account created during desktop setup.",
      "checks": [
        "Authenticated user administration",
        "Setup administrator appears in results"
      ],
      "capturedAt": "2026-09-20T09:04:06.229Z",
      "route": "/admin/auth/user/",
      "width": 1288,
      "height": 864,
      "sha256": "9c08dba11e51a20998a3825b868fea6996f8dbfe9ed4689b5ecdd5031972ef1e"
    },
    {
      "id": "add-user",
      "file": "add-user.png",
      "title": "Add a user",
      "description": "The real user creation form is filled before saving a second local account.",
      "checks": [
        "Django Add user form",
        "New username entered through form fields"
      ],
      "capturedAt": "2026-09-20T09:04:06.643Z",
      "route": "/admin/auth/user/add/",
      "width": 1288,
      "height": 864,
      "sha256": "85352d43373497c7fecdae6d0a73940d3d88e5e11ec816b34910d5bf14641877"
    },
    {
      "id": "edit-user",
      "file": "edit-user.png",
      "title": "Edit a user",
      "description": "The newly saved reader account opens in the actual user editor.",
      "checks": [
        "User creation submitted",
        "Persisted reader account in change form"
      ],
      "capturedAt": "2026-09-20T09:04:07.324Z",
      "route": "/admin/auth/user/2/change/",
      "width": 1288,
      "height": 864,
      "sha256": "b27a3bcf1f821820f5db831569645716ec65049da52a2f983d2eed78b2aad157"
    },
    {
      "id": "settings",
      "file": "settings.png",
      "title": "Desktop settings",
      "description": "The shipped settings panel shows the actual local collection and service controls.",
      "checks": [
        "Settings opened using toolbar",
        "Live service controls visible"
      ],
      "capturedAt": "2026-09-20T09:04:10.022Z",
      "route": "/admin/auth/user/",
      "width": 1288,
      "height": 864,
      "sha256": "4d1448e56c8b1faecec7ec4bfb5d1d2259d5e5a65c1fccb67f680e7107b4aceb"
    },
    {
      "id": "network-settings",
      "file": "network-settings.png",
      "title": "Network settings",
      "description": "Settings applies a custom loopback interface, port 5798 and base URL to the real Docker service.",
      "checks": [
        "Network settings submitted through the visible form",
        "Persistent profile configuration verified",
        "Running Docker port binding and BASE_URL verified"
      ],
      "capturedAt": "2026-09-20T09:04:21.420Z",
      "route": "/admin/auth/user/",
      "width": 1288,
      "height": 864,
      "sha256": "742e7c8a4392ca179ac0d9e260ca4c0037638354fa3023a3cec20a1b6b59560c"
    },
    {
      "id": "network-lan",
      "file": "network-lan.png",
      "title": "LAN access",
      "description": "The isolated Linux CI app is running with LAN access enabled on port 5797.",
      "checks": [
        "LAN selected through the visible form",
        "Running Docker binds 0.0.0.0",
        "Automatic base URL retained"
      ],
      "capturedAt": "2026-09-20T09:04:32.974Z",
      "route": "/admin/auth/user/",
      "width": 1288,
      "height": 864,
      "sha256": "e94b4ca5769c152fcd712c3a9c542aa3fbf0735b95ff3970ca3d67c2fba65f3b"
    },
    {
      "id": "stopped",
      "file": "stopped.png",
      "title": "Service stopped",
      "description": "Stopping ArchiveBox from Settings shuts down its real Docker container.",
      "checks": [
        "Stop button clicked",
        "App reports service stopped"
      ],
      "capturedAt": "2026-09-20T09:04:45.329Z",
      "route": "/admin/auth/user/",
      "width": 1288,
      "height": 864,
      "sha256": "9359aef9692cf4114293e9edfbe9761c1ec52d9d3c906e4213c8eae51ff9a19c"
    },
    {
      "id": "restarted",
      "file": "restarted.png",
      "title": "Collection after restart",
      "description": "Restarting the Docker service preserves both saved pages and their extracted titles.",
      "checks": [
        "Real service stop/start",
        "Both saved pages survive restart"
      ],
      "capturedAt": "2026-09-20T09:04:54.122Z",
      "route": "/admin/core/snapshot/",
      "width": 1288,
      "height": 864,
      "sha256": "bc1e69d2f130c4aebf8e0bb4165b8f2df9ebda2f5062af7bc6c290e88d866c49"
    },
    {
      "id": "docker-error",
      "file": "docker-error.png",
      "title": "Docker unavailable",
      "description": "Launching with a genuinely unavailable Docker endpoint displays the app’s normal recovery instructions.",
      "checks": [
        "Real connection failure at an unavailable local Docker socket",
        "Shipped error and recovery UI"
      ],
      "capturedAt": "2026-09-20T09:04:55.492Z",
      "route": null,
      "width": 1288,
      "height": 864,
      "sha256": "707e70267e2f0bde77cd17468433335b1306fc66dbc497285a5f2884eb554e41"
    }
  ]
}
