File size: 3,966 Bytes
6f38f56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# STATUS

Running log of where the Field Station actually is. Newest entry at the top. Append, do not
rewrite.

Cross-repo facts live in the Forager wiki at `~/Documents/Forager/forager-wiki/`.

---

## 2026-08-15 — shared observability package; the dev harness stops shipping to the Space

**The dev harness was being uploaded to the public Space.** `deploy.py`'s IGNORE list excluded
`scripts/*` but not `observability/*`, so the whole Postgres harness went up with every deploy.
Now excluded. Verified the Space runtime never imported it: `app.py`, `pipeline/` and `game/`
are clean.

**`forager-obs` adopted.** The `toxic_as_edible` rule was implemented here inline in
`SessionWriter` and separately in forager_ml as a property on `InferenceOutcome`, with the
flagship 0.0 claim resting on both. It now comes from
`github.com/thefullnacho/forager-obs` (public, `main`), an editable sibling install, along with
connect/migrate, the batch-writer contract (`SessionWriter` is now a `BaseWriter`) and the
val-set walk including `k_groups`.

**The session-grained schema stays here.** forager_ml's is image-grained. Those answer
different questions and are deliberately not merged — recorded in the wiki so a later pass
does not "fix" it.

**Compose collision fixed.** This repo and forager_ml both bound host port 5433 *and* derived
the same Compose project name from their parent directory (`observability` in both), so
bringing up the second silently recreated the first's container. Now 5434 /
`forager-fs-obs`, and both run side by side for the first time.

**Verified:** 4 observability tests + 4 two-photo tests green against a live Postgres on 5434,
and the Space's pipeline imports unchanged.

### In flight

- **`two-photo-safety` branch is 1 commit ahead and this repo has no git remote.** It is a
  local repo that deploys to Hugging Face via `deploy.py`.
- **The Space has not been redeployed.** The `deploy.py` exclusion takes effect on the next
  `python deploy.py <user>/forager-field-station`, so `observability/` is still present in the
  currently published Space.

### Next concrete action

Decide whether to redeploy the Space now (which removes the dev harness from the public repo)
or fold it into the next content deploy.

## 2026-10-25 — merge + GitHub remote

**Changed:** `two-photo-safety` fast-forwarded into `master` (two-photo safety protocol,
observability harness, confidence-banded single-photo gate, shared `forager-obs`). Repo now has
a private GitHub remote, `thefullnacho/forager-field-station`, default branch `master`; both
branches pushed. `assets/` (local backyard photos, video) is gitignored.

### In flight

- **The Space has still not been redeployed.** `observability/` is still in the published
  Space until the next `deploy.py` run. [non-production] Approve the redeploy (it publishes).
- The `forager_ml` convergence drift check stays local-only. Its reason (no remote here) is
  gone, so it could move into CI now.

### Next concrete action

Space redeploy deferred (2026-10-25): fold it into the next content deploy, which will also
remove `observability/` from the public Space.

## 2026-10-27 — safety fix deploy blocked

The fix that removes the 0.85 single-photo edible shortcut (`209f6b6`) is on master but **not
live**. The live Space is `build-small-hackathon/Forager-Field-Notes`, not the
`HomesteaderLabs/forager-field-station` named in the docs (that one doesn't exist). The
HomesteaderLabs token has read-only access to the hackathon org, so the upload was refused (403).
Nothing changed on the Space; it still serves the 2026-06-14 build and is sleeping. A new Space
under HomesteaderLabs returned 402: Gradio on free CPU needs PRO.

- [non-production] Get write access back on `build-small-hackathon`, or choose a new home
  (PRO for HomesteaderLabs, or a different host), then re-run `deploy.py`.
- [non-production] Until then, decide whether the live Space should keep serving the shortcut.