# WKAppBot Versioning Rules

## How patch version is calculated (auto, no tags needed)

`Directory.Build.props` sets `WKAppBotBaseVersion` (e.g. `4.6`).
At build time, the MSBuild target runs:

```
git log -1 -S "<WKAppBotBaseVersion>4.6</WKAppBotBaseVersion>" -- Directory.Build.props
```

This finds the **bump commit** -- the commit that first introduced the current value.
Patch = number of commits since that bump commit.

So `4.6.3` means: bump commit + 3 more commits on top.

---

## !️ Minor version bump -- MUST commit these 3 files together

When bumping minor version (e.g. `4.6 -> 4.7`):

| File | What to change |
|------|---------------|
| `csharp/Directory.Build.props` | `<WKAppBotBaseVersion>4.7</WKAppBotBaseVersion>` |
| `CLAUDE.md` | Header line: `# WKAppBot v4.7.0 - ...` |
| `VERSIONING.md` | Update version references if needed |

**If you skip the bump commit:** git pickaxe won't find the new version string
-> patch defaults to 0 and stays 0 forever until you commit the bump.
Features committed before the bump will show under the old minor version.

---

## Current version

`7.6.0` -- bumped at 2026-06-09 -- aligned to Core base 7.6. wkdoctor agy (antigravity CLI) integration: check 08-harness-connection for agy + gemini settings auto-recovery; Claude settings validation + wildcard bypass rules; tool alias symlink auto-repair (PATH order + doctor-bin fallback); agy wrapper shim policy revert (delegate to wrapper install); ghost score/depth penalty normalization

## Previous version

`7.5.35` -- bumped at 2026-06-04 -- gg-main health check enhancements (release-notes quality, dev-repo build, GitHub status monitoring), skill browser v2 (deep-linking, SEO, sidebar nav, sonnet-reflection, 44-char preview), Chrome health filter (MainWindowHandle, exclude renderer procs), watchdog emergency-kill reap-protect, GHA auto-build skill pages, CLAUDE.md session-based pending tracking

## Previous versions

`7.4` -- bumped at 2026-05-25 -- `wkdoctor` flutter-doctor-style SDK health check (10 checks, self-healing, `-Json`), bootstrap auto-build (`setup.ps1` builds launcher on first clone), nightly schedule guard globalized to `~/.claude/settings.json` PreToolUse, `cdp open` 6-minute auth-wall hang fix (NavigateAsync capped to 3s), CDP smoke `--timeout` 9s, build-skills-registry UTF-8 BOM strip

`7.3` -- bumped at 2026-05-16 -- Chrome window position mismatch fix (session restore override, two-layer fix), IME Relay jamo-sync (kana/hangul input relay), Eye startup FileNotFoundException false positive fix (single-file publish defense), Launcher HWND ancestor-walk caller resolution (P2 ConPTY support), standard-appbot-window / standard-chrome-window skills

`7.2` -- bumped at 2026-05-08 -- `wkappbot session list` (Claude+Codex+Gemini session discovery, keyword filter, age in seconds), Korean skill search fix (UnsafeRelaxedJsonEscaping), tiered skill search (OR/AND/phrase scoring), IME Han/Yeong grace period + ForceSystemImeMode (ConPTY fix), EnsureClaudeGuideSetup auto-CLAUDE.md (global workflow keywords / project tech-stack keywords), mystery-window-diagnosis skill, suggest push via WkNotify, CDP port SHA256 enforcement, tab recycling 2s budget with alert dismiss, SuggestCheck evidence mandatory + requirement runner

`7.1` -- bumped at 2026-05-08 -- CDP port isolation (SHA256 per-CWD, 4-port block, cdp:{port} mandatory), tab recycling health check, suggest co-resolve 2-of-2 + evidence mandatory + prompt push, IME foreground sync, Claude newbie onboarding (EnsureClaudeGuideSetup), skill search tiered scoring

`6.0` -- bumped at 2026-04-19 (**milestone: accessibility narrator + stdin unification**) -- wkappbot exec/run managed launcher with loading-trace + a11y-diff streaming + --watch + --stdin-inject real-time ValuePattern injection (150ms fast-tick) + control-char signals (Ctrl+C=CloseMainWindow, Ctrl+Z=undo-keystroke-via-Hotkey) + UWP broker re-attach for Win11 Notepad/Calc + adopt-existing for HTS order-field flow + lifecycle contract (wkappbot never dies before child app), FocusSafe centralized user-idle yield, TryAdminHotSwap orphan-core cleanup, Eye idle self-swap on .new.exe, a11y grid-read clipboard bridge for MFC owner-drawn grids, Slack per-CWD reply ctx, ChatGPT EDITOR-RESCUE selector fallback, ScenarioRunner [SCENARIO:TAG] RETRY/RECOVERED/FAIL events, SuggestResolve skill-guard 7-check + evidence auto-append, AppBotEyeClaudeDetector FindPrompts focus-safe gate + 10s cache reuse

## Previous versions

`5.15` -- skipped (rolled up into 6.0 milestone bump)

`5.14` -- bumped at 2026-04-16 (--sudo launcher pre-exec gate, Core bootstrap handler with PulseStep tracing, eye --sudo non-destructive force-launch, admin Eye reuse probe, indefinite post-UAC wait, no fallback after takeover, LaunchElevatedEye pre-spawn hot-swap + reason/trail for UAC)

`5.13` -- bumped at 2026-04-07 (kill ambiguity guard --nth, CDP browser-process gate, inspect --paths UIA flat listing, Launcher TranscodeStream CP949, misc fixes)

`5.12` -- bumped at 2026-04-07 (multi-browser CDP port scan 9222-9230, 스킬 시스템 self-healing verify/audit, 샌드박스 경로 window positioning 누락 수정, newchat/handoff 스킬 프롬프트 주입)

`5.11` -- bumped at 2026-04-05 (TargetAmbiguityGuard 6-Layer, CDP state-based polling, hack-hover 라이브 오버레이, TypeViaIme focusless 입력, auto-hack 프로세스 격리, pump watchdog 강화)

`5.10` -- bumped at 2026-04-04 (Eye 100ms 파이프타임아웃, TryRenameSwap 공용화, OcrCorrectionDb 자기학습, suggest show/resolve 안전장치, CDP minimize 과잉제거+Runtime.enable 재시도, 로그 라우팅 수정, 인코딩 오염감시)

## Previous versions

| Version | Bumped | Summary |
|---------|--------|---------|
| `5.9` | 2026-04-04 | ask 다중질문 파이프라인, Q# per-tab, --intercept/--interrupt/--terminate, [An] 포맷 자동 재교육 |
| `5.8` | 2026-04-01 | file tool compatibility aliases 확장, file-write 백업 정책 통일, LG overlay guard 일반화 |
| `5.7` | 2026-04-01 | AppBotPipe hot-swap lastError 레이스 수정, EnsureEyeWatchdogTask Process.Start 안정화, web open [WEB] TabID/Title/URL 출력 |
| `5.6` | 2026-03-31 | AppBotPipe 완전 통합 + FocusLaunchTracker, 워치독 VBS 강화, 핫스왑 워치독 비활성화, windows --cmd 필터, JSON5 멀티필드 grap 패턴 (`{hwnd,pid,title,cls,proc,domain,url}` AND 검색) |
