{"schema_version":"wheelie_hosted_source_surface_fixture/v1","fixture_name":"Keebdisplay hosted source public-read surface","generated_for":"selected public Wheelie Source launch project","status":{"auth_class":"public_read_approved_selected_project","actor_source":"anonymous_public_read_policy","public_read_enabled":true,"public_read_reason":"enabled for the selected Keebdisplay Source-only launch project","source_authority_status":"gravity_source_only_public_project","github_mirror_status":"not_public_normal_path_emergency_export_only","support_levels":{"archive_export":"checksum_metadata_native","forks":"unsupported","git_clone":"source_fetch_handoff_primary_selected_project","git_fetch":"source_fetch_handoff_primary_selected_project","github_mirror":"emergency_export_only_not_public_discovery","gravity_source_authority":"source_only_selected_project","hosted_source_read":"native_public_read_selected_project","issues":"unsupported","jj_projection":"source_only_selected_project","manifest_reads":"native_public_read_selected_project","openapi_descriptor":"not_applicable_static_read_surface","proof_evidence_reads":"native_redacted_public_summary","public_writes":"unsupported","raw_file_reads":"native_public_read_selected_project","source_feedback":"wheelie_feedback_source_or_support_email","workgraph_reads":"native_redacted_public_summary"}},"prototype_paths":{"seed_source_root":"source-root:keebdisplay-public-launch"},"repo":{"owner":"wheelie","name":"keebdisplay","display_name":"Keebdisplay","visibility":"public_read_approved","github_org":"","github_repo_visibility_required":"not_public_normal_path","authority_state":"gravity_source_only_public_project","canonical_read_surface":"https://source.wheelie.dev/repos/wheelie/keebdisplay","github_mirror":"","license_status":"mit_public_candidate","description":"Stock-firmware keyboard-light display engine with local-only hardware control and public-safe projection DTOs."},"support_levels":{"archive_export":"checksum_metadata_native","forks":"unsupported","git_clone":"source_fetch_handoff_primary_selected_project","git_fetch":"source_fetch_handoff_primary_selected_project","github_mirror":"emergency_export_only_not_public_discovery","gravity_source_authority":"source_only_selected_project","hosted_source_read":"native_public_read_selected_project","issues":"unsupported","jj_projection":"source_only_selected_project","manifest_reads":"native_public_read_selected_project","openapi_descriptor":"not_applicable_static_read_surface","proof_evidence_reads":"native_redacted_public_summary","public_writes":"unsupported","raw_file_reads":"native_public_read_selected_project","source_feedback":"wheelie_feedback_source_or_support_email","workgraph_reads":"native_redacted_public_summary"},"claim_boundary":{"allowed_internal":"For the selected Keebdisplay project only, Wheelie Source is the normal public source authority for repository identity, snapshots, fetch/review handoff, ACLs, validation receipts, and public readback; emergency provider export is break-glass evidence only.","allowed_after_approval":"Keebdisplay uses source.wheelie.dev and wheelie source fetch as the normal Wheelie Source path for this selected project. Public writes, forks, and issues remain unsupported.","disallowed":["full_github_replacement","source_only_for_all_repositories","provider_refs_override_wheelie_source_truth","public_write_or_fork_support_now","paid_or_high_volume_support_claim","firmware_flashing_or_persistent_device_write_claim"]},"links":{"agent_json":"https://source.wheelie.dev/repos/wheelie/keebdisplay/.well-known/agent.json","archive":"https://source.wheelie.dev/repos/wheelie/keebdisplay/archive/keebdisplay_2026_05_23_public_read.tar.zst","archive_checksum":"https://source.wheelie.dev/repos/wheelie/keebdisplay/archive/keebdisplay_2026_05_23_public_read.tar.zst.sha256","archive_sbom":"https://source.wheelie.dev/repos/wheelie/keebdisplay/archive/keebdisplay_2026_05_23_public_read.sbom.spdx.json","events_ndjson":"https://source.wheelie.dev/repos/wheelie/keebdisplay/events.ndjson?cursor=start","git_clone":"https://source.wheelie.dev/repos/wheelie/keebdisplay.git","git_fetch":"https://source.wheelie.dev/repos/wheelie/keebdisplay.git/info/refs?service=git-upload-pack","landing_html":"https://source.wheelie.dev/repos/wheelie/keebdisplay","llms_txt":"https://source.wheelie.dev/repos/wheelie/keebdisplay/llms.txt","manifest_json":"https://source.wheelie.dev/repos/wheelie/keebdisplay/manifest.json","raw_readme":"https://source.wheelie.dev/repos/wheelie/keebdisplay/raw/keebdisplay_2026_05_23_public_read/README.md","tree_root":"https://source.wheelie.dev/repos/wheelie/keebdisplay/tree/keebdisplay_2026_05_23_public_read/"},"content_refs":[{"ref":"keebdisplay_2026_05_23_public_read","kind":"public_read_snapshot","created_at":"2026-05-23T17:55:00Z","tree_hash":"sha256:2720b79f3a183d4368875f85617d529dc8d818c7c0fcc747670bc74c5a14ddc0","signed_metadata":{"support_level":"checksum_manifest_public_read","signature_status":"checksum_backed_not_transparency_logged","transparency_log_url":null}}],"files":[{"path":"README.md","media_type":"text/markdown","size_bytes":951,"content_hash":"sha256:7bfd6652f62fbdb830ce4b8f232f5c553d57d3d4c84e8bbc1afff4ed10f30145","raw_url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/raw/keebdisplay_2026_05_23_public_read/README.md"},{"path":"AGENTS.md","media_type":"text/markdown","size_bytes":668,"content_hash":"sha256:8e210e012344878fa1bfdb38ed25b0ae6e4d64e947e15520dfa84727e46be801","raw_url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/raw/keebdisplay_2026_05_23_public_read/AGENTS.md"},{"path":"llms.txt","media_type":"text/plain","size_bytes":442,"content_hash":"sha256:9e91847244a28035f0bf0e97f77e7ebd1f14b8234e46edd3a914ab72f3ecee5c","raw_url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/raw/keebdisplay_2026_05_23_public_read/llms.txt"},{"path":"docs/development.md","media_type":"text/markdown","size_bytes":594,"content_hash":"sha256:f11c94bb7d497133ac4bcb632e00c295e8e5593d03603d66ca86f622a8bf4bdf","raw_url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/raw/keebdisplay_2026_05_23_public_read/docs/development.md"},{"path":"docs/projection-protocol.md","media_type":"text/markdown","size_bytes":779,"content_hash":"sha256:4f2afa9eaa6996963ab2c0b418cd714e3c92dddcbaf89aaa0aa445f59bf55942","raw_url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/raw/keebdisplay_2026_05_23_public_read/docs/projection-protocol.md"},{"path":"docs/public-release-checklist.md","media_type":"text/markdown","size_bytes":755,"content_hash":"sha256:0036fbd3dbbb80f708a7a71e249324c805136cd4ff87fbf52c1ea7e804a33676","raw_url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/raw/keebdisplay_2026_05_23_public_read/docs/public-release-checklist.md"},{"path":"docs/supported-hardware.md","media_type":"text/markdown","size_bytes":580,"content_hash":"sha256:348df952b601f53722dcc389e3f83c5b00c3881a765e69632d2e4783a9cedcfe","raw_url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/raw/keebdisplay_2026_05_23_public_read/docs/supported-hardware.md"},{"path":"SECURITY.md","media_type":"text/markdown","size_bytes":613,"content_hash":"sha256:a22787932c58b40e69495db76b24e386fb16b8a7f79c206484d2592aad7b91d3","raw_url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/raw/keebdisplay_2026_05_23_public_read/SECURITY.md"},{"path":"wheelie-source/project-manifest.json","media_type":"application/json","size_bytes":854,"content_hash":"sha256:07a8ffa886d4ad150de78710f5012a94051d38465dc9a00f732234410b6e526b","raw_url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/raw/keebdisplay_2026_05_23_public_read/wheelie-source/project-manifest.json"},{"path":"wheelie-source/validation-evidence.json","media_type":"application/json","size_bytes":648,"content_hash":"sha256:946f23a03ddd2a35b5f3405a3fd5b1b0a7f3d7c1052b6973718258e2f1e23c89","raw_url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/raw/keebdisplay_2026_05_23_public_read/wheelie-source/validation-evidence.json"},{"path":"wheelie-source/source-acl-authz-receipts.json","media_type":"application/json","size_bytes":43333,"content_hash":"sha256:aecf2ac7461ba4af088889bf902f1be617b920fa6677a75317fdfb3e8ce585fe","raw_url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/raw/keebdisplay_2026_05_23_public_read/wheelie-source/source-acl-authz-receipts.json"}],"workgraphs":[{"workgraph_id":"wg_keebdisplay_public_read_001","title":"Publish Keebdisplay selected-project Source-only projection","status":"completed_source_only_fixture","url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/workgraphs/wg_keebdisplay_public_read_001","work_items":[{"work_item_id":"wi_keebdisplay_boundary","title":"Approve selected project boundary and safety constraints","state":"done","agent_assignment_support":"redacted_public_summary"},{"work_item_id":"wi_keebdisplay_routes","title":"Expose landing, tree, raw, manifest, proof, and event read routes","state":"done","agent_assignment_support":"redacted_public_summary"},{"work_item_id":"wi_keebdisplay_negatives","title":"Run privacy and unsupported-mutation negative checks","state":"done","agent_assignment_support":"redacted_public_summary"}]}],"changes":[{"change_id":"chg_keebdisplay_public_seed","title":"Promote Keebdisplay selected-project Source-only projection","state":"source_only_available","author_identity_support":"redacted_maintainer_or_agent_summary","patchsets":[{"patchset_id":"ps_keebdisplay_public_seed_001","base_ref":"source_native_seed","candidate_ref":"keebdisplay_2026_05_23_public_read","diff_summary":{"files_changed":11,"insertions":1,"deletions":0}}],"url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/changes/chg_keebdisplay_public_seed","github_mirror_url":"","github_mirror_visibility":"not_public_normal_path"}],"proof_runs":[{"proof_run_id":"proof_keebdisplay_public_read_001","schema_version":"wheelie_tap_proof_receipt/v1","proof_environment":"HERMETIC","proof_size":"small","status":"passed_source_only_fixture","summary":"Keebdisplay Source-only public routes, checksums, support labels, source ACL replay, Source-native fetch handoff, feedback affordance, emergency export posture, and public authz negative cases pass for the selected-project fixture.","freshness_key":"keebdisplay@keebdisplay_2026_05_23_public_read","redaction_status":"public_safe_redacted","artifacts":[{"artifact_id":"artifact_project_manifest","kind":"project_manifest","url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/manifest.json","content_hash":"sha256:07a8ffa886d4ad150de78710f5012a94051d38465dc9a00f732234410b6e526b"},{"artifact_id":"artifact_validation_evidence","kind":"tap_validation_summary","url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/raw/keebdisplay_2026_05_23_public_read/wheelie-source/validation-evidence.json","content_hash":"sha256:946f23a03ddd2a35b5f3405a3fd5b1b0a7f3d7c1052b6973718258e2f1e23c89"},{"artifact_id":"artifact_source_acl_authz_receipts","kind":"source_acl_replay_authz_receipt_packet","url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/raw/keebdisplay_2026_05_23_public_read/wheelie-source/source-acl-authz-receipts.json","content_hash":"sha256:aecf2ac7461ba4af088889bf902f1be617b920fa6677a75317fdfb3e8ce585fe"}],"url":"https://source.wheelie.dev/repos/wheelie/keebdisplay/proof-runs/proof_keebdisplay_public_read_001"}],"api_routes":[{"method":"GET","path":"/repos/wheelie/keebdisplay","auth_class":"public_read_approved_selected_project","response_formats":["text/html","application/json"]},{"method":"GET","path":"/repos/wheelie/keebdisplay/manifest.json","auth_class":"public_read_approved_selected_project","response_formats":["application/json"]},{"method":"GET","path":"/repos/wheelie/keebdisplay/llms.txt","auth_class":"public_read_approved_selected_project","response_formats":["text/plain"]},{"method":"GET","path":"/repos/wheelie/keebdisplay/.well-known/agent.json","auth_class":"public_read_approved_selected_project","response_formats":["application/json"]},{"method":"GET","path":"/repos/wheelie/keebdisplay/tree/{ref}/{path}","auth_class":"public_read_approved_selected_project","response_formats":["application/json"]},{"method":"GET","path":"/repos/wheelie/keebdisplay/raw/{ref}/{path}","auth_class":"public_read_approved_selected_project","response_formats":["original_media_type","text/plain"]},{"method":"GET","path":"/repos/wheelie/keebdisplay/archive/{ref}.tar.zst","auth_class":"public_read_approved_selected_project","response_formats":["application/json"],"support_level":"checksum_metadata_native"},{"method":"GET","path":"/repos/wheelie/keebdisplay/archive/{ref}.tar.zst.sha256","auth_class":"public_read_approved_selected_project","response_formats":["text/plain"],"support_level":"checksum_sidecar_native"},{"method":"GET","path":"/repos/wheelie/keebdisplay.git","auth_class":"public_read_approved_selected_project","response_formats":["application/json"],"support_level":"source_fetch_handoff_primary_selected_project"},{"method":"GET","path":"/repos/wheelie/keebdisplay.git/info/refs?service=git-upload-pack","auth_class":"public_read_approved_selected_project","response_formats":["application/json"],"support_level":"source_fetch_handoff_primary_selected_project"},{"method":"GET","path":"/repos/wheelie/keebdisplay/workgraphs/{workgraph_id}","auth_class":"public_read_approved_selected_project","response_formats":["application/json"]},{"method":"GET","path":"/repos/wheelie/keebdisplay/proof-runs/{proof_run_id}","auth_class":"public_read_approved_selected_project","response_formats":["application/json"]},{"method":"GET","path":"/repos/wheelie/keebdisplay/events.ndjson","auth_class":"public_read_approved_selected_project","response_formats":["application/x-ndjson"]},{"method":"POST","path":"/repos/wheelie/keebdisplay/tasks","auth_class":"authenticated_write_capability_required","response_formats":["application/json"],"support_level":"unsupported_in_public_read_mvp"},{"method":"POST","path":"/repos/wheelie/keebdisplay/changes","auth_class":"authenticated_write_capability_required","response_formats":["application/json"],"support_level":"unsupported_in_public_read_mvp"},{"method":"POST","path":"/repos/wheelie/keebdisplay/forks","auth_class":"authenticated_write_capability_required","response_formats":["application/json"],"support_level":"unsupported_in_public_read_mvp"},{"method":"POST","path":"/repos/wheelie/keebdisplay/issues","auth_class":"authenticated_write_capability_required","response_formats":["application/json"],"support_level":"unsupported_in_public_read_mvp"}],"redaction_policy":{"public_artifact_default":"redacted_public_summary","blocked_public_markers":["raw_tokens","cookies","private_prompts","customer_source","internal_provider_metadata","local_machine_paths","unredacted_proof_logs"],"negative_tests_required_before_hosted_launch":["private_source_route_denied_without_auth","unauthenticated_public_admin_mutation_denied","caller_supplied_actor_header_ignored_for_public_read","caller_supplied_github_identity_ref_ignored_as_acl_authority","cross_user_cross_org_source_acl_denied","expired_capability_or_grant_denied","unsupported_public_mutation_denied","cross_project_private_fixture_denied","redaction_bypass_patterns_absent"]},"robots_and_rate_limits":{"robots_policy":"allow_public_read_for_selected_project","anonymous_agent_rate_limit":{"requests_per_minute":120,"burst":240,"bulk_archive_preferred_after_files":200},"conditional_request_support":["etag","if_none_match","immutable_content_hash_urls"]}}
