Add grounded conversation, memory, research, and host awareness#199
Add grounded conversation, memory, research, and host awareness#199RobVanProd wants to merge 56 commits into
Conversation
…h-voice # Conflicts: # data/persona_index.json
|
Bridge transport follow-up after syncing current
Verification:
Physical gate remains intentionally pending: flash an exact private candidate only with the operator present, keep motion stopped, capture a pre-test |
|
Final post-push verification for
The PR remains draft. No live bridge restart, robot flash, motion command, or merge was performed. The remaining gates are the exact-image supervised physical qualification and normal soak documented in |
|
Exact candidate update for
The PR remains draft. The exact supervised evidence session still requires the operator-present attestation, multi-turn/exit/barge-in checks, 100 echo-free reply windows, initiative timing/backoff/night checks, bridge-loss recovery, exact pre/post firmware SHA, and explicit owner approval. No firmware operation or merge was performed. |
|
PR #216 baseline is now included unchanged. Exact bridge candidate: 04064bf; package stackchan_alive_v0.2.0-135-g04064bf7.zip; SHA-256 A6ED79002713C288CAF70A5D812D8C60F8166A88B40D174DD36A5A2BB51E632B. Local validation: bridge 471/471, native 287/287, package verifier pass; warm local generation median 1126.33 ms, max 1872.31 ms. Firmware guarded diff against main remains empty. PR #216's 12-second capture improves long utterances, but live evidence found a same-threshold BridgeWakeGate/final-chunk race producing audio_uplink_not_active at the ceiling; this is documented as a firmware-owner handoff and must be closed before supervised promotion. PR remains draft and unmerged. |
|
Final pre-physical candidate update: head 5d6c6c9; package stackchan_alive_v0.2.0-136-g5d6c6c91.zip; 189,432,449 bytes; SHA-256 A3DDDD3A4FA4D2493FD2F747BAB8BA2D6056B8D9D94289FE559889F6F0741B30. Local bridge suite 477/477; independent package verifier pass; all 11 exact-head CI checks pass; guarded firmware diff remains empty. The supervised checker now requires PR #216-or-later accepted firmware provenance, complete required transport telemetry with zero deltas, redacted route proof for research/visual/grayscale/memory, and operator-confirmed natural conversation, recall isolation, grounded person noticing, initiative, privacy, and recovery. The live bridge remains stopped and no firmware, reboot, or motion action was performed. |
Summary
mainfirmware unchangedScope and authority
This branch contains current
main, including merged PR #217, and is 55 commits ahead and 0 behind. The aggregate branch diff is empty forsrc/,platformio.ini,partitions.csv,partitions_esp_sr_16.csv,boards/,personas/, and the other guarded firmware inputs. This bridge PR does not flash or replace robot firmware.The model and research broker have no actuator, power, pairing, camera-authentication, filesystem, shell, or OTA authority. Web text is untrusted context and cannot write durable memory. Raw camera frames remain in memory only; prompts receive an allowlisted typed room summary.
Exact candidate
60edca4642d5950969e66e2e7f4fcb45b74533c8agent/natural-research-voicestackchan_alive_v0.2.0-139-g60edca46.zip189434808A782B81E9868089A1C269EC9339B6E81FE50793F4810B02D8BB376F85635D1CBThe public ZIP is credential-clean and intentionally excludes private paired firmware, pairing material, and private runtime evidence.
Validation
origin/mainorigin/main: empty477/477pass289/289pass60edca4642d5950969e66e2e7f4fcb45b74533c8dirty=falseand the exact source commitSupervised evidence gate
The qualification can no longer report ready using the historical pre-PR217 firmware record. It requires an accepted private firmware SHA/source pair from merged PR #217 (
10b0cc5404e072bb5784d9cfd2fabb0babd8a02e) or a latermaincommit, recorded together indocs/FIRST_DEPLOY_STATUS.md. This pins PR #216's 12-second endpoint and PR #217's wake-gate renewal plus strict12 s endpoint < 13 s capture < 15 s privacy guardordering.The checker also requires:
The gate remains passive: it does not flash, reboot, restart, stop processes, or control motion.
Reset-safe motion policy
A live host restart exposed that accepted firmware can return from its own boot with motion, servo rail, and torque enabled. The bridge-only production launcher sends the existing firmware-owned motion-stop command through the loopback dashboard immediately after reconnect and refuses to report ready unless both dashboard verification and a fresh
/debugread confirm all three actuator states off. Resume remains a separate operator-confirmed dashboard action.Physical restart proof is intentionally pending current operator presence and body-clear confirmation; the robot was not restarted merely to obtain evidence.
Research and visual-context evidence
Natural
check,verify,fact-check, freshness-sensitive, and explicit-search questions enter one bounded research round without wasting an initial model pass. If Gemma claims it cannot access the web, the bridge recovers through the same policy-limited search path. Verification may fetch one selected public HTTPS result. Fetched text remains untrusted, citations stay bounded companion metadata, and research cannot write memory.A live local probe answered that Python 3.13.0 was released on October 7, 2024, cited Python.org, and completed in
3.9 s. The pinned SearXNG service is loopback-only and passes JSON search, engine allowlist, broker search, restricted fetch, and privacy-safe audit checks.A visual question performs one fresh authenticated grayscale observation before generation. A live robot-camera probe completed in
2.6 s, recorded one successful observation with zero failures, and produced a grounded door, shelf, and bright-lighting answer. Deictic colour questions take a deterministic local path: the camera feed is grayscale, so Stackchan says it cannot determine the colour instead of inventing one.The owner physically exercised the research and visual paths and reported that the interaction worked well. That is useful informal evidence, not a substitute for the uninterrupted exact-head qualification.
Conversation quality and latency
A predecessor regression forcibly replaced valid Gemma answers with the newest stored episode, causing repeated bridge or sleep topics. This branch injects episodes only when query terms match or the user explicitly asks to recall prior context. Due callbacks remain one-shot.
Ordinary turns now use a compact typed prompt while retaining trusted embodiment, relevant memory, bounded conversation history, research routing, actuator rules, and Character Lock. Explicit memory write/forget requests retain the full memory contract. Eight warm local generations completed with a
1126.33 msmedian,1872.31 msmaximum, and zero fallbacks. Background room observation defers or cancels during foreground conversation instead of competing with the reply path.Three-plus physical warm turns under the end-to-end three-second first-audio limit are still required before promotion.
PR #217 firmware baseline and handoff
Merged PR #216 raises the voice-activity endpoint maximum from
4800 msto12000 ms, gives the dedicated capture path a 13-second chunk ceiling, applies endpointing to both initial and follow-up captures, and ends speech after550 msof trailing silence. Merged PR #217 renews the existing wake gate only while device VAD observes real speech, places its hard privacy limit at 15 seconds, and adds compile-time plus native long-utterance boundary coverage. The bridge branch contains both baselines unchanged.Before PR #217, two long captures delivered all declared audio (
118 + 113 = 231chunks,369600bytes) but recorded80audio_uplink_not_activeerrors and twomww_uplink_submit_failedevents. PR #217 closes that source mechanism. Formal qualification still requires an exact PR #217-or-later image and zero new uplink or submit-failure deltas; source tests are not substituted for physical evidence.Current live state
The host bridge and dashboard are currently stopped. The robot remains reachable in local/offline mode. The firmware handoff initially reported motion, servo rail, and torque enabled while the bridge was offline, so this bridge task issued the existing safety
/motion-stopcommand and verified all three off; audio is also off. No flash, reboot, motion-enable, or firmware edit was performed.Remaining merge gates
This PR remains draft. Do not merge until one uninterrupted exact-head session produces
bridge-ai-supervised-readyand the owner explicitly approves promotion.Still required:
mainNo merge is part of this update.