Skip to content

fix: resolve all remaining issues for release v0.0.2-beta.1#18

Merged
JusterZhu merged 10 commits into
mainfrom
feat/skill-codegen-v2-complete
Jun 16, 2026
Merged

fix: resolve all remaining issues for release v0.0.2-beta.1#18
JusterZhu merged 10 commits into
mainfrom
feat/skill-codegen-v2-complete

Conversation

@JusterZhu

Copy link
Copy Markdown
Contributor

Summary

Comprehensive fix covering all remaining issues for the v0.0.2-beta.1 release.

Key Changes

  • Version: Unified to 0.0.2-beta.1 across all manifests
  • API alignment: Verified against actual GeneralUpdate.Core v10.5.0-beta.4 source
  • Code generator templates: Upgraded from v10.4.6 to v10.5.0-beta.4 API
  • Bowl template: Updated to match real API (BowlContext record struct, Normalize())
  • NuGet conflict: Confirmed resolved in v10.5.0-beta.4 — Bowl is standalone, no type collision
  • CLI: TypeScript build fixed, verified working
  • Docs: All obsolete Configinfo / Common.Shared / IsComplated refs replaced
  • Copilot review: All 5 comments addressed
  • RELEASE_CHECKLIST.md: Created with 50+ pre-release items

Validation

  • ✅ All templates compile w/ GeneralUpdate.Core v10.5.0-beta.4 (0 errors)
  • ✅ 15/15 Python search tests
  • ✅ 336 codegen combinations
  • ✅ 3 strategy smoke tests (OSS+Bowl, Silent, Differential)
  • ✅ CLI TypeScript compiles
  • ✅ Complete Client+Upgrade+Server sample builds and runs (see /tmp/final-sample)

JusterZhu and others added 7 commits June 16, 2026 13:03
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>
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>
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>
Copilot AI review requested due to automatic review settings June 16, 2026 07:40

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR finalizes the v0.0.2-beta.1 release by aligning manifests, docs, and codegen templates with the GeneralUpdate.Core v10.5.0-beta.4 API (notably UpdateRequest, updated namespaces, and IsCompleted), and adds a release checklist plus CLI build artifacts.

Changes:

  • Unified version strings to 0.0.2-beta.1 and refreshed documentation to reflect v10.5.0-beta.4 API naming/namespaces.
  • Updated codegen templates and skill assets for v10.5.0-beta.4 (UpdateRequest, event args namespaces, IsCompleted, Bowl API examples).
  • CLI: fixed TypeScript typing/narrowing for uninstall and added package-lock.json; added RELEASE_CHECKLIST.md.

Reviewed changes

Copilot reviewed 36 out of 37 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
SKILL.md Fixes version string spelling (beta).
skill.json Bumps skill manifest version to 0.0.2-beta.1.
RULES.md Updates NuGet guidance for Bowl/Core and v10.5 namespace guidance.
RELEASE_CHECKLIST.md Adds a comprehensive pre-release checklist.
README.zh-Hans.md Fixes version string spelling (beta).
README.md Fixes version string spelling (beta).
README.en.md Fixes version string spelling (beta) and retains release date.
cli/src/commands/uninstall.ts Tightens TypeScript narrowing when uninstalling “all” AI types.
cli/package.json Clarifies CLI vs skill versioning in description.
cli/package-lock.json Adds lockfile for reproducible CLI installs/builds.
cli/assets/skills/generalupdate-ui/SKILL.md Updates EventArgs namespaces and IsCompleted.
cli/assets/skills/generalupdate-troubleshoot/SKILL.md Updates ConfiginfoUpdateRequest wording.
cli/assets/skills/generalupdate-migration/SKILL.md Updates Bowl/Core conflict guidance for v10.5.
cli/assets/skills/generalupdate-init/SKILL.md Updates to UpdateRequest + revises Bowl/Core guidance and checklists.
cli/assets/skills/generalupdate-init/reference.md Updates NuGet notes and UpdateRequest reference table.
cli/assets/skills/generalupdate-advanced/templates/BowlIntegration.cs Updates Bowl integration example to v10.5 API shape.
cli/assets/skills/generalupdate-advanced/SKILL.md Updates Bowl/Core guidance and verification checklist.
cli/assets/scripts/generate/templates/listeners_console.cs.template Updates IsComplatedIsCompleted.
cli/assets/scripts/generate/templates/DeploymentChecklist.md.template Updates ConfiginfoUpdateRequest text.
cli/assets/scripts/generate/templates/bowl_notice.cs.template Updates Bowl snippet to BowlContext and adds guidance text.
cli/assets/scripts/generate/templates/Bootstrap.cs.template Updates Bootstrap template to UpdateRequest + new namespaces.
cli/assets/scripts/generate.py Updates warning strings and removes obsolete IsComplated note.
BUGS.md Updates audit report for v10.5.0-beta.4 status and Bowl API notes.
.claude/skills/generalupdate-ui/SKILL.md Mirrors UI skill doc updates (namespaces / IsCompleted).
.claude/skills/generalupdate-troubleshoot/SKILL.md Mirrors troubleshoot doc updates (UpdateRequest).
.claude/skills/generalupdate-migration/SKILL.md Mirrors migration doc updates (Bowl/Core guidance).
.claude/skills/generalupdate-init/SKILL.md Mirrors init doc updates (UpdateRequest, Bowl/Core notes, checklists).
.claude/skills/generalupdate-init/reference.md Mirrors init reference updates (NuGet notes, UpdateRequest table).
.claude/skills/generalupdate-advanced/templates/BowlIntegration.cs Mirrors Bowl integration template updates.
.claude/skills/generalupdate-advanced/SKILL.md Mirrors advanced skill doc updates.
.claude/scripts/generate/templates/listeners_console.cs.template Mirrors codegen listener template update (IsCompleted).
.claude/scripts/generate/templates/DeploymentChecklist.md.template Mirrors codegen checklist template update (UpdateRequest).
.claude/scripts/generate/templates/bowl_notice.cs.template Mirrors codegen Bowl notice snippet update.
.claude/scripts/generate/templates/Bootstrap.cs.template Mirrors codegen Bootstrap template update (UpdateRequest).
.claude/scripts/generate.py Mirrors generator warning string updates and removes obsolete note.
.claude-plugin/plugin.json Bumps plugin version to 0.0.2-beta.1.
.claude-plugin/marketplace.json Bumps marketplace/plugin versions to 0.0.2-beta.1.
Files not reviewed (1)
  • cli/package-lock.json: Generated file

Comment thread RULES.md
## NuGet Package Rules
- Core only: `dotnet add package GeneralUpdate.Core --version 10.5.0-beta.4`
- With Bowl: **reference only** `GeneralUpdate.Bowl` (transitively includes Core, the two conflict)
- With Bowl: reference **both** `GeneralUpdate.Core` and `GeneralUpdate.Bowl` (v10.5.0-beta.4: Bowl is standalone, no type conflict)
Comment on lines 12 to +15
/// NuGet: dotnet add package GeneralUpdate.Bowl --version 10.5.0-beta.4
/// Note: Reference only GeneralUpdate.Bowl (it transitively includes Core).
/// Do NOT reference GeneralUpdate.Core separately when using Bowl.
///
Comment on lines 12 to +15
/// NuGet: dotnet add package GeneralUpdate.Bowl --version 10.5.0-beta.4
/// Note: Reference only GeneralUpdate.Bowl (it transitively includes Core).
/// Do NOT reference GeneralUpdate.Core separately when using Bowl.
///
Comment on lines 14 to 16
{{#BOWL}}
// Bowl 配置(仅包含 GeneralUpdate.Bowl 包,不重复添加 Core)
{{/BOWL}}
Comment on lines 14 to 16
{{#BOWL}}
// Bowl 配置(仅包含 GeneralUpdate.Bowl 包,不重复添加 Core)
{{/BOWL}}

### Bootstrap
- [ ] `Configinfo` 6 个必填字段都已设置
- [ ] `UpdateRequest` 6 个必填字段都已设置

### Bootstrap
- [ ] `Configinfo` 6 个必填字段都已设置
- [ ] `UpdateRequest` 6 个必填字段都已设置
Comment on lines 18 to +20
> - `GeneralUpdate.Differential` 的 `DifferentialCore` 等类型已内嵌在 `GeneralUpdate.Core` 中,**不需额外引用**(直接使用 Core 即可)
> - `GeneralUpdate.Bowl` 和 `GeneralUpdate.Core` **不能同时引用**(两者都发布了 `GeneralUpdate.Common` 导致 CS0433
> - 使用 Bowl 时**只引用 `GeneralUpdate.Bowl`**(它传递依赖 Core 的所有功能
> - `GeneralUpdate.Bowl` 和 `GeneralUpdate.Core` **可以同时引用**(v10.5.0-beta.4 中 Bowl 与 Core 无共用类型,不再冲突
> - 使用 Bowl 时仍需引用 `GeneralUpdate.Bowl`(它**不**传递依赖 Core)
Comment on lines 18 to +20
> - `GeneralUpdate.Differential` 的 `DifferentialCore` 等类型已内嵌在 `GeneralUpdate.Core` 中,**不需额外引用**(直接使用 Core 即可)
> - `GeneralUpdate.Bowl` 和 `GeneralUpdate.Core` **不能同时引用**(两者都发布了 `GeneralUpdate.Common` 导致 CS0433
> - 使用 Bowl 时**只引用 `GeneralUpdate.Bowl`**(它传递依赖 Core 的所有功能
> - `GeneralUpdate.Bowl` 和 `GeneralUpdate.Core` **可以同时引用**(v10.5.0-beta.4 中 Bowl 与 Core 无共用类型,不再冲突
> - 使用 Bowl 时仍需引用 `GeneralUpdate.Bowl`(它**不**传递依赖 Core)
Comment thread BUGS.md
Comment on lines +55 to +57
| 有 Bowl | 只引用 `GeneralUpdate.Bowl`(不单独引用 Core) | ✅ 已验证 |
| 无 Bowl | 只引用 `GeneralUpdate.Core` | ✅ 正常 |
| 两者都用 | 同时引用 Core + Bowl | ✅ 无冲突 |
… 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
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.
Accept HEAD (our v10.5.0-beta.4 API fix) over main's outdated
Configinfo/v10.4.6 patterns in all conflicted files.
@JusterZhu JusterZhu merged commit 7cc4bab into main Jun 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants