Spaces:
Sleeping
Sleeping
| { | |
| "schema": "proofframe.docker_smoke.v1", | |
| "created_at": "2026-06-29T13:08:34Z", | |
| "ok": true, | |
| "mode": "docker_smoke_ready", | |
| "safe_to_share": true, | |
| "image": "proofframe:submission-smoke", | |
| "container": "proofframe-submission-smoke", | |
| "base_url": "http://127.0.0.1:18088", | |
| "dockerignore": { | |
| "path": ".dockerignore", | |
| "present": true, | |
| "required_patterns_present": true, | |
| "missing_required_patterns": [], | |
| "example_env_allowed": true, | |
| "missing_allow_patterns": [] | |
| }, | |
| "health": { | |
| "ok": true, | |
| "status": 200, | |
| "json": { | |
| "app": "ProofFrame", | |
| "version": "0.1.0", | |
| "generation_backend": "mock", | |
| "storage_backend": "local", | |
| "b2_configured": false, | |
| "genblaze_configured": false, | |
| "ready": true | |
| }, | |
| "error": null | |
| }, | |
| "checks": [ | |
| { | |
| "id": "dockerignore_secret_exclusions", | |
| "label": ".dockerignore excludes local secrets and heavy runtime paths", | |
| "ok": true, | |
| "detail": "missing_required=[]; missing_allow=[]." | |
| }, | |
| { | |
| "id": "docker_daemon", | |
| "label": "Docker daemon is reachable", | |
| "ok": true, | |
| "detail": "docker info completed." | |
| }, | |
| { | |
| "id": "docker_build", | |
| "label": "Docker image builds", | |
| "ok": true, | |
| "detail": "docker build completed." | |
| }, | |
| { | |
| "id": "docker_run", | |
| "label": "Docker container starts", | |
| "ok": true, | |
| "detail": "docker run returned a container id." | |
| }, | |
| { | |
| "id": "docker_health", | |
| "label": "Dockerized app reports local/mock health", | |
| "ok": true, | |
| "detail": "health={'app': 'ProofFrame', 'version': '0.1.0', 'generation_backend': 'mock', 'storage_backend': 'local', 'b2_configured': False, 'genblaze_configured': False, 'ready': True}; error=None." | |
| }, | |
| { | |
| "id": "api_smoke", | |
| "label": "API smoke passes against the Docker container", | |
| "ok": true, | |
| "detail": "api_smoke.py completed." | |
| }, | |
| { | |
| "id": "docker_cleanup", | |
| "label": "Smoke container is removed", | |
| "ok": true, | |
| "detail": "docker rm -f completed." | |
| } | |
| ], | |
| "commands": [ | |
| { | |
| "id": "docker_info", | |
| "command": [ | |
| "docker", | |
| "info", | |
| "--format", | |
| "{{json .ServerVersion}}" | |
| ], | |
| "ok": true, | |
| "returncode": 0, | |
| "stdout_tail": "\"29.2.1\"\n", | |
| "stderr_tail": "" | |
| }, | |
| { | |
| "id": "docker_build", | |
| "command": [ | |
| "docker", | |
| "build", | |
| "-t", | |
| "proofframe:submission-smoke", | |
| "." | |
| ], | |
| "ok": true, | |
| "returncode": 0, | |
| "stdout_tail": "", | |
| "stderr_tail": ".2 MB/s eta 0:00:00\n#12 11.84 Downloading watchfiles-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (453 kB)\n#12 12.10 Downloading websockets-16.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (186 kB)\n#12 12.23 Downloading anyio-4.14.1-py3-none-any.whl (124 kB)\n#12 12.33 Downloading idna-3.18-py3-none-any.whl (65 kB)\n#12 12.36 Building wheels for collected packages: proofframe\n#12 12.36 Building wheel for proofframe (pyproject.toml): started\n#12 12.45 Building wheel for proofframe (pyproject.toml): finished with status 'done'\n#12 12.45 Created wheel for proofframe: filename=proofframe-0.1.0-py3-none-any.whl size=16735 sha256=af99c46816616bb62d0fdacec4eef528d2f91a0fb3f0f2eec963481d21a979b0\n#12 12.45 Stored in directory: /tmp/pip-ephem-wheel-cache-b30wfins/wheels/54/1b/b7/aa63e25c8f14f4f2ae7b04e6097bdecb770e455c5c1ee0a600\n#12 12.45 Successfully built proofframe\n#12 12.47 Installing collected packages: websockets, uvloop, typing-extensions, pyyaml, python-dotenv, idna, httptools, h11, click, annotated-types, annotated-doc, uvicorn, typing-inspection, pydantic-core, anyio, watchfiles, starlette, pydantic, fastapi, proofframe\n#12 12.96 Successfully installed annotated-doc-0.0.4 annotated-types-0.7.0 anyio-4.14.1 click-8.4.2 fastapi-0.138.2 h11-0.16.0 httptools-0.8.0 idna-3.18 proofframe-0.1.0 pydantic-2.13.4 pydantic-core-2.46.4 python-dotenv-1.2.2 pyyaml-6.0.3 starlette-1.3.1 typing-extensions-4.15.0 typing-inspection-0.4.2 uvicorn-0.49.0 uvloop-0.22.1 watchfiles-1.2.0 websockets-16.0\n#12 12.96 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.\n#12 13.41 \n#12 13.41 [notice] A new release of pip is available: 25.0.1 -> 26.1.2\n#12 13.41 [notice] To update, run: pip install --upgrade pip\n#12 DONE 13.5s\n\n#13 exporting to image\n#13 exporting layers\n#13 exporting layers 1.0s done\n#13 exporting manifest sha256:4cc9ee2644b610d0be9a9102848b9a8d7d03e5860d0eb6fb440acc1cbbc48e56\n#13 exporting manifest sha256:4cc9ee2644b610d0be9a9102848b9a8d7d03e5860d0eb6fb440acc1cbbc48e56 done\n#13 exporting config sha256:8ca65155b531222f1b9db706b7e8d6c2ef13e5ab89222f77c65f1140a3e25faa done\n#13 exporting attestation manifest sha256:77e51187c28a6f4425f8c8ac62303b636d4d395ba21b165560a3566bcba43a42 done\n#13 exporting manifest list sha256:8db2f73c4c3e7c958f5f54b97a2b55633251063c588b9d3529ed80eb4237af8b done\n#13 naming to docker.io/library/proofframe:submission-smoke done\n#13 unpacking to docker.io/library/proofframe:submission-smoke\n#13 unpacking to docker.io/library/proofframe:submission-smoke 0.2s done\n#13 DONE 1.2s\n\nView build details: docker-desktop://dashboard/build/colima/colima/6kscttg0tbdcjbcbyrqvzdqry\n" | |
| }, | |
| { | |
| "id": "docker_run", | |
| "command": [ | |
| "docker", | |
| "run", | |
| "-d", | |
| "--name", | |
| "proofframe-submission-smoke", | |
| "-p", | |
| "18088:8088", | |
| "proofframe:submission-smoke" | |
| ], | |
| "ok": true, | |
| "returncode": 0, | |
| "stdout_tail": "9ac300270d1dde4628fedbfd5e1e0e4cd691af728a95221a6693bd2060c67184\n", | |
| "stderr_tail": "" | |
| }, | |
| { | |
| "id": "api_smoke", | |
| "command": [ | |
| "/Users/junhaocheng/working-dir/ai-competitions/backblaze-proofframe/.venv/bin/python", | |
| "scripts/api_smoke.py", | |
| "--base-url", | |
| "http://127.0.0.1:18088" | |
| ], | |
| "ok": true, | |
| "returncode": 0, | |
| "stdout_tail": "{\n \"ok\": true,\n \"base_url\": \"http://127.0.0.1:18088\",\n \"generation_backend\": \"mock\",\n \"storage_backend\": \"local\",\n \"judge_brief_schema\": \"proofframe.judge_brief.v1\",\n \"judge_safe_to_submit\": false,\n \"judge_crosswalk_schema\": \"proofframe.judge_crosswalk.v1\",\n \"judge_crosswalk_mode\": \"pre_live_crosswalk_ready\",\n \"judge_crosswalk_safe_to_submit\": false,\n \"judge_crosswalk_rows\": 4,\n \"judge_decision_brief_schema\": \"proofframe.judge_decision_brief.v1\",\n \"judge_decision_brief_mode\": \"pre_live_decision_ready\",\n \"judge_decision_brief_safe_to_submit\": false,\n \"judge_decision_brief_checks\": 6,\n \"judge_evidence_index_schema\": \"proofframe.judge_evidence_index.v1\",\n \"judge_evidence_index_mode\": \"pre_live_evidence_index_ready\",\n \"judge_evidence_index_safe_to_submit\": false,\n \"judge_evidence_index_links\": 17,\n \"judge_video_publish_kit_schema\": \"proofframe.final_video_publish_kit.v1\",\n \"judge_video_publish_kit_mode\": \"ready_for_final_upload\",\n \"judge_video_publish_kit_safe_to_submit\": false,\n \"judge_video_publish_kit_final_video_ready\": false,\n \"judge_video_publish_kit_upload_checks\": 4,\n \"judge_recording_schema\": \"proofframe.recording_assets.v1\",\n \"judge_recording_mode\": \"mock_recording_ready\",\n \"judge_recording_final_video_ready\": false,\n \"judge_recording_shots\": 6,\n \"judge_devpost_schema\": \"proofframe.devpost_form_kit.v1\",\n \"judge_devpost_mode\": \"pre_live_form_ready\",\n \"judge_devpost_final_form_ready\": false,\n \"judge_devpost_fields\": 19,\n \"judge_submit_checklist_schema\": \"proofframe.devpost_submission_checklist.v1\",\n \"judge_submit_checklist_mode\": \"pre_submit_blocked\",\n \"judge_submit_checklist_safe_to_submit\": false,\n \"judge_submit_checklist_preflight\": 6,\n \"campaign_id\": \"cmp_41bfc33b8d38\",\n \"asset_id\": \"ast_63c61ec137e0\",\n \"asset_provider\": \"mock\",\n \"asset_model\": \"mock-svg-v1\",\n \"asset_storage_backend\": \"local\",\n \"asset_storage_key\": \"cmp_41bfc33b8d38/cmp_41bfc33b8d38-variant-1.svg\",\n \"asset_public_url_present\": true,\n \"asset_status\": \"approved\",\n \"asset_sha256\": \"6d1cc2f93f7f19cbdf535987f0eec5c94bc4eaded0f48ce544bb971e270419ea\",\n \"manifest_storage_backend\": \"local\",\n \"manifest_key\": \"cmp_41bfc33b8d38/cmp_41bfc33b8d38-manifest.json\",\n \"manifest_sha256\": \"b4a610c59763ad810d4b4aca1219bebc717966d64345083f6d40476ee954bc87\",\n \"packet_bytes\": 1530,\n \"judge_demo_campaign_id\": \"cmp_68db3b8b56d0\"\n}\n", | |
| "stderr_tail": "" | |
| }, | |
| { | |
| "id": "docker_logs", | |
| "command": [ | |
| "docker", | |
| "logs", | |
| "--tail", | |
| "80", | |
| "proofframe-submission-smoke" | |
| ], | |
| "ok": true, | |
| "returncode": 0, | |
| "stdout_tail": "INFO: 172.17.0.1:57054 - \"GET /api/health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57060 - \"GET /api/health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57074 - \"GET /api/judge/brief HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57082 - \"GET /api/judge/crosswalk HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57088 - \"GET /api/judge/decision-brief HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57094 - \"GET /api/judge/evidence-index HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57100 - \"GET /api/judge/video-publish-kit HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57102 - \"GET /api/judge/recording HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57110 - \"GET /api/judge/devpost HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57118 - \"GET /api/judge/submission-checklist HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57124 - \"POST /api/campaigns HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57128 - \"POST /api/campaigns/cmp_41bfc33b8d38/generate?count=1 HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57130 - \"POST /api/assets/ast_63c61ec137e0/status HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57136 - \"POST /api/campaigns/cmp_41bfc33b8d38/export HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57146 - \"GET /api/campaigns/cmp_41bfc33b8d38/packet.zip HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57158 - \"POST /api/demo/judge-packet HTTP/1.1\" 200 OK\n", | |
| "stderr_tail": "INFO: Started server process [7]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:8088 (Press CTRL+C to quit)\n" | |
| }, | |
| { | |
| "id": "docker_cleanup", | |
| "command": [ | |
| "docker", | |
| "rm", | |
| "-f", | |
| "proofframe-submission-smoke" | |
| ], | |
| "ok": true, | |
| "returncode": 0, | |
| "stdout_tail": "proofframe-submission-smoke\n", | |
| "stderr_tail": "" | |
| } | |
| ], | |
| "secret_policy": "This smoke test uses local/mock mode, does not read .env.final.local, and requires .dockerignore to exclude local env files from the Docker build context." | |
| } | |