Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
1c3b77e
feat: productize P0 diagnostics, profiles, knowledge and teacher runtime
Apr 24, 2026
a6f23e0
feat: complete P0 runtime wiring and user onboarding
Apr 24, 2026
ab3ec7b
feat: upgrade board and teacher UX for P0
Apr 24, 2026
58cf13c
feat: prepare P0 beta release readiness
Apr 24, 2026
bcc54c2
chore: add P0 release candidate readiness workflow
Apr 24, 2026
d80edec
chore: harden release artifact validation
Apr 24, 2026
3eeb73a
chore: finalize P0 beta release blockers
Apr 24, 2026
002c28d
feat: polish P0 UI to top-tier product quality
Apr 24, 2026
d302668
feat: refine teacher panel as agent editor
Apr 25, 2026
95d52c9
feat: add desktop workbench shell
Apr 25, 2026
8e1a979
feat: align workbench UI with approved light design
Apr 25, 2026
2f75c40
fix: simplify workbench launch and board layout
Apr 25, 2026
f669036
fix: compact library rail for professional review
Apr 25, 2026
7593aca
fix: prioritize board space and complete coordinates
Apr 25, 2026
ecaa2eb
fix: streamline board header and timeline layout
Apr 25, 2026
1ccacec
fix: move position summary beside timeline
Apr 25, 2026
389ecb2
fix: harden functional smoke paths
Apr 25, 2026
24d288a
test: add teacher LLM end-to-end smoke
Apr 25, 2026
0d3ca13
fix: harden real LLM analysis path
Apr 25, 2026
f043c56
feat: add KataGo live analysis controls
Apr 25, 2026
b611a2d
feat: consolidate board analysis header
Apr 25, 2026
86b6e65
feat: refine live analysis and agent composer UX
Apr 25, 2026
6e55646
feat: add KataGo benchmark tuning
Apr 25, 2026
239a714
feat: stream KataGo analysis and simplify teacher chat UX
Apr 25, 2026
e72c8d3
feat: polish player binding interaction
Apr 25, 2026
a1c28bf
feat: show played move alongside KataGo candidates
Apr 25, 2026
c9cf41a
feat: preview KataGo PV on board hover
Apr 25, 2026
845b451
feat: stream teacher replies in agent thread
Apr 25, 2026
4ccf51d
chore: rename product to GoMentor
Apr 25, 2026
db39a4f
fix: align KataGo candidate loss logic
Apr 25, 2026
23fdc29
fix: auto-start KataGo analysis on navigation
Apr 26, 2026
479b7c6
docs: polish GoMentor multilingual README
Apr 26, 2026
d07f718
docs: highlight GoMentor community group
Apr 26, 2026
c00131c
fix: package Windows portable release as zip
Apr 26, 2026
eed10d2
feat: add pattern knowledge matching for Go teaching
Apr 26, 2026
50ef955
feat: expand Go teaching pattern knowledge base
Apr 26, 2026
e240f3c
feat: broaden sourced Go pattern knowledge
Apr 26, 2026
4c7b79e
feat: expand Go knowledge matching engine
Apr 26, 2026
50fbccc
test: harden UI gallery visual QA
Apr 26, 2026
e6e06ba
test: harden teacher explanation smoke coverage
Apr 26, 2026
5b3571b
fix: stabilize live analysis and polish review UI
Apr 26, 2026
7994832
feat: lazy load Fox game records
Apr 26, 2026
b84d216
fix: keep library pagination visible
Apr 26, 2026
691901b
fix: refine library rail actions
Apr 26, 2026
4ba6de3
fix: streamline workbench chrome and timeline controls
Apr 26, 2026
595160e
fix: enlarge main board workspace
Apr 26, 2026
9915ea1
feat: add official KataGo model installer
Apr 26, 2026
9e8a008
fix: open SGF import dialog from main window
Apr 26, 2026
5bf93f7
fix: scale board with window size
Apr 26, 2026
33a1e07
feat: add grouped official KataGo model presets
Apr 26, 2026
7f10684
fix: surface official zhizi KataGo models
Apr 26, 2026
2a431d7
polish: simplify KataGo model settings
Apr 26, 2026
d21dd4d
fix: stabilize board candidate hover previews
Apr 26, 2026
4f746fc
refactor: simplify teacher prompts and remove fallbacks
Apr 26, 2026
62f8747
refactor: trim teacher prompt guidance
Apr 26, 2026
6712a3d
feat: add timeline issue list and current loss readout
Apr 26, 2026
f21dc5d
fix: align board overlays with selected move analysis
Apr 26, 2026
e3571d9
fix: treat winrate loss as percentage points
Apr 26, 2026
bb97b45
feat: refresh LLM models from settings
Apr 26, 2026
1337ef8
feat: improve Go knowledge matching coverage
Apr 26, 2026
91dd5a4
fix: run knowledge smoke fixture cross-platform
Apr 26, 2026
945acd7
fix: resolve knowledge smoke fixture path on Windows
Apr 26, 2026
fe77479
feat: add geometric Go shape matching
Apr 26, 2026
893d2ed
feat: add liberty-aware shape matching
Apr 26, 2026
b47d92f
fix: align move loss with played candidate winrate
Apr 26, 2026
dd5d757
fix: improve quick winrate graph accuracy
Apr 26, 2026
9fc5888
ci: guard release packaging without assets
Apr 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Bug report
description: Report a reproducible KataSensei problem.
description: Report a reproducible GoMentor problem.
title: "[Bug]: "
labels: ["bug"]
body:
Expand All @@ -23,8 +23,8 @@ body:
- type: input
id: version
attributes:
label: KataSensei version
placeholder: "0.1.0"
label: GoMentor version
placeholder: "0.2.0-beta.1"
- type: dropdown
id: os
attributes:
Expand Down
60 changes: 60 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/p0-beta.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# GoMentor P0 Beta PR

## Summary

-

## Scope

- [ ] Diagnostics / onboarding
- [ ] KataGo runtime / asset readiness
- [ ] SGF import and student binding
- [ ] Fox nickname import and profile reuse
- [ ] Teacher runtime
- [ ] Local knowledge cards
- [ ] Board UI / teacher UI
- [ ] Packaging / release readiness

## Verification

- [ ] `pnpm install`
- [ ] `pnpm typecheck`
- [ ] `pnpm test`
- [ ] `pnpm build`
- [ ] `pnpm check`
- [ ] `node scripts/check_katago_assets.mjs --mode=dev`
- [ ] `node scripts/p0_beta_acceptance.mjs`
- [ ] `node scripts/package_artifact_smoke.mjs --mode=dev`
- [ ] `node scripts/p0_release_candidate_check.mjs --mode=dev`
- [ ] `node scripts/verify_release_artifacts.mjs --mode=dev`

## Manual QA

- [ ] macOS app launches
- [ ] macOS app is signed and notarized before public beta
- [ ] Windows 11 x64 app launches
- [ ] Windows installer is signed before public beta, or explicitly marked internal/unsigned beta
- [ ] SGF import works
- [ ] Fox nickname sync works
- [ ] Current move analysis works
- [ ] Full game analysis works
- [ ] Recent 10 games analysis works
- [ ] Student profile updates after analysis
- [ ] Teacher card output is readable
- [ ] Candidate tooltip works
- [ ] Key move navigation works
- [ ] Winrate timeline click/drag works
- [ ] Visual QA evidence captured

## Release asset status

- [ ] macOS KataGo binary prepared
- [ ] Windows x64 KataGo binary prepared
- [ ] Default b18 model prepared
- [ ] Asset checksums recorded
- [ ] Release package smoke test passed
- [ ] No Windows ARM64 artifact is generated or uploaded for P0 beta

## Risk / Notes

-
92 changes: 92 additions & 0 deletions .github/workflows/p0-release-candidate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: P0 Release Candidate

on:
pull_request:
branches:
- main
- develop
push:
branches:
- feature/p0-productization
workflow_dispatch:
inputs:
mode:
description: "Readiness mode"
required: true
default: "dev"
type: choice
options:
- dev
- release

concurrency:
group: p0-rc-${{ github.ref }}
cancel-in-progress: true

jobs:
readiness:
name: P0 RC readiness (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- macos-latest
- windows-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.30.3

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Typecheck
run: pnpm typecheck

- name: Test
run: pnpm test

- name: Build
run: pnpm build

- name: Project check
run: pnpm check

- name: KataGo assets check
run: node scripts/check_katago_assets.mjs --mode=${{ inputs.mode || 'dev' }}

- name: P0 beta acceptance
run: node scripts/p0_beta_acceptance.mjs

- name: Package artifact smoke
run: node scripts/package_artifact_smoke.mjs --mode=dev

- name: P0 release candidate check
run: node scripts/p0_release_candidate_check.mjs --mode=${{ inputs.mode || 'dev' }}

- name: Verify release artifacts
run: node scripts/verify_release_artifacts.mjs --mode=dev

- name: Collect release evidence
if: always()
run: node scripts/collect_release_evidence.mjs --mode=dev

- name: Upload release evidence
if: always()
uses: actions/upload-artifact@v4
with:
name: release-evidence-${{ matrix.os }}
path: release-evidence/**
if-no-files-found: ignore
59 changes: 52 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,33 @@ concurrency:
cancel-in-progress: false

jobs:
release-preflight:
name: Release preflight
runs-on: ubuntu-latest
outputs:
can-package: ${{ steps.katago-assets.outputs.can-package }}

steps:
- name: Check KataGo asset sources
id: katago-assets
shell: bash
env:
GOMENTOR_KATAGO_ASSET_DIR: ${{ secrets.GOMENTOR_KATAGO_ASSET_DIR }}
GOMENTOR_KATAGO_BINARY: ${{ secrets.GOMENTOR_KATAGO_BINARY }}
GOMENTOR_KATAGO_MODEL: ${{ secrets.GOMENTOR_KATAGO_MODEL }}
run: |
if [[ -n "${GOMENTOR_KATAGO_ASSET_DIR}" || ( -n "${GOMENTOR_KATAGO_BINARY}" && -n "${GOMENTOR_KATAGO_MODEL}" ) ]]; then
echo "can-package=true" >> "${GITHUB_OUTPUT}"
echo "KataGo release asset source is configured."
else
echo "can-package=false" >> "${GITHUB_OUTPUT}"
echo "::notice title=Release packaging skipped::KataGo release assets are not configured. Set GOMENTOR_KATAGO_ASSET_DIR or both GOMENTOR_KATAGO_BINARY and GOMENTOR_KATAGO_MODEL to enable automated packaging."
fi

package:
name: Package ${{ matrix.name }}
needs: release-preflight
if: needs.release-preflight.outputs.can-package == 'true'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
Expand All @@ -27,9 +52,6 @@ jobs:
- name: Windows
os: windows-latest
command: pnpm dist:win
- name: Linux
os: ubuntu-latest
command: pnpm dist:linux

steps:
- name: Checkout
Expand Down Expand Up @@ -58,15 +80,36 @@ jobs:
- name: Typecheck
run: pnpm typecheck

- name: Prepare KataGo assets
shell: bash
env:
GOMENTOR_KATAGO_ASSET_DIR: ${{ secrets.GOMENTOR_KATAGO_ASSET_DIR }}
GOMENTOR_KATAGO_BINARY: ${{ secrets.GOMENTOR_KATAGO_BINARY }}
GOMENTOR_KATAGO_MODEL: ${{ secrets.GOMENTOR_KATAGO_MODEL }}
run: |
node scripts/prepare_katago_assets.mjs
node scripts/check_katago_assets.mjs --mode=release

- name: Package desktop app
env:
CSC_IDENTITY_AUTO_DISCOVERY: "false"
CSC_LINK: ${{ secrets.CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
WIN_CSC_LINK: ${{ secrets.WIN_CSC_LINK }}
WIN_CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }}
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }}
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_KEYCHAIN: ${{ secrets.APPLE_KEYCHAIN }}
APPLE_KEYCHAIN_PROFILE: ${{ secrets.APPLE_KEYCHAIN_PROFILE }}
run: ${{ matrix.command }}

- name: Upload packaged artifacts
uses: actions/upload-artifact@v4
with:
name: katasensei-${{ matrix.name }}
name: GoMentor-${{ matrix.name }}
path: |
release/**/*.AppImage
release/**/*.deb
Expand All @@ -79,9 +122,11 @@ jobs:

github-release:
name: Publish GitHub Release
needs: package
needs:
- release-preflight
- package
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
if: needs.release-preflight.outputs.can-package == 'true' && startsWith(github.ref, 'refs/tags/')

steps:
- name: Download artifacts
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@ dist
release
.DS_Store
*.log
.katasensei
.gomentor
__pycache__
*.pyc
coverage
release-evidence
.playwright-cli

*.tsbuildinfo

Expand Down
13 changes: 11 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Changelog

All notable changes to KataSensei will be documented here.
All notable changes to GoMentor will be documented here.

This project follows semantic versioning once public releases begin.

## 0.1.0 - Unreleased
## 0.2.0-beta.1 - P0 Beta Candidate

### Added

Expand All @@ -22,10 +22,19 @@ This project follows semantic versioning once public releases begin.
- Markdown and JSON report output.
- Cross-platform CI for macOS, Windows, and Linux.
- GitHub Release workflow for macOS, Windows, and Linux artifacts.
- P0 release readiness checks for automation, assets, installers, signing, Windows smoke, and visual QA.
- Local release evidence collection under `release-evidence/`.

### Fixed

- GPT/reasoning model response parsing when no plain `content` field is returned.
- Fox-style SGF komi values such as `KM[375]`.
- SGF parser incorrectly reading comments and variations as mainline moves.
- Board and winrate graph layout overlap in the center workspace.

### Known Issues

- Windows ARM64 is not supported in the P0 beta because the bundled KataGo manifest only supports Windows x64.
- macOS public distribution requires Developer ID signing and notarization before tagging.
- Windows public distribution should use an EV/OV certificate or Microsoft Trusted Signing; unsigned installers are internal beta only.
- Windows 11 x64 real-machine smoke and visual QA evidence are required before creating `v0.2.0-beta.1`.
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing to KataSensei
# Contributing to GoMentor

Thanks for helping build KataSensei. This project sits at the intersection of Go education, local desktop engineering, KataGo analysis, and LLM agent design, so changes should be careful and grounded.
Thanks for helping build GoMentor. This project sits at the intersection of Go education, local desktop engineering, KataGo analysis, and LLM agent design, so changes should be careful and grounded.

## Development Setup

Expand Down Expand Up @@ -59,7 +59,7 @@ When adding a tool:
- TypeScript for Electron and React code.
- Keep IPC boundaries explicit and typed in `src/main/lib/types.ts`.
- Prefer structured SGF/KataGo parsing over string heuristics.
- Keep local file access inside KataSensei-managed directories unless the user explicitly chooses files.
- Keep local file access inside GoMentor-managed directories unless the user explicitly chooses files.

## Release Process

Expand Down
Loading
Loading