Commit Graph
20 Commits
Author SHA1 Message Date
ilaandClaude Opus 4.8 03d3f83f1d feat(v2): T-308C editable settings form (camera + params) applied on start
Settings tab is now an editable, scrollable form: camera connection
(host/port/channel/user/masked password/transport/timeout/low-latency) and
common detection params, each with a save button that writes the untracked
local config. cmd/silver-pose pre-fills from the local file, passes the
config path, and the controller reloads config on each Start so saved edits
apply next run. UI cross-compiles for Windows.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 21:30:23 +08:00
ilaandClaude Opus 4.8 38b0013355 feat(v2): T-308B structured camera source with encoded credentials
Config now accepts host/port/channel/username/password (untracked local
config only) or rtsp_url_env; net/url percent-encodes the userinfo so a
password with @/:/ builds a valid RTSP URL (fixes the manual %40 pain).
Adds WriteLocalCameraSource / WriteLocalEventTuning for the settings form.
Guards kept: still rejects a full url/rtsp_url; credentials stay out of the
config version; a test asserts the public example has no credentials.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 21:21:59 +08:00
ilaandClaude Opus 4.8 550e6ad3ca feat(v2): T-308A window 80% of screen, 2x3 gallery, Esc close, button states
- Window opens at 80% of the primary display (Windows GetSystemMetrics).
- Gallery is now 2 columns x 3 rows and the right panel is narrower.
- Esc closes the full-image viewer (key focus + filter).
- Start/Stop grey out per running state (gtx.Disabled drops input); a hard
  ReportIssue resets running so Start re-enables. Cross-compiles for Windows.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 21:16:37 +08:00
ilaandClaude Opus 4.8 ea24fc4c4b feat(v2): compact monitor status row, small buttons, screenshot gallery
Right panel now shows connection+detection status on one line, small
start/stop buttons on one line, event text with the red-note inline, and a
3x3 reverse-chronological gallery of recent confirmed screenshots filling
the rest. Double-clicking a thumbnail opens a full-image overlay. Gallery
items are collected off the UI thread from confirmed updates (deduped by
event id) and each ImageOp is built once and cached. Cross-compiles for
Windows; no new deps.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 20:58:45 +08:00
ilaandClaude Opus 4.8 09f7ecad67 fix(v2): drop rw_timeout ffmpeg option rejected by the RTSP demuxer
Field ffmpeg reported 'Option rw_timeout not found' and exited, causing a
reconnect loop. rw_timeout is an avio/protocol option, not an RTSP demuxer
option; the RTSP socket timeout is build-specific (-stimeout / -timeout).
Omit it for portability — a dead TCP connection still ends decode and
triggers reconnect. Keeps transport and low-latency flags.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 20:36:51 +08:00
ilaandClaude Opus 4.8 99226c7479 fix(v2): log redacted ffmpeg/ffprobe stderr on stream failure
The stream worker discarded ffmpeg stderr, so reconnect loops were opaque.
Capture stderr and log it with the RTSP URL/credentials redacted, so the
real cause (auth, timeout, option, URL parse) is diagnosable without
leaking the source address.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 20:31:00 +08:00
ilaandClaude Opus 4.8 f58728cddd chore(v2): vendor dependencies for offline/China builds
go mod vendor pins onnxruntime_go v1.12.1, Gio and the rest into v2/vendor
so go run/build work without hitting proxy.golang.org (blocked/slow in
China). Verified: CGO_ENABLED=1 go build -mod=vendor ./internal/spike and
GOOS=windows go build -mod=vendor ./internal/ui both pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 16:35:01 +08:00
ilaandClaude Opus 4.8 97c1c4a974 fix(v2): pin onnxruntime_go to v1.12.1 to match onnxruntime 1.19.2 DLL
v1.31.0 requested ORT_API_VERSION 26 (onnxruntime 1.26); the field DLL is
Python 3.8's onnxruntime 1.19.2 (API 19), so GetApi(26) returned NULL and
init failed. v1.12.1 targets ORT API 19, matching the existing DLL with no
download. Verified: native cgo build of internal/spike compiles ort.go
against v1.12.1; Gio UI still cross-compiles for Windows.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 16:04:09 +08:00
ilaandClaude Opus 4.8 539a6026a0 fix(v2): log the real error behind ONNX/engine/pipeline init failures
The controller discarded the wrapped error and showed only a generic
message. Log the actual cause (e.g. onnxruntime version mismatch) to the
console so field startup failures are diagnosable.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 15:18:25 +08:00
ilaandClaude Opus 4.8 4188a2b06c feat(v2): migrate UI from Walk to Gio
Rewrites internal/ui/window.go in Gio, keeping the Window interface
(NewWindow/Run/Present/PresentAlert/ReportIssue) and the pure-Go ViewModel.
Background updates mutate shared state under a lock and Invalidate; the Gio
loop renders the latest frame. Dual tabs, widget.Image for render's RGBA, a
self-drawn confirm dialog and a MessageBeep sound. Drops lxn/walk (and the
TTM_ADDTOOL/comctl class of problems). Verified via GOOS=windows CGO_ENABLED=0
build of the UI packages; full app build needs Windows+CGo for onnxruntime.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 14:26:19 +08:00
ilaandClaude Opus 4.8 43ec154075 feat(v2): Gio UI spike, cross-compiles CGo-free for Windows
Adds cmd/gio-spike: a minimal Gio window (dual tabs, an *image.RGBA video
area, start/stop) that avoids the Walk TTM_ADDTOOL/comctl manifest problem
entirely. Verified via GOOS=windows CGO_ENABLED=0 go build (11MB single
exe). Windows visual smoke pending. Existing Walk ui-spike left untouched.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 08:45:21 +08:00
ila 536396f373 feat(v2): add realtime command and release tooling 2026-07-22 21:28:57 +08:00
ila a98005e631 feat(v2): implement operator monitoring window 2026-07-22 21:24:10 +08:00
ila 8e093acb9b feat(v2): compose realtime monitor pipeline 2026-07-22 21:20:13 +08:00
ila d183170554 feat(v2): add annotated evidence and alert dispatch 2026-07-22 21:17:50 +08:00
ila 3edda4fb62 feat(v2): add reconnecting FFmpeg stream source 2026-07-22 21:15:25 +08:00
ila 70d9c5c73e feat(v2): add safe runtime configuration 2026-07-22 21:13:03 +08:00
ila 1298369054 feat(v2): add fall event regression engine 2026-07-22 16:18:16 +08:00
ila 22aadf2b26 feat(v2): complete Go inference and UI spike 2026-07-22 16:01:28 +08:00
ila 2bfca1b244 feat(v2): lock ONNX pose export baseline 2026-07-22 15:14:26 +08:00