lucashudsn commited on
Commit
2dfa899
Β·
1 Parent(s): 9aa96f5

docs: HF Spaces deploy workflow in README + AGENTS.md; drop video-script notes

Browse files
Files changed (2) hide show
  1. AGENTS.md +18 -1
  2. README.md +27 -9
AGENTS.md CHANGED
@@ -45,7 +45,24 @@ survives only as the fallback layer in `ui/_compat.py`.
45
  also `index.json` manifest), `surf-cams.json` (camera links keyed
46
  `"name | state | region"`), `surf-break-example-bells.json` (prompt worked
47
  example).
48
- - `documents/VIDEO_SCRIPT.md` β€” the GTC entry video shot list.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
 
50
  ## Conventions that matter
51
 
 
45
  also `index.json` manifest), `surf-cams.json` (camera links keyed
46
  `"name | state | region"`), `surf-break-example-bells.json` (prompt worked
47
  example).
48
+
49
+ ## Deploying to HF Spaces
50
+
51
+ - The Space `lucashudsn/wavereader` (public) *is* this repo β€” remote
52
+ `space`. Ship with `git push space v2:main`, then `git push origin v2`
53
+ to keep GitHub in sync. The Space builds from the pushed commit; watch
54
+ *Logs β†’ Build* on the Space page or poll
55
+ `HfApi().get_space_runtime("lucashudsn/wavereader")` until `RUNNING`.
56
+ - The YAML block at the top of `README.md` is the Space config. Keep
57
+ `sdk_version` in lockstep with the gradio pin in `requirements.txt`
58
+ (regenerate that file only via `uv export --no-hashes
59
+ --format requirements-txt --no-dev -o requirements.txt` β€” other
60
+ invocations can leave stray progress lines that break pip), and
61
+ `python_version` in lockstep with `pyproject.toml`'s `requires-python`.
62
+ - `HF_TOKEN` is a Space secret (set once via *Settings β†’ Variables and
63
+ secrets* or `HfApi().add_space_secret`); `WR_*` overrides can be added
64
+ the same way. `.cache/` is ephemeral on the Space and rebuilds lazily β€”
65
+ no persistent storage, no warm step.
66
 
67
  ## Conventions that matter
68
 
README.md CHANGED
@@ -25,8 +25,7 @@ just moved to Berlin; I wanted to build something to make me enjoy ML and
25
  engineering again.
26
 
27
  > [Built for GTC Berlin](#built-for-the-gtc-berlin-golden-ticket-developer-contest-) β€”
28
- > NVIDIA open weights on Hugging Face rails, entry video script in
29
- > [`documents/VIDEO_SCRIPT.md`](documents/VIDEO_SCRIPT.md). #NVIDIAGTC
30
 
31
  ## One rule holds the whole app together
32
 
@@ -128,6 +127,30 @@ access to Open-Meteo / OpenTopoData and a disk cache under `.cache/`.
128
  On a HF Space the secret is the fallback; the agent panel's BYO-token box
129
  is session-only and never logged.
130
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
  ## How it's laid out
132
 
133
  ```
@@ -155,7 +178,7 @@ data/
155
  surf-break-example-bells.json # prompt worked example
156
  surf-cams.json # camera links keyed name | state | region
157
  documents/
158
- ENCYCLOPEDIA.md FORECAST.md SURFAGENT.md VIDEO_SCRIPT.md
159
  legacy/ # frozen v1 front end, kept as the compat fallback
160
  ```
161
 
@@ -204,9 +227,4 @@ one-token inference. It leans on both halves deliberately β€” Nemotron 3
204
  Ultra for language, deterministic Python for physics β€” and shows its work
205
  on screen the whole way.
206
 
207
- The 90-second entry video (shot list in
208
- [`documents/VIDEO_SCRIPT.md`](documents/VIDEO_SCRIPT.md)) walks the hero
209
- strip, the break book with its climate audit, the staged swell check with
210
- the animated seafloor, the agent's timed tool calls, and a live MCP call
211
- from an external client. Tagging @Merve Noyan β€” thanks for the nudge.
212
- #NVIDIAGTC
 
25
  engineering again.
26
 
27
  > [Built for GTC Berlin](#built-for-the-gtc-berlin-golden-ticket-developer-contest-) β€”
28
+ > NVIDIA open weights on Hugging Face rails. #NVIDIAGTC
 
29
 
30
  ## One rule holds the whole app together
31
 
 
127
  On a HF Space the secret is the fallback; the agent panel's BYO-token box
128
  is session-only and never logged.
129
 
130
+ ## Deploying to HF Spaces
131
+
132
+ The app is live at [huggingface.co/spaces/lucashudsn/wavereader](https://huggingface.co/spaces/lucashudsn/wavereader).
133
+ The Space *is* this git repo β€” the `space` remote points at it β€” and the
134
+ YAML block at the top of this README is the Space config: `sdk_version`
135
+ must match the gradio pin in `requirements.txt`, and `app_file` is `app.py`.
136
+
137
+ ```sh
138
+ git push space v2:main # ship whatever is committed on v2
139
+ git push origin v2 # keep GitHub in sync
140
+ ```
141
+
142
+ The push asks for credentials: username `lucashudsn`, password = an HF
143
+ token with write access (https://huggingface.co/settings/tokens). The
144
+ build takes a few minutes; watch it under the Space's *Logs β†’ Build* tab
145
+ or poll `HfApi().get_space_runtime("lucashudsn/wavereader")`.
146
+
147
+ Secrets live in the Space's *Settings β†’ Variables and secrets* β€”
148
+ `HF_TOKEN` is already set, which is what lets the agent and narrator work
149
+ for visitors. `WR_MODEL` / `WR_PROVIDER` / `WR_BASE_URL` can be added the
150
+ same way if you ever want to reroute the LLM. Caches under `.cache/` are
151
+ ephemeral on the Space and rebuild lazily after a restart; nothing else
152
+ needs doing.
153
+
154
  ## How it's laid out
155
 
156
  ```
 
178
  surf-break-example-bells.json # prompt worked example
179
  surf-cams.json # camera links keyed name | state | region
180
  documents/
181
+ ENCYCLOPEDIA.md FORECAST.md SURFAGENT.md
182
  legacy/ # frozen v1 front end, kept as the compat fallback
183
  ```
184
 
 
227
  Ultra for language, deterministic Python for physics β€” and shows its work
228
  on screen the whole way.
229
 
230
+ Tagging @Merve Noyan β€” thanks for the nudge. #NVIDIAGTC