# Publish the prepared release on Hugging Face The repository root is already a model repository layout: an English `README.md` model card, license notices, local weights/tokenizer/configuration, source, tests and evidence. No hosted Inference API integration or Hugging Face Space is configured. This distribution contains the model and browser runtime. It does not contain a comparison application or cloud-provider integrations. ## Review and dry run After setup: ```bash ./test.command .venv/bin/python scripts/publish.py --repo-id YOUR_NAMESPACE/NanoJev-Web ``` The default is a **dry run**: it verifies hashes and prints the exact upload file count. It makes no network writes and does not need a token. Replace `YOUR_NAMESPACE` with the intended account or organization; the model card download command refers to the existing public repository. ## Explicit publication Authenticate through the Hugging Face CLI or provide `HF_TOKEN` through your environment. Keep credentials outside this folder. Then: ```bash .venv/bin/python scripts/publish.py \ --repo-id YOUR_NAMESPACE/NanoJev-Web --publish ``` This explicitly creates a **public** model repository and uploads only verified manifest files. If the repository already exists, the command fails unless you add `--update-existing`. That flag adds/replaces the listed files and does not delete unrelated remote files. Choose a new clean repository for a first release. The helper uses `HfApi` with an exact file allowlist. It does not upload `.local`, `.venv`, `.runtime`, `node_modules`, `.env`, browser evidence, development history, shell configuration or hidden parent directories. Do not use an unrestricted recursive upload on an installed workspace. ## Portable archive ```bash .venv/bin/python scripts/release.py --export ../NanoJev-Web-1.1.0-model.tar.gz ``` The archive contains the same manifest files plus the manifest. Tar ownership IDs and names are normalized, as are timestamps, so machine usernames and local filesystem metadata are not copied into the archive. Dependencies and browsers are installed on the destination machine with `setup.command`. The checkpoint's SHA-256 is recorded in `PROVENANCE.json`. `.gitattributes` marks safetensors for large-file handling. Hugging Face handles large-file transfer through its upload API. ## Model-card scope The card identifies the NanoJev parent, the Qwen backbone, browser head training, mixed upstream license terms and the specialized decision interface. It does not label this custom checkpoint as a generic text-generation pipeline or claim universal browser benchmark performance. References: [Hugging Face model cards](https://huggingface.co/docs/hub/model-cards), [Hugging Face upload guide](https://huggingface.co/docs/huggingface_hub/guides/upload). ## Static demonstration assets The demonstration image is `docs/assets/browser-demo.png`, showing the final verified results. The recording is `docs/assets/seed-43129.gif`, embedded in the model card and [detailed report](SINGLE_FORM_REPORT.md). Both supplied files are preserved byte-for-byte and included as documentation assets in the release manifest and archive. They are shown in the demonstration section after the model description, integration and limitations. The executable comparison stand is not distributed. The GIF contains 26.51 seconds of playback and ends before Astra's final Passed badge. The caption distinguishes this recording excerpt from the complete run metrics, which come from the saved benchmark logs. If you later replace a media file or edit the Markdown locally, update the corresponding manifest entries before using the verified uploader and regenerate the archive. A direct edit on the Hub does not change the local archive. ## Download statistics Keep the root `config.json` in the published repository and in complete downloads. It contains the browser decision configuration and paths to the model's weights, backbone configuration, tokenizer and inference entrypoint. The runtime continues to load its existing files under `model/`; no weights or inference behavior were changed to enable statistics. Hugging Face counts model downloads using designated query files; the default includes the root `config.json`. Requests to arbitrary weights, nested configurations or an independently shared archive are not equivalent to downloading this query file. Recommend the full `hf download` command in the model card. These statistics count qualifying file requests, not unique people or completed model runs. [Hugging Face download statistics](https://huggingface.co/docs/hub/models-download-stats). There is no telemetry call in model startup or browser execution. Statistics are maintained by the Hub when it serves files. Adding the configuration fixes the repository layout for counting; it does not reconstruct historical downloads or promise immediate changes to the displayed total. This remains a custom PyTorch decision model. The root configuration does not add Transformers AutoModel support or a hosted inference widget. Preserve `library_name: pytorch` and use the included loader.