fix: resolve all remaining issues for release v0.0.2-beta.1#17
Merged
Conversation
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>
- 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
- 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>
All 15 conflicts were add/add between our v10.5.0-beta.4 API changes and main's outdated v10.4.6 code. Accepted ours (HEAD) in all cases — the correct v10.5 API changes. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Prepares the repository for the v0.0.2-beta.1 beta release by aligning published metadata/version strings, updating codegen templates and advanced Bowl examples to the v10.5.0-beta.4 API surface, and fixing remaining CLI TypeScript issues.
Changes:
- Unify skill/plugin version strings to
0.0.2-beta.1and fixbate→betain docs. - Update code generator templates and Bowl integration examples to the v10.5.0-beta.4 API (e.g.,
UpdateRequest,IsCompleted,BowlContext). - Add a comprehensive release checklist and commit CLI dependency lockfile/build fixes.
Reviewed changes
Copilot reviewed 22 out of 23 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| SKILL.md | Fixes version string typo (bate → beta). |
| skill.json | Bumps skill manifest version to 0.0.2-beta.1. |
| RELEASE_CHECKLIST.md | Adds pre-release checklist and validation commands. |
| README.zh-Hans.md | Fixes version string typo (bate → beta). |
| README.md | Fixes version string typo (bate → beta). |
| README.en.md | Fixes version string typo (bate → beta). |
| cli/src/commands/uninstall.ts | Adjusts uninstall typing to satisfy TS build. |
| cli/package-lock.json | Adds lockfile for CLI dependencies (npm lockfile v3). |
| cli/assets/skills/generalupdate-advanced/templates/BowlIntegration.cs | Updates Bowl example to BowlContext/LaunchAsync and expands guidance. |
| cli/assets/scripts/generate/templates/listeners_console.cs.template | Updates event arg typo IsComplated → IsCompleted. |
| cli/assets/scripts/generate/templates/DeploymentChecklist.md.template | Updates docs from Configinfo → UpdateRequest. |
| cli/assets/scripts/generate/templates/bowl_notice.cs.template | Updates Bowl snippet to BowlContext and new fields. |
| cli/assets/scripts/generate/templates/Bootstrap.cs.template | Updates bootstrap template to UpdateRequest + new namespaces. |
| cli/assets/scripts/generate.py | Updates generator warnings/notes for v10.5.0-beta.4 and removes outdated note. |
| BUGS.md | Updates audit report and documents v10.5.0-beta.4 migration status. |
| .claude/skills/generalupdate-advanced/templates/BowlIntegration.cs | Mirrors updated Bowl integration example in source skill templates. |
| .claude/scripts/generate/templates/listeners_console.cs.template | Mirrors console listener IsCompleted fix in source templates. |
| .claude/scripts/generate/templates/DeploymentChecklist.md.template | Mirrors checklist UpdateRequest fix in source templates. |
| .claude/scripts/generate/templates/bowl_notice.cs.template | Mirrors Bowl notice snippet changes in source templates. |
| .claude/scripts/generate/templates/Bootstrap.cs.template | Mirrors bootstrap template update in source templates. |
| .claude/scripts/generate.py | Mirrors generator warning/notes updates in source scripts. |
| .claude-plugin/plugin.json | Updates plugin version to 0.0.2-beta.1. |
| .claude-plugin/marketplace.json | Updates marketplace metadata/plugin versions to 0.0.2-beta.1. |
Files not reviewed (1)
- cli/package-lock.json: Generated file
Comment on lines
99
to
106
| if (aiType === 'all') { | ||
| for (const type of initialDetected) { | ||
| const removed = await removeSkillDir(baseDir, type); | ||
| const removed = await removeSkillDir(baseDir, type as Exclude<AIType, 'all'>); | ||
| allRemoved.push(...removed); | ||
| } | ||
| } else { | ||
| const removed = await removeSkillDir(baseDir, aiType); | ||
| const removed = await removeSkillDir(baseDir, aiType as Exclude<AIType, 'all'>); | ||
| allRemoved.push(...removed); |
Comment on lines
+8
to
13
| ExtendedField = "{{CLIENT_VERSION}}", | ||
| DumpFileName = "{{CLIENT_VERSION}}_fail.dmp", | ||
| FailFileName = "{{CLIENT_VERSION}}_fail.json", | ||
| FailDirectory = System.IO.Path.Combine({{INSTALL_PATH}}, "fail", "{{CLIENT_VERSION}}"), | ||
| BackupDirectory = System.IO.Path.Combine({{INSTALL_PATH}}, "{{CLIENT_VERSION}}"), | ||
| WorkModel = "Upgrade", |
Comment on lines
+8
to
13
| ExtendedField = "{{CLIENT_VERSION}}", | ||
| DumpFileName = "{{CLIENT_VERSION}}_fail.dmp", | ||
| FailFileName = "{{CLIENT_VERSION}}_fail.json", | ||
| FailDirectory = System.IO.Path.Combine({{INSTALL_PATH}}, "fail", "{{CLIENT_VERSION}}"), | ||
| BackupDirectory = System.IO.Path.Combine({{INSTALL_PATH}}, "{{CLIENT_VERSION}}"), | ||
| WorkModel = "Upgrade", |
Comment on lines
+48
to
+57
| ### 1. NuGet 类型冲突(v10.5.0-beta.4 ✅ 已解决) | ||
|
|
||
| `GeneralUpdate.Common` 库的类型同时在 `GeneralUpdate.Core` 和 `GeneralUpdate.Bowl` 中发布。 | ||
| 当项目同时引用 Bowl 和 Core 时,会出现 CS0433 编译错误。 | ||
| `GeneralUpdate.Common` 独立命名空间在 v10.4.6 中存在于 `GeneralUpdate.Core` 中,与 `GeneralUpdate.Bowl` 冲突。 | ||
| **v10.5.0-beta.4 已解决**:Bowl 项目不再引用 Core,各自使用独立的 `GeneralUpdate.Bowl` / `GeneralUpdate.Core` 命名空间。 | ||
|
|
||
| **解决方案**:使用 Bowl 时只引用 `GeneralUpdate.Bowl`(它依赖 Core),不单独引用 Core。 | ||
| | 场景 | 引用方式 | 状态 | | ||
| |------|---------|:----:| | ||
| | 有 Bowl | 只引用 `GeneralUpdate.Bowl`(不单独引用 Core) | ✅ 已验证 | | ||
| | 无 Bowl | 只引用 `GeneralUpdate.Core` | ✅ 正常 | | ||
| | 两者都用 | 同时引用 Core + Bowl | ✅ 无冲突 | |
Comment on lines
4
to
6
| "description": "AI-powered skill suite for integrating GeneralUpdate (.NET auto-update) into any .NET application. Generates dual-project scaffolding (Client+Upgrade), full-state update UI (6 frameworks), 6 update strategies (Client-Server/OSS/Silent/Differential/CVP/Push), advanced extension points (Bowl crash daemon, IPC replacement, AOT), and deep troubleshooting (50+ known issues). All templates target NuGet v10.5.0-beta.4.", | ||
| "version": "0.0.1-beta.1", | ||
| "version": "0.0.2-beta.1", | ||
| "author": "JusterZhu", |
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>
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
Resolves all remaining issues preventing a beta release of GeneralUpdate Skill CodeGen. Full details in commit messages.
Key Changes
0.0.2-beta.1across all manifestsValidation
Note: Previous PR #16 was merged then reverted per author request — this replaces it.