fix: harden teacher analysis and live KataGo feedback - #38
Merged
wimi321 merged 3 commits intoAug 15, 2026
Conversation
wimi321
deleted the
fix/live-analysis-feedback-and-full-game-reliability
branch
August 15, 2026 13:48
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary\n\n- make local, persistent, iKataGo, and Zhizi analysis report real-time visits per second\n- make manual Start force a fresh foreground analysis and update board candidates promptly\n- terminate persistent queries without reloading the model, and isolate stale responses with unique wire IDs\n- harden whole-game teacher analysis, complete-cache reuse, key-move screenshots, and compatible-proxy retries\n- show live analysis speed for trial branches as well\n\n## User-visible verification\n\n- manual Start showed live v/s and candidate overlays in about 1.8 seconds\n- switching moves while analysis was running showed fresh v/s in about 1.9 seconds\n- trial analysis showed live v/s in about 1.3 seconds\n- pausing analysis remained respected across move changes\n- real current-move and whole-game LLM tool chains completed\n- real Volcengine TTS, settings, SGF import dialog, library pagination, and territory judgement were exercised\n\n## Verification\n\n- Scope: all 2 workspace projects
Lockfile is up to date, resolution step is skipped
Already up to date
. postinstall$ electron-builder install-app-deps
. postinstall: • electron-builder version=26.8.1
. postinstall: • loaded configuration file=package.json ("build" field)
. postinstall: • detected workspace root for project using packageManager field pm=pnpm config=pnpm@10.30.3 resolved=/Users/haoc/Developer/mg-wq/GoAgent projectDir=/Users/haoc/Developer/mg-wq/GoAgent
. postinstall: • executing @electron/rebuild electronVersion=37.10.3 arch=arm64 buildFromSource=false workspaceRoot=/Users/haoc/Developer/mg-wq/GoAgent projectDir=./ appDir=./
. postinstall: • installing native dependencies arch=arm64
. postinstall: • completed installing native dependencies
. postinstall: Done
Done in 1.9s using pnpm v10.30.3\n-
✔ accuracy upgrade adds SGF setup and board-state foundations (1.928667ms)
✔ KataGo evidence v2 exposes quality and richer analysis fields (0.350375ms)
✔ teacher prompt and compact analysis surface confidence for grounded explanations (0.266625ms)
✔ claim verifier blocks unsupported coordinates, joseki overclaims, and absolute language (0.111458ms)
✔ knowledge base v6 expansion is loaded by motif recognizer (0.172167ms)
✔ teacher-quality eval script is wired (1.039542ms)
✔ analysis scheduler telemetry stores an explicit IPC-cloneable snapshot (1.683ms)
✔ analysis scheduler cancellation covers queued and active engine work (0.112ms)
✔ timeline issues require direct, non-low-confidence played-move evidence (37.622541ms)
✔ candidate rank badge follows the side whose values are displayed (40.70675ms)
✔ quick analysis and visible review UI share the evidence-aware classification contract (7.705625ms)
✔ UI Gallery capture builds and self-hosts the current renderer (5.406083ms)
✔ macOS dev startup uses a real unpacked app instead of raw Electron (1.240417ms)
✔ first launch uses a versioned, skippable AI and KataGo onboarding flow (1.489084ms)
✔ AI setup verifies text, vision, and agent tools while keeping manual model entry (0.89275ms)
✔ unconfigured AI actions open settings instead of invoking the teacher runtime (0.884ms)
✔ automatic KataGo benchmark is cancellable, bounded, and preempted by analysis (2.223ms)
✔ settings keep focused user-facing pages and give official Zhizi its own page (1.068834ms)
✔ KataGo model downloads pause without deleting partial data and resume with HTTP Range (0.306542ms)
✔ Fox sync stores list metadata and defers SGF download until a game is opened (0.878875ms)
✔ all SGF consumers hydrate remote Fox games before reading filePath (0.510959ms)
✔ library panel communicates remote list state and keeps pagination compact (1.892375ms)
✔ library delete removes managed SGF files and cleans local app state (0.7485ms)
✔ full-game teacher analysis reuses only a complete matching sweep cache (4.230833ms)
✔ teacher whole-game tool uses the cancellable runtime path and reports real progress (2.963958ms)
✔ full-game screenshots can reuse the analyzed key-move evidence (0.733791ms)
✔ generated KataGo config keeps a stable fingerprint when settings do not change (0.486708ms)
✔ GoAgent brand identity is the only current product identity (63.70125ms)
✔ package, preload API, and public docs use GoAgent identity (0.354792ms)
✔ iKataGo remote engine is a first-class KataGo engine mode (5.928166ms)
✔ iKataGo remains a backend compatibility engine while official Zhizi has a focused UI (2.942583ms)
✔ internet-informed source registry entries are explicit and non-copying (1.298042ms)
✔ v9 and v10 knowledge packs expand source policy and deep Go concepts (0.4215ms)
✔ motif recognizer and quality scripts include v9/v10 expansion packs (0.293417ms)
✔ knowledge source policy and coverage scripts enforce release gates (0.1785ms)
✔ joseki trie module is order-aware and integrated with recognizer (1.006166ms)
✔ v7 knowledge pack adds evidence and profile quality motifs (0.222667ms)
✔ official KataGo model installer is wired through main preload and settings (2.08975ms)
✔ KataGo candidate ranking uses before-position choices and current-player loss (1.063125ms)
✔ Board overlays display candidate values from the side-to-move perspective (1.034375ms)
✔ Teacher agent sends board-display winrates and unambiguous score summaries (1.471083ms)
✔ Timeline and issue list treat KataGo winrate loss as percentage points (0.738125ms)
✔ Quick winrate graph uses KaTrain-style fast visits and refines suspected mistakes (1.045ms)
✔ Workbench reuses cache for automatic analysis but manual analysis refreshes the current move (0.59275ms)
✔ KataGo runtime never resolves bundled executables from inside app.asar (0.747667ms)
✔ KataGo runtime prioritizes unpacked Windows portable resources over source-tree asar paths (0.150458ms)
✔ KataGo Trace Translator defines the full evidence packet (0.847041ms)
✔ KataGo trace types are exposed on KataGoMoveAnalysis (0.134458ms)
✔ KataGo analysis requests policy/PV/ownership fields used by trace translator (0.191291ms)
✔ Teacher prompt references trace packet as teaching evidence (0.296708ms)
✔ package wires eval:katago-trace into teacher quality gate (0.163458ms)
✔ training catalog reaches P0 knowledge coverage targets (0.63ms)
✔ training catalog ids, source policy, and pattern links are valid (0.282959ms)
✔ joseki lines include usable branch and decision guidance (0.212625ms)
✔ life-and-death and tesuji problems include answer and failure explanations (1.589458ms)
✔ matching engine feeds knowledge matches to the agent without forcing UI templates (5.157459ms)
✔ matching engine ranks exact joseki, life-death, and tesuji matches ahead of broad patterns (158.684375ms)
✔ P0 knowledge cards are non-empty and stable (0.637125ms)
✔ every knowledge card has teaching fields (0.082375ms)
✔ pattern knowledge cards cover joseki, life-death, tesuji, and shape matching (0.067792ms)
✔ knowledge source registry records licensing decisions (0.076375ms)
✔ every pattern card has matching triggers and teacher guidance (0.101125ms)
✔ teacher runtime wires pattern matching into knowledge retrieval (3.342583ms)
✔ live search telemetry derives visits per second from cumulative KataGo responses (0.716666ms)
✔ live search telemetry prefers the engine root visit count when available (0.057417ms)
✔ manual live analysis bypasses cache and foreground work preempts the graph sweep (12.413ms)
✔ LLM settings can reveal saved API key and keep paste-friendly inputs (1.79925ms)
✔ Electron app exposes native paste controls for editable settings fields (0.13275ms)
✔ LLM model picker fetches from the user proxy and has no hardcoded GPT fallback (0.875792ms)
✔ LLM settings drawer auto-saves edits without requiring a save button (0.636334ms)
✔ extracts standard chat completion content (0.663541ms)
✔ extracts OpenAI-compatible object content parts (0.197834ms)
✔ extracts Responses-style output text and skips reasoning items (0.121166ms)
✔ reports response shape without serializing content (0.153209ms)
✔ GoAgent defaults analysis to local KataGo and migrates old remote preferences once (10.25175ms)
✔ board workspace supports mouse-wheel move replay without hijacking form controls (1.0555ms)
✔ move range parser is shared and has false-positive guards (1.734666ms)
✔ move range review integrates with teacher and quality evidence path (0.397584ms)
✔ renderer supports Alt-drag range selection and bounded summary payload (1.200125ms)
✔ shared alias is configured without exposing main-only modules as renderer runtime imports (0.671708ms)
✔ package scripts no longer expose Lite release builds (0.825292ms)
✔ release workflow publishes only full Standard and NVIDIA packages (0.232583ms)
✔ Lite release helper scripts and docs were removed (0.10575ms)
✔ current release notes do not advertise Lite packages (0.272916ms)
✔ release workflow publishes standard Windows as a full OpenCL runtime bundle (0.894166ms)
✔ release workflow publishes a real Windows NVIDIA edition (11.306ms)
✔ release workflow restores macOS KataGo assets from macOS packages (2.397583ms)
✔ KataGo asset preparation can scan and copy a runtime directory (0.222416ms)
✔ runtime detection accepts prepared NVIDIA edition metadata and default model names (0.227333ms)
✔ retries OpenAI-compatible parameter variants until the proxy accepts one (158.104875ms)
✔ non-stream requests retry a transient compatible-proxy failure (400.385792ms)
✔ probe sends a valid PNG image payload to the multimodal provider (28.437583ms)
✔ probe rejects a model that accepts image payloads but does not identify the image (21.733125ms)
✔ asks once more for final text after a stop response spends tokens but returns empty content (15.949959ms)
✔ falls back to streaming when a reasoning model returns empty non-stream content (16.836416ms)
✔ streamOpenAICompatibleChat emits visible deltas as they arrive (17.115625ms)
✔ tool-call turns return tool calls instead of empty-text errors (12.777416ms)
✔ stream tool turns accumulate streamed tool-call arguments (11.873792ms)
✔ stream tool turns retry a transient proxy EOF before any visible output (369.397042ms)
✔ stream tool turns do not retry authentication failures (29.313958ms)
✔ does not retry empty responses caused by content filtering (16.826166ms)
✔ pnpm build-script approvals are compatible with pnpm 11 (2.054208ms)
✔ quick game analysis IPC treats scheduler cancellations as controlled interruptions (0.7165ms)
✔ cancel-analysis reaches queued scheduler work as well as the active engine (0.135833ms)
✔ streaming position analysis preserves the caller run id and group for cancellation (0.14525ms)
✔ engine silver eval and release artifact smoke are wired into package scripts (2.274417ms)
✔ KataGo engine pool telemetry exists and is touched by katago runtime (0.24925ms)
✔ PR #6 valuable pieces were selectively imported without duplicating main moveRange path (0.115291ms)
✔ real teaching eval is wired but not forced into default CI (0.8505ms)
✔ real teaching eval uses real KataGo and real LLM configuration (0.168667ms)
✔ persistent KataGo engine pool can be enabled without removing spawn fallback (0.280333ms)
✔ real teaching fixtures exist (0.088375ms)
✔ release notes include multilingual download guidance (0.622292ms)
✔ release notes link every published desktop artifact (0.072875ms)
✔ release notes label Windows editions as OpenCL and CUDA without checksum clutter (0.111ms)
✔ release notes do not list retired Lite or split NVIDIA artifacts (0.073958ms)
✔ SGF scoring helper normalizes Fox komi and result notation before teaching (2.006958ms)
✔ Teacher tools expose normalized komi and resultSummary instead of raw Fox-only numbers (1.78375ms)
✔ Renderer shows exact Fox record result separately from KataGo estimate at final position (0.79375ms)
✔ settings center uses focused pages and keeps Zhizi account tasks together (1.785292ms)
✔ settings center avoids developer-facing AI configuration labels in Chinese copy (0.520166ms)
✔ settings center has design-system styles for the focused page shell (0.2685ms)
✔ local pattern matcher supports symmetry, perspectives, constraints, and counter evidence (0.771375ms)
✔ shape recognition engine fuses local patterns and KataGo-derived shape features (0.114834ms)
✔ knowledge retrieval includes recognized shape packets before generic knowledge (0.102792ms)
✔ v11 shape recognition knowledge pack and shape pattern cards are present (0.255709ms)
✔ shape recognition eval is wired into package quality checks (0.169042ms)
✔ katago manifest includes P0 platform assets (3.915875ms)
✔ knowledge card payload remains available (1.0815ms)
✔ Sprint 3 UI files are present after overlay is applied (0.712792ms)
✔ GoBoardV2 keeps candidate, previous move, and key move layers (0.206875ms)
✔ TeacherRunCardPro supports raw markdown display and folded tool logs (0.094167ms)
✔ Sprint 4 UI interaction files exist (0.736792ms)
✔ Candidate tooltip exposes PV continuation context (0.203125ms)
✔ Sprint 4 scripts exist (0.063083ms)
✔ Windows portable release artifact is a ZIP, not a portable EXE (0.162375ms)
✔ timelineInteraction exports move helpers (0.076167ms)
✔ Windows release workflow smoke-starts packaged apps before upload (0.204417ms)
✔ release readiness uses packaged runtime paths and current package version (0.164334ms)
✔ Windows packaged startup avoids fragile legacy Electron profile state (1.647708ms)
✔ Sprint 7 UI Gallery route and mock data are present (1.146541ms)
✔ GoBoardV2 renders polished stone and candidate layers (1.768208ms)
✔ GoBoardV2 stone rendering reconstructs captures before drawing stones (50.6425ms)
✔ Current-move teacher screenshot has procedural asset fallback (0.886125ms)
✔ WinrateTimelineV2 exposes hover tooltip and severity markers on a single-line KPI header (0.545792ms)
✔ KataGo live analysis controls expose start pause and visit thresholds (1.414458ms)
✔ KataGo benchmark tuning is wired from main process to settings UI (0.663875ms)
✔ TeacherRunCardPro behaves like an AI editor response instead of a fixed report card (3.029084ms)
✔ Desktop app shell exposes native menu commands and workbench chrome (0.962667ms)
✔ StudentRailCard stays compact and visual QA capture exists (0.67675ms)
✔ structured teaching output module defines strict schema and local validation (0.783792ms)
✔ teacher quality gate combines markdown verification, grounded claims, and structured output validation (0.101167ms)
✔ v8 knowledge pack is wired into motif recognizer and source registry (0.317333ms)
✔ teacher quality gate eval script is part of the release-quality command (0.195833ms)
✔ quality golden fixture includes structured claim requirements (0.093792ms)
✔ student profile quality guard prevents overfitting from one game (0.772292ms)
✔ teacher quality scripts validate golden fixtures and claim consistency (0.196ms)
✔ system language negotiation recognizes all supported language families (0.74625ms)
✔ system language negotiation follows preference order and falls back to English (0.065958ms)
✔ locale normalization handles full Chinese script and region tags (0.05175ms)
✔ Teacher agent runtime uses a Claude Code style tool loop (1.666458ms)
✔ Teacher agent exposes domain tools and shell with safety rails (0.571667ms)
✔ Provider supports OpenAI-compatible tool-call turns (0.20825ms)
✔ Python review runtime is Windows-safe and does not hard-code python3 venv paths (0.375792ms)
✔ Teacher prompt requires board, KataGo, and knowledge evidence without template language (0.503958ms)
✔ teacher artifact runtime exports type, create, validate and agent tool contract (8.548708ms)
✔ buildTeacherArtifact escapes static HTML and normalizes KataGo zero-based candidate order (71.701083ms)
✔ buildTeacherArtifact presents candidates from the current player perspective (28.141625ms)
✔ TeachingArtifact data is not rendered as a separate user-facing card (1.712ms)
✔ teacher markdown is rendered as formatted text instead of raw markdown markers (1.142042ms)
✔ createTeachingArtifact validates, prunes, redacts and keeps sandbox HTML separate (15.823958ms)
✔ no evidence means no TeachingArtifact (10.263375ms)
✔ move-range artifacts prefer trusted range evidence over LLM-invented key moves (14.636666ms)
✔ teacher markdown turns move numbers and board coordinates into board actions (3.201208ms)
✔ board exposes a polished coordinate flash layer controlled by the app (1.324125ms)
✔ clickable reference labels are localized across every supported locale (0.845917ms)
✔ teacher persona settings include level, age, style, and evidence boundary (1.083791ms)
✔ teacher sessions are typed, persisted through IPC, and exposed in composer (0.908833ms)
✔ current-move prompt controls explanation density without restoring templates (0.948ms)
✔ teaching pacing evidence chooses minimal, branch, detailed, and caution modes (87.189667ms)
✔ KataGo root ownership is preserved for positional judgement (2.683125ms)
✔ renderer has a reusable territory judgement model and premium board overlay (0.7175ms)
✔ workbench exposes positional judgement controls and summary without replacing analysis flow (3.430417ms)
✔ UI gallery includes positional judgement sample data for visual QA (0.241791ms)
✔ teacher agent exposes screenshots, KataGo, and knowledge as LLM-callable tools (1.251667ms)
✔ main and renderer provide a request-response bridge for tool-generated board images (0.603541ms)
✔ renderer teacher entrypoints delegate evidence gathering to the agent tools (1.536333ms)
✔ top3 development adds analysis scheduler and persistent engine settings (8.930125ms)
✔ top3 development adds move classification and pv confidence evidence (18.068833ms)
✔ top3 development adds review navigator and board pv interaction contracts (5.656417ms)
✔ top3 v2 adds main-side analysis cache and adaptive analysis profile contracts (15.139958ms)
✔ top3 v2 adds teaching readiness gate on top of evidence bundle (1.187458ms)
✔ top3 v2 adds review session, variation playback, and evidence panel models (12.447375ms)
✔ V3 runtime integration wires adaptive profile, cache and readiness into analysis IPC (13.204875ms)
✔ V3 runtime integration keeps scheduler and persistent engine as separate layers (5.175916ms)
✔ V3 teacher prompt is aware of runtime readiness evidence (1.122458ms)
✔ V3 runtime review model bridges timeline, PV playback and evidence panel (0.917917ms)
✔ V3 analysis cache is tiered and runtime cache keys include engine fingerprints (10.59975ms)
✔ trial branch model supports temporary legal play without mutating mainline (0.811125ms)
✔ GoBoardV2 renders trial stones and switches candidate display to branch endpoint (0.2365ms)
✔ trial analysis IPC is exposed through main, preload and renderer types (1.001458ms)
✔ teacher screenshots and prompt keep trial branch distinct from mainline (0.683917ms)
✔ TTS provider policy uses explicit selected provider only (0.972292ms)
✔ Volcengine Doubao TTS is a first-class explicit cloud provider (0.38975ms)
✔ Kokoro bundled assets and scripts are wired (0.218ms)
✔ Kokoro zh-CN synthesis does not route Chinese text through the English phonemizer (1.130208ms)
✔ custom TTS API is explicit and stored separately from public settings (0.135708ms)
✔ TTS evidence lists keep one fact per line without extra network chunks (31.801208ms)
✔ TTS evidence labels remain separated even when copied as one line (5.31575ms)
✔ TTS chunking strips markdown hash markers before playback (3.526709ms)
✔ cloud TTS speech cleanup preserves Go coordinate letters for pronunciation (33.160125ms)
✔ TTS keeps normal English words and AI terms instead of spelling every letter (6.020292ms)
✔ TTS removes markdown heading hash markers from spoken text (4.23525ms)
✔ Kokoro localized coordinate mode remains available for Chinese G2P (3.600917ms)
✔ renderer i18n exposes all target UI locales (4.240375ms)
✔ settings, teacher prompt, and renderer contracts accept all target locales (5.22175ms)
✔ v5 joseki bundle and source registry are present and traceable (5.159959ms)
✔ v5 teaching runtime wires motifs, evidence, verification, and multilingual settings (3.77ms)
✔ vision evidence types are explicit and attached to teacher requests/results (0.908208ms)
✔ vision evidence service validates image presence and sends high-detail image parts (0.152917ms)
✔ selected-game freeform chat is not implicitly promoted to image-required review (0.130375ms)
✔ teacher agent includes vision evidence instructions and refuses missing required images (0.3085ms)
✔ provider image parts support high-detail vision input (0.160041ms)
✔ vision verifier catches false no-board-image claims (0.089458ms)
✔ Zhizi official API is a first-class but explicitly enabled engine mode (3.990333ms)
✔ remote engine uses official ready, fresh-token reconnect, numeric GTP and full replay (1.692042ms)
✔ main, preload and settings expose the official account and billing loop without tokens (3.105667ms)
✔ official authentication accepts phone or email and never puts bearer tokens in URLs (20.806208ms)
✔ official API maps JSON and plain-text failures to stable user-facing errors (0.637125ms)
✔ membership payment uses the live product name and exact fen price (14.689125ms)
✔ money conversion is exact at the UI boundary (0.186625ms)
✔ renderer never receives account or Socket.IO tokens (1.072417ms)
✔ persistent Zhizi session reuses one ready Socket.IO connection (1.96625ms)
✔ cancelling a Zhizi task stops the active remote analysis (10.2805ms)
✔ releasing a Zhizi session interrupts in-flight waits immediately (10.775959ms)
✔ persistent Zhizi session obtains a fresh token and socket after disconnect (0.6065ms)
✔ Zhizi session accepts only the official ready event (22.680959ms)
✔ Zhizi payload decoding handles Socket.IO Buffer JSON payloads (0.122792ms)
✔ Zhizi error classification distinguishes VIP entitlement from worker capacity (0.263542ms)
✔ Zhizi startup retry follows bounded LizzieYZY-style backoff (0.04925ms)
✔ Zhizi account metadata distinguishes an expired token from a temporary service outage (503.929791ms)
✔ remote args are built only from the official allowlist fields (0.380208ms)
✔ KataGo parser uses the newest streaming frame and real visit target (0.92825ms)
✔ GTP parsing tolerates fragmented responses, errors, unknown fields and multiple info records (0.627ms)
ℹ tests 244
ℹ suites 0
ℹ pass 244
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 1568.384833
vite v7.3.1 building ssr environment for production...
transforming...
✓ 80 modules transformed.
rendering chunks...
out/main/index.js 677.34 kB
✓ built in 903ms
vite v7.3.1 building ssr environment for production...
transforming...
✓ 1 modules transformed.
rendering chunks...
out/preload/index.mjs 8.21 kB
✓ built in 5ms
vite v7.3.1 building client environment for production...
transforming...
✓ 70 modules transformed.
rendering chunks...
../../out/renderer/index.html 2.67 kB
../../out/renderer/assets/black-COu2XGwD.png 14.48 kB
../../out/renderer/assets/white-qLxnejtB.png 22.82 kB
../../out/renderer/assets/logo-DJCIySQo.png 310.47 kB
../../out/renderer/assets/board-B2rvsvqZ.png 393.31 kB
../../out/renderer/assets/ai-teacher-board-bg-C3lOLilX.png 1,972.11 kB
../../out/renderer/assets/index-BPRxo2Au.css 308.07 kB
../../out/renderer/assets/index-DztCWUhX.js 1,220.02 kB
✓ built in 420ms (244/244 tests)\n-
vite v7.3.1 building ssr environment for production...
transforming...
✓ 80 modules transformed.
rendering chunks...
out/main/index.js 677.34 kB
✓ built in 328ms
vite v7.3.1 building ssr environment for production...
transforming...
✓ 1 modules transformed.
rendering chunks...
out/preload/index.mjs 8.21 kB
✓ built in 5ms
vite v7.3.1 building client environment for production...
transforming...
✓ 70 modules transformed.
rendering chunks...
../../out/renderer/index.html 2.67 kB
../../out/renderer/assets/black-COu2XGwD.png 14.48 kB
../../out/renderer/assets/white-qLxnejtB.png 22.82 kB
../../out/renderer/assets/logo-DJCIySQo.png 310.47 kB
../../out/renderer/assets/board-B2rvsvqZ.png 393.31 kB
../../out/renderer/assets/ai-teacher-board-bg-C3lOLilX.png 1,972.11 kB
../../out/renderer/assets/index-BPRxo2Au.css 308.07 kB
../../out/renderer/assets/index-DztCWUhX.js 1,220.02 kB
✓ built in 446ms
{
"fixtureCount": 4,
"categories": {
"current-move": 1,
"endgame": 1,
"joseki": 1,
"quality": 1
},
"note": "Golden fixture schema validated. Runtime scoring can be added once CI has KataGo assets."
}
{
"fixtureCount": 4,
"checked": "claim-fixture-consistency"
}
teacher quality gate eval passed
knowledge source policy check passed
knowledge coverage eval passed
shape recognition eval passed
Move-range review eval passed.
[eval:vision-evidence] vision evidence chain contract passed
{
"ok": true,
"checked": "katago trace translator contract",
"features": [
"tracePacket",
"shallowSearchTree",
"policySearchDelta",
"scorePerspective",
"pvSupport",
"ownershipSummary",
"humanPolicySignals"
]
}
{
"fixtureCount": 1,
"mode": "silver-oracle-schema",
"note": "Runtime high-visit KataGo scoring can be enabled on release CI with bundled assets."
}
teacher style and student age eval passed
teacher session eval passed
TTS provider policy eval passed
✔ teacher artifact runtime exports type, create, validate and agent tool contract (3.301542ms)
✔ buildTeacherArtifact escapes static HTML and normalizes KataGo zero-based candidate order (50.524667ms)
✔ buildTeacherArtifact presents candidates from the current player perspective (16.022666ms)
✔ TeachingArtifact data is not rendered as a separate user-facing card (1.017708ms)
✔ teacher markdown is rendered as formatted text instead of raw markdown markers (0.777292ms)
✔ createTeachingArtifact validates, prunes, redacts and keeps sandbox HTML separate (11.822625ms)
✔ no evidence means no TeachingArtifact (9.496667ms)
✔ move-range artifacts prefer trusted range evidence over LLM-invented key moves (12.417ms)
ℹ tests 8
ℹ suites 0
ℹ pass 8
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 287.644042\n-
GoAgent P0 Beta Acceptance
✅ package.json
✅ src/main/services/diagnostics/index.ts
✅ src/main/services/llm/openaiCompatibleProvider.ts
✅ src/main/services/studentProfile.ts
✅ src/main/services/teacherAgent.ts
✅ data/knowledge/p0-cards.json
✅ data/katago/manifest.json
✅ scripts/check_katago_assets.mjs
✅ src/renderer/src/features/board/GoBoardV2.tsx
✅ src/renderer/src/features/board/WinrateTimelineV2.tsx
✅ src/renderer/src/features/teacher/TeacherRunCardPro.tsx
✅ src/renderer/src/features/diagnostics/DiagnosticsGate.tsx — 如果诊断 gate 文件名不同,可忽略此 warning
✅ package.json has typecheck script
✅ package.json has build script
✅ package.json has test script
✅ release workflow prepares KataGo assets
✅ main process exposes P0 IPC contracts
✅ knowledge cards count >= 40 (48)
passes=18 warnings=0 failures=0\n-
GoAgent Package Artifact Smoke Check
mode=dev
⚠️ no release artifacts found; this is acceptable in dev mode before pnpm dist\n-
releaseRoot=/Users/haoc/Developer/mg-wq/GoAgent/release
packageVersion=0.4.19
scanRoot=/Users/haoc/Developer/mg-wq/GoAgent/release
artifactCount=0
P0 release candidate check (dev)
✓ package.json is readable
✓ package version is 0.4.19 — Found 0.4.19
✓ package script typecheck exists
✓ package script build exists
✓ package script check exists
✓ package script dist:mac exists
✓ package script dist:win exists
✓ RC readiness script exists
✓ electron-builder includes data/katago extraResources
! electron-builder unpacks data/katago — KataGo should not run from inside asar
✓ Windows x64 target is configured
✓ Windows ARM64 target is disabled for P0 beta
✓ artifactName includes version, os, and arch — ${productName}-${version}-${os}-${arch}.${ext}
✓ src/main/services/diagnostics/index.ts exists
✓ src/main/services/llm/openaiCompatibleProvider.ts exists
✓ src/main/services/studentProfile.ts exists
✓ src/main/services/teacherAgent.ts exists
✓ data/knowledge/p0-cards.json exists
✓ data/katago/manifest.json exists
✓ scripts/check_katago_assets.mjs exists
✓ scripts/p0_beta_acceptance.mjs exists
✓ scripts/package_artifact_smoke.mjs exists
✓ P0 knowledge cards count >= 48 — Found 48
✓ Knowledge cards have core fields — 0 cards missing id/title/summary
✓ Release workflow mentions KataGo asset preparation
✓ .github/workflows/p0-release-candidate.yml exists
✓ docs/RELEASE_BETA_CHECKLIST.md exists
✓ docs/VISUAL_QA_CHECKLIST.md exists
✓ docs/KATAGO_ASSETS.md exists
✓ docs/P0_STATUS.md exists
✓ docs/MACOS_SIGNING_NOTARIZATION.md exists
✓ docs/WINDOWS_CODE_SIGNING.md exists
✓ docs/WINDOWS_SMOKE_TEST.md exists
✓ docs/VISUAL_QA_EVIDENCE_TEMPLATE.md exists
✓ docs/RELEASE_NOTES_v0.4.19.md exists
✓ docs/RC_RELEASE_GUIDE.md exists
✓ docs/RELEASE_SMOKE_MATRIX.md exists
✓ KataGo manifest is readable
! KataGo assets missing in dev mode — Missing: data/katago/models/kata1-zhizi-b28c512nbt-muonfd2.bin.gz, data/katago/bin/darwin-arm64/katago, data/katago/bin/darwin-x64/katago, data/katago/bin/win32-x64/katago.exe
! macOS and Windows signing evidence is present — Manual blocker before public beta: signed/notarized macOS app and signed Windows installer not verified
! Windows real-machine smoke evidence is present — Manual blocker before tag: Windows 11 x64 smoke test required
! Visual QA evidence is present — Manual blocker before public beta: visual screenshots/checklist required
! Public beta manual gates are complete — publicBetaReady=false until signing, Windows smoke, and visual QA evidence are all present
✓ .env absent from workspace root
✓ .env.local absent from workspace root
✓ release absent from workspace root
! out not meant for commit — Exists locally; verify not tracked
! node_modules not meant for commit — Exists locally; verify not tracked
✓ No obvious risky files staged/modified
Summary: 41 pass / 8 warnings / 0 failures\n-
Release artifact smoke (dev)
packageVersion=0.4.19
scanDir=release
Found 0 current GoAgent artifact candidates
! No release artifacts found in dev mode
Summary: 0 artifact(s), 1 warning(s), 0 failure(s)\n-
[check-website] website contract OK\n-
[check-tts-assets] Kokoro asset contract OK\n-
[smoke-tts] non-strict mode: TTS runtime smoke skipped until bundled assets are prepared\n\n## Notes\n\nSource-tree development checks warn about intentionally omitted large bundled KataGo and Kokoro assets. The configured local KataGo runtime and Volcengine TTS were both tested successfully in the desktop app.