# Development Status Last updated: 2026-06-09 ## Completed - Project skeleton, README, AGENTS instructions, and Gradio app entrypoint. - Mock MVP flow: upload/description, personality mode, object JSON, persona JSON, diary, object chat, share card, and trace saving. - Archive-style Gradio UI with English-first / Chinese-second copy and six stable examples. - Stable demo baseline: - example buttons replay committed sample traces before falling back to live generation - cached and live generation share the same UI output formatter - manual upload/description path still saves new runtime traces - Trace and dataset tooling: - six public mock sample traces - public trace JSONL export - deterministic SFT preview JSONL - initial-stage acceptance script - Hugging Face Space created: https://huggingface.co/spaces/build-small-hackathon/ObjectverseDiary - MiniCPM-V 2.6 optional vision backend wiring with mock fallback. - Optional llama.cpp / llama-cpp-python text runtime wiring through `TEXT_MODEL_PATH`, with mock fallback. - Space VLM validation tooling: - `scripts/check_space_vlm.py` - hidden `/vision_runtime_probe` API for non-secret MiniCPM-V diagnostics - probe output support in Space VLM markdown and JSON reports - failure-note updater for the latest Space VLM failure summary - failed L4 validation report at `docs/SPACE_VLM_REPORT.md` - optional `--trace-output-dir` evidence export for validation traces - Hosted MiniCPM-V 2.6 ZeroGPU validation passed on 2026-06-08 for public mug, keyboard, and shoe images after adding an `HF_TOKEN` Space secret for gated model access. - Public Space live vision target: - hardware: `zero-a10g` - `OBJECTVERSE_VISION_BACKEND=minicpm-v` - `VISION_MODEL_ID=openbmb/MiniCPM-V-2_6` - `OBJECTVERSE_TEXT_BACKEND=mock` - text generation intentionally remains mock for this release - Real VLM trace evidence from the hosted validation is available under `data/traces/space-vlm/`; text generation remained mock by design. - ZeroGPU compatibility: - optional `src/utils/zero_gpu.py` - Gradio generation callback wrapped with `@zero_gpu(duration=180)` - hidden `/zero_gpu_probe` API confirms ZeroGPU CUDA availability when run through direct `hf.space` URL - Stable submission materials: - Field Notes draft - demo video script - social post draft - stable submission guide - Well-Tuned evidence: - 200-row synthetic curated v2 SFT dataset published at https://huggingface.co/datasets/qqyule/objectverse-diary-sft-curated - Modal Qwen 1.5B LoRA v2 run completed with 120 steps, 180 train rows, and 20 eval rows - LoRA v2 adapter published at https://huggingface.co/qqyule/objectverse-diary-qwen15b-lora - LoRA v2 GGUF runtime evidence: - `scripts/check_llama_cpp_smoke.py` - adapter merged into `Qwen/Qwen2.5-1.5B-Instruct` - pinned `llama.cpp` commit: `8f83d6c271d194bde2d410145a0ce73bc42e85cd` - published Q4_K_M GGUF: https://huggingface.co/qqyule/objectverse-diary-qwen15b-lora/blob/main/objectverse-diary-qwen15b-lora-v2-q4_k_m.gguf - local smoke passed with `llama-cpp text generation`, schema-valid persona/diary, non-empty chat, and no `text-fallback-to-mock` - trace runtime no longer records literal `TEXT_MODEL_PATH` - Local tests and initial acceptance currently pass. ## Not Completed - Hosted Space text runtime validation with the published GGUF. The public Space still uses mock text until this passes. - Real text model traces from the hosted non-mock text runtime. - Published Field Notes URL, recorded demo video URL, social post URL, and final public submission. ## Current Runtime Defaults Local development: - `OBJECTVERSE_VISION_BACKEND=mock` - `OBJECTVERSE_TEXT_BACKEND=mock` Live Space: - `OBJECTVERSE_VISION_BACKEND=minicpm-v` - `VISION_MODEL_ID=openbmb/MiniCPM-V-2_6` - `OBJECTVERSE_TEXT_BACKEND=mock` - hardware: `zero-a10g` - No commercial model API is used. - GGUF files, tokens, credentials, and private images should not be committed. ## Next Recommended Gate For live vision, keep the Space on ZeroGPU with MiniCPM-V and rerun hosted validation after dependency, Space variable, or deploy changes. Next text model gate: Download or mount the published GGUF on the target runtime, set: ```bash OBJECTVERSE_TEXT_BACKEND=llama-cpp TEXT_MODEL_PATH=/absolute/path/to/objectverse-diary-qwen15b-lora-v2-q4_k_m.gguf ``` Then rerun the local or Space smoke path before claiming live text runtime. Live VLM validation gate: ```bash .venv/bin/python -B scripts/check_space_vlm.py \ --configure-space \ --hardware zero-a10g \ --space-url https://huggingface.co/spaces/build-small-hackathon/ObjectverseDiary \ --output docs/SPACE_VLM_REPORT.md \ --json-output docs/SPACE_VLM_REPORT.json \ --trace-output-dir data/traces/space-vlm \ --timeout-seconds 1200 ``` If rollback is needed, use: ```bash .venv/bin/python -B scripts/check_space_vlm.py \ --space-url https://huggingface.co/spaces/build-small-hackathon/ObjectverseDiary \ --configure-space \ --hardware zero-a10g \ --skip-validation \ --rollback-to-mock ```