A newer version of the Gradio SDK is available: 6.22.0
StoryCode Agent Checklist
Use this file as the durable handoff if another agent needs to continue. Do not mark an item done unless it was actually run or verified.
Current Status
- Read
HANDOFF.md,AGENTS.md, andREADME.md. - Installed local CPU dependencies with
python3 -m pip install -r requirements.txt. - Verified analyzer baseline with
python3 tests/test_analyzer.py->10/10 passed. - Fixed fallback rendering bug where
ProjectModel.notewas referenced but not preserved from ingest. - Checked the MiniCPM4.1-8B Hugging Face model card.
- Disabled MiniCPM reasoning mode for app calls by appending
/no_thinkinllm.py. - Added
add_special_tokens=Trueto vLLM OpenAI calls, per the model card. - Updated Modal image build to use pre-release/nightly vLLM, per the model card.
- Deployed once and found
vllm-0.23.0rejects the old server flag--guided-decoding-backend; removed it and kept request-level xgrammar. - Found vLLM 0.23 defaults to v1 and does not recognize
VLLM_USE_V1; switched Modal to a CUDA 13 devel base image so FlashInfer can findnvcc. - Changed
serve()fromsubprocess.Popen()to blockingsubprocess.run()so Modal keeps the web server process alive.
Next Required Steps
- Run
python3 app.pywith no.envmodel endpoint, open it, click "Try the sample project", and verify Story, Map, Safe-to-Edit, and Dependencies render with fallback narration. - Install Modal locally if needed:
python3 -m pip install modal. - Authenticate Modal:
modal token new. - Create a long random shared secret; do not commit it.
- Create the Modal secret:
modal secret create storycode-api MODAL_API_KEY=<secret>. - Redeploy after removing the obsolete vLLM server flag:
modal deploy modal_app.py. - Record the printed public Modal URL without the secret.
- Smoke-test
<printed-url>/v1/chat/completionswith Authorization bearer secret. - Confirm smoke-test JSON response contains no
<think>content and returns valid JSON. - Copy
.env.exampleto.envand setMODAL_ENDPOINT_URL=<printed-url>/v1plusMODAL_API_KEY=<secret>. - Run
python3 app.pywith the live model. - Verify the Story tab renders model-backed Story plus Plain English.
- Verify style and difficulty changes re-narrate without re-analysis.
- Verify Architecture Map draws from
ProjectModel. - Verify Safe-to-Edit shows
config.pyandapp.pyas red. - Verify Dependencies explains
openai,chromadb, andgradio. - Upload a zip with a fake API key and verify the secret-redaction banner.
- Tune prompts in
story.pyonly for all 5 styles x 3 difficulty levels. - After every prompt change, run
python3 tests/test_analyzer.py. - Make small Codex-attributed commits with clear messages.
- Add real-user proof to
README.mdunder "The person I built it for". - Deploy to a Gradio Space under
build-small-hackathon, set secrets, and test on phone. - Record and link the demo video.
- Push public GitHub repo and link it in
README.md. - Post on social and link it in
README.md.
Rules To Preserve
- Static analysis is the source of truth; the model only narrates
ProjectModelfacts. - Do not add
torch,vllm, ortransformerstorequirements.txt. - Core model stays
openbmb/MiniCPM4.1-8B. - Do not claim Tiny Titan.
- Keep
ui/styles.css. - Never display or send code that has not passed
ingest.redact_secrets.