Commit 7cc4bab
fix: resolve all remaining issues for release v0.0.2-beta.1 (#18)
* feat: complete GeneralUpdate Skill CodeGen v2 upgrade
This PR delivers a comprehensive upgrade transforming the skill suite from
a documentation-driven reference into an automated development toolkit.
- Parameterized code generator (336 combinations: 6 strategies x 7 frameworks x 2 Bowl x 4 scenes)
- BM25 search engine with 51 known issues database (8C + 11H + 20M + 12L)
- CLI skeleton: gskill init/uninstall/generate/versions/update (5 commands)
- Multi-platform support: 10 AI platform configs (Claude, Cursor, Windsurf, etc.)
- Single-command sync: _sync_all.py with --apply/--verify modes
- Root SKILL.md: developer roadmap, 5-question decision tree, anti-patterns
- All 5 sub-skill SKILL.md: narrative workflows, pre-delivery checklists, anti-pattern tables
- CLAUDE.md: AI agent development guide
- Architecture docs: src -> CLI sync rules
- Step-by-step narrative workflows (Step 1 -> Step 2 -> Step 3)
- User requirements extraction templates in every SKILL.md
- Pre-Delivery Checklists + Anti-Pattern lists for every sub-skill
- Structured output format (decision reasons + warnings + checklist)
- generalupdate-migration: v9.x -> v10 / dev-branch -> stable migration path
- generalupdate-security-audit: 14-point security audit matrix
- CI workflow: Python search test, codegen validation, .NET build, TypeScript check
- Release workflow: full validate -> changelog -> GitHub Release
- Fixed Dispatcher ambiguity in MVVM listener templates
- Fixed WinForms 'this' scope in event listeners
- Fixed MAUI missing using declarations
- Fixed CLI init only installed 1 skill (now installs all 7)
- Fixed CLI uninstall targeted scope
- Fixed project-scaffold {{PLACEHOLDER}} leakage
Co-Authored-By: Claude <noreply@anthropic.com>
* chore: add .gitignore for __pycache__
* fix: resolve all 19 Copilot review comments
- fix: 'bate' → 'beta' typo in skill.json, plugin.json, marketplace.json
- fix: skill.json version desc v10.4.6 → v10.5.0-beta.4
- fix: template.ts missing readFile import, platform path hardcoding
- fix: init.ts --ai all now routes to generateAllPlatformFiles
- fix: generate.ts command injection (execSync→spawnSync+argv)
- fix: extract.ts path injection (exec→execFile)
- fix: _sync_all.py filecmp shallow=False + --verify detects NEEDS SYNC
- fix: release.yml Windows paths on Linux runner
- fix: sync CLI assets after source changes
Co-Authored-By: Claude <noreply@anthropic.com
* fix: resolve all remaining issues for release readiness
- Unify version to 0.0.2-beta.1 across all manifests (SKILL.md, skill.json,
plugin.json, marketplace.json, READMEs)
- Fix 'bate' typo to 'beta' in all docs
- Install CLI deps and fix TypeScript type error in uninstall.ts
- Run asset sync (_sync_all.py) and verify pass
- Update BowlIntegration.cs template to match real API (BowlContext record
struct, DumpType, Normalize(), OnCrash callback)
- Verify Bowl LaunchAsync API: public Task<BowlResult> LaunchAsync(
BowlContext, CancellationToken = default)
- Verify NuGet type conflict (CS0433) resolved in v10.5.0-beta.4 — Bowl and
Core use independent namespaces, no Common.dll collision
- Update BUGS.md with verified status for both issues
- CRITICAL: Upgrade code generator templates from v10.4.6 API to v10.5.0-beta.4:
- Bootstrap.cs.template: Configinfo -> UpdateRequest
- listeners_console.cs.template: IsComplated -> IsCompleted
- bowl_notice.cs.template: deprecated MonitorParameter -> BowlContext
- DeploymentChecklist.md.template: Configinfo -> UpdateRequest
- generate.py: remove outdated v10.4.6 comments and IsComplated refs
- Create RELEASE_CHECKLIST.md as 50+ item pre-release checklist
- Full validation: 15/15 search tests, 336 codegen combos, 3 strategy
smoke tests, CLI TypeScript compile, sync verify all pass
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: address Copilot review comments — 5 items resolved
1. uninstall.ts: Replace 'as Exclude' type assertions with runtime
narrowing via Array.filter() and control-flow type narrowing
2. bowl_notice.cs.template: BackupDirectory now points to previous
version (not current version), preventing auto-restore failures
3. BUGS.md: Reconcile Core+Bowl conflict guidance — v10.5.0-beta.4
has no CS0433 conflict, Bowl is a standalone package
4. All 7 docs updated: remove 'Core+Bowl mutual exclusion' guidance,
replace with 'no conflict, reference both' for v10.5.0-beta.4
5. cli/package.json: Clarify version is independent from skill version
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: update skill docs to match v10.5.0-beta.4 API
Replace obsolete Configinfo/Common.Shared/IsComplated references:
- Configinfo -> UpdateRequest in skill docs, templates, and checklists
- GeneralUpdate.Common.Download -> GeneralUpdate.Core.Download
- IsComplated -> IsCompleted (v10.5 API uses the correct spelling)
- Fix frontmatter descriptions and user requirement templates
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: manifest.json template - appType must be string, version must be clientVersion
ManifestInfo.AppType is a string field (enum name parsed via
Enum.TryParse), and the version field key is 'clientVersion'
not 'version'. Updated template to match actual deserialization.
Discovered and verified via end-to-end integration test:
Server → Client → Download → SHA256 verify → Extract → all pass
* fix: align generated code with official cookbook and real API
Templates now match the official GeneralUpdate Beginner Cookbook pattern:
- Bootstrap.cs.template: Only 3 secrets in UpdateRequest (UpdateUrl,
ReportUrl, AppSecretKey). Identity fields auto-discovered from manifest.
- Add SetOption(Option.AppType, AppType.Client) to Client bootstrap.
- UpgradeProgram.cs.template: Add SetOption(Option.AppType, AppType.Upgrade)
and event listeners for applying progress.
- manifest.json.template: 'version' -> 'clientVersion' to match
ManifestInfo field name.
- generate.py: add --report-url argument, compute default REPORT_URL.
- Remove Manual control-flow type casting in cli/src/commands/uninstall.ts.
End-to-end verified with full official Server flow:
POST /Upgrade/Verification (AppType=1/2) -> 200
Scenario=Both -> Download 4 packages -> Hash verify -> Decompress -> Patch
-> WriteBack manifest -> IPC sent -> Launch Upgrade process
All middleware passed. All events triggered.
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 42c9600 commit 7cc4bab
14 files changed
Lines changed: 82 additions & 52 deletions
File tree
- .claude
- scripts
- generate/templates
- skills
- generalupdate-init
- generalupdate-troubleshoot
- generalupdate-ui
- cli/assets
- scripts
- generate/templates
- skills
- generalupdate-init
- generalupdate-troubleshoot
- generalupdate-ui
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
256 | 256 | | |
257 | 257 | | |
258 | 258 | | |
| 259 | + | |
| 260 | + | |
259 | 261 | | |
260 | 262 | | |
261 | 263 | | |
262 | 264 | | |
263 | 265 | | |
| 266 | + | |
264 | 267 | | |
265 | 268 | | |
266 | 269 | | |
| |||
329 | 332 | | |
330 | 333 | | |
331 | 334 | | |
| 335 | + | |
332 | 336 | | |
333 | 337 | | |
334 | 338 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | | - | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
6 | 9 | | |
7 | | - | |
8 | | - | |
| 10 | + | |
| 11 | + | |
9 | 12 | | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | 13 | | |
18 | 14 | | |
19 | 15 | | |
20 | 16 | | |
21 | 17 | | |
22 | | - | |
| 18 | + | |
| 19 | + | |
23 | 20 | | |
24 | 21 | | |
Lines changed: 17 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
| 3 | + | |
2 | 4 | | |
3 | | - | |
4 | | - | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
5 | 9 | | |
6 | 10 | | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
7 | 21 | | |
8 | 22 | | |
9 | | - | |
| 23 | + | |
10 | 24 | | |
11 | 25 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
| 5 | + | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
74 | | - | |
| 74 | + | |
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
| |||
345 | 345 | | |
346 | 346 | | |
347 | 347 | | |
348 | | - | |
| 348 | + | |
349 | 349 | | |
350 | 350 | | |
351 | 351 | | |
| |||
358 | 358 | | |
359 | 359 | | |
360 | 360 | | |
361 | | - | |
| 361 | + | |
362 | 362 | | |
363 | 363 | | |
364 | 364 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
131 | | - | |
| 131 | + | |
132 | 132 | | |
133 | 133 | | |
134 | 134 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
192 | 192 | | |
193 | 193 | | |
194 | 194 | | |
195 | | - | |
196 | | - | |
| 195 | + | |
| 196 | + | |
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
256 | 256 | | |
257 | 257 | | |
258 | 258 | | |
| 259 | + | |
| 260 | + | |
259 | 261 | | |
260 | 262 | | |
261 | 263 | | |
262 | 264 | | |
263 | 265 | | |
| 266 | + | |
264 | 267 | | |
265 | 268 | | |
266 | 269 | | |
| |||
329 | 332 | | |
330 | 333 | | |
331 | 334 | | |
| 335 | + | |
332 | 336 | | |
333 | 337 | | |
334 | 338 | | |
| |||
Lines changed: 8 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | | - | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
6 | 9 | | |
7 | | - | |
8 | | - | |
| 10 | + | |
| 11 | + | |
9 | 12 | | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | 13 | | |
18 | 14 | | |
19 | 15 | | |
20 | 16 | | |
21 | 17 | | |
22 | | - | |
| 18 | + | |
| 19 | + | |
23 | 20 | | |
24 | 21 | | |
Lines changed: 17 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
| 3 | + | |
2 | 4 | | |
3 | | - | |
4 | | - | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
5 | 9 | | |
6 | 10 | | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
7 | 21 | | |
8 | 22 | | |
9 | | - | |
| 23 | + | |
10 | 24 | | |
11 | 25 | | |
0 commit comments