docs/homarr-proof.json
Rama main · réplica de lectura del repositorio original.
{
"version": 1,
"kind": "homarr-functional-proof",
"head": "374bd1c813aa6f2d32580f1ae4fe2711a0ecb427",
"binary_sha256": "4a1329fe447ecffb7e799ba1f385311fb42fc2f95b0e0c25b290976b0be5d6bb",
"platform": "linux/amd64",
"started": "2026-10-07T16:59:50.789037454Z",
"finished": "2026-10-07T17:10:28.813126479Z",
"outcome": "pass",
"cleanup": "pass",
"apps": [
"homarr",
"ntfy",
"jellyfin"
],
"recorded_images": [
{
"service": "homarr",
"id": "sha256:0330b79902f792d55c9ac0d9a573ce7ec1d0fc84410df4fc52f9594addb207b8",
"platform": "linux/amd64"
},
{
"service": "ntfy",
"id": "sha256:2a9ce4a61de215b23367af546f72e2f2a42cd0ba3573408cc0006f7096b4b6f1",
"platform": "linux/amd64"
},
{
"service": "jellyfin",
"id": "sha256:fbd967af0187a569b0c18d2db6cb311fdf0df4aeb520102c63f19320aadf964d",
"platform": "linux/amd64"
}
],
"stages": [
{
"name": "install",
"outcome": "pass",
"assertion": "Isolated Homarr, ntfy and Jellyfin install and headless setup completed."
},
{
"name": "administrator-board",
"outcome": "pass",
"assertion": "Administrator session read private Home, made and reverted a benign edit; anonymous private reads denied or excluded. Upstream private seeded board adopted with null creator."
},
{
"name": "notification-roundtrip",
"outcome": "pass",
"assertion": "Authenticated ntfy publish/read matched exact ID and body; Homarr exposed that notification and current nonzero message statistics; anonymous topic access denied."
},
{
"name": "synthetic-media-release",
"outcome": "pass",
"assertion": "Jellyfin scanned owned generated PCM audio and Homarr media releases matched its exact item and integration IDs."
},
{
"name": "idempotency-restart",
"outcome": "pass",
"assertion": "Repeated setup and restart preserved dashboard resource identities without duplicates."
},
{
"name": "url-reconciliation",
"outcome": "pass",
"assertion": "Drifted browser URL repaired; LAN_IP=127.0.0.2 metadata change preserved loopback-only binding and resource identities."
},
{
"name": "credential-recovery",
"outcome": "pass",
"assertion": "Invalid owned ntfy token produced exit2 and targeted homarr/link-ntfy failure with retry hint. Restoring the original token and retrying preserved resources and recovered the real notification roundtrip."
},
{
"name": "add-remove",
"outcome": "pass",
"assertion": "Transient Gatus tile add/remove reconciled; ntfy removal/reinstall reconciled tiles/integration/widgets/notebook while preserving Jellyfin resources and shared administrator credentials."
},
{
"name": "browser-dashboard",
"outcome": "pass",
"assertion": "Real form administrator login, normal tour dismissal, live notification/media/notebook content and loaded App icons; root visually verified four readable native screenshots."
}
],
"board_attribution": "adopted private seeded board; creator not assigned by upstream",
"visual_review": "Root viewed all four native PNGs: populated, unobstructed, readable, icons loaded; ntfy messages, synthetic Jellyfin release and secret-free notebook visible.",
"scope_limits": [
"127.0.0.2 is loopback configuration metadata, not proof of physical LAN reachability.",
"Selfhost E2E Tone is authorized generated 1-second mono16-bit PCM WAV audio; library and release visibility proved, playback or streaming not exercised.",
"App tiles, integration API data and visible widgets are separate observed claims.",
"Credential recovery restored the known valid owned token; the suggested ntfy repair command was not exercised in that negative-token stage.",
"Recorded image identities cover Homarr, ntfy and Jellyfin; transient Gatus was removed before final browser proof."
],
"archive": {
"directory": "/tmp/selfhost-runtime-iterations/homarr-374bd1c",
"manifest_sha256": "675248d1e0ec2b9a5904fb57fecb8b7dc19996009617726daec27e6bca36d355",
"artifacts": [
{
"archive_path": "functional-homarr.json",
"sha256": "ff121653fedd8d9cd1ff6bdf40026b0ed0f130312d330a9de1cbd5d4ede23c89"
},
{
"archive_path": "browser/dashboard.png",
"sha256": "2bcf46f66af1e63c92e118589607c1cad8113da544435d5437d7e0d1a31e7f9c",
"repository_path": "docs/images/homarr-dashboard.png"
},
{
"archive_path": "browser/notifications.png",
"sha256": "cf7b5861fc284d46650c4673ee5200d49e55fee7de84f1399a2858576c3d159e",
"repository_path": "docs/images/homarr-notifications.png"
},
{
"archive_path": "browser/mediaReleases.png",
"sha256": "44bc3939896cc254b1be4966ae0f1c30e4253b255a29449e0697d134c80bbbd9",
"repository_path": "docs/images/homarr-media-releases.png"
},
{
"archive_path": "browser/notebook.png",
"sha256": "da7267b075dadffe1e52be43ee057fc1e7caf30f706dbfc39d5e903845fe9f0a",
"repository_path": "docs/images/homarr-notebook.png"
},
{
"archive_path": "tui/dashboard.png",
"sha256": "204b7b26dc08c7526f9f606bc72f9022a98d16efdb4faf16c7c554a9179601cc",
"repository_path": "docs/images/dashboard.png"
},
{
"archive_path": "tui/workflow.png",
"sha256": "7d8a57b0905a92726b737d4a5230b191970a55bdbd49382228521e1383e6adf6",
"repository_path": "docs/images/workflow.png"
},
{
"archive_path": "tui/install-search.png",
"sha256": "433b41ce5a39db9ff303e6a9a0dd97737058f02f6d4edab70f3b0d8bc2275449",
"repository_path": "docs/images/install-search.png"
},
{
"archive_path": "tui/demo.cast",
"sha256": "5dfb3891fc760ee9a619771f97fa54c34169b8eb977f8d0f2e43b44a829d1b06",
"repository_path": "docs/demos/self-host.cast"
},
{
"archive_path": "tui/capture.json",
"sha256": "5c0742e0f84c90dcbf61d0f5657d7574d225a2f2fe14623403be6e7db3292bb3",
"repository_path": "docs/demos/capture.json"
}
]
},
"ci": {
"url": "https://github.com/ajnart/selfhost-skills/actions/runs/37655239987",
"head": "374bd1c813aa6f2d32580f1ae4fe2711a0ecb427",
"status": "success",
"scope": "Green CI and final functional/browser/TUI proof use the same immutable head374bd1c813aa6f2d32580f1ae4fe2711a0ecb427."
},
"actual_tui": {
"outcome": "pass",
"review": "Real native PTY session after all nine stages passed. Root viewed all three TUI PNGs; readable Dashboard, expanded Workflow and Install search. No logs/credentials UI/mutations.",
"source_head": "374bd1c813aa6f2d32580f1ae4fe2711a0ecb427",
"binary_sha256": "4a1329fe447ecffb7e799ba1f385311fb42fc2f95b0e0c25b290976b0be5d6bb",
"screens": [
"dashboard",
"workflow",
"install-search"
],
"provenance": "docs/demos/capture.json",
"recording": "docs/demos/self-host.cast",
"chronology": "All nine API/browser stages passed before capture pause. Actual native PTY Dashboard, Space-expanded Workflow and Install search were captured read-only; root reviewed all seven PNGs, then the fixture resumed and owned cleanup passed."
}
}