| Current version | Updated | Audience | Start here |
|---|---|---|---|
v0.2.3 |
2026-04-13 |
maintainers and release operators | README_en.md |
This manual is for the people who publish and maintain the repository. It is not usage documentation. It is the place to keep release flow, tags, remote sync, and published messaging clean.
| If you need to... | Go to |
|---|---|
| prepare plugin upload metadata | 2. Plugin Upload Metadata |
| update GitHub About | 3. GitHub About Setup |
| run the release flow | 4. Versioning and Releases |
| sync code and tags upstream | 5. Code Sync Workflow |
| verify current Skills maintenance reality | 6. Skills Update Maintenance Notes |
| Doc | Purpose |
|---|---|
| README_en.md | project overview, quick start, prompt entry points |
| INSTALL_AND_CONFIG_en.md | installation, config, troubleshooting |
| DEVELOPER_GUIDE_en.md | code layout and extension points |
| API_REFERENCE_en.md | /api/* surface and call sequences |
| GITHUB_ABOUT_en.md / GITHUB_ABOUT_zh.md | repository About templates |
| SKILLS_UPDATE_STATUS_en.md / SKILLS_UPDATE_STATUS_zh.md | current Skills update capability status |
Suggested values when publishing the plugin:
[Plugin]:astrbot_plugin_onesync- Metadata JSON:
{
"name": "astrbot_plugin_onesync",
"display_name": "OneSync",
"desc": "Extensible software updater plugin for AstrBot with scheduling, auto-update, mirror fallback, and state tracking.",
"author": "Jacobinwwey",
"repo": "https://github.com/Jacobinwwey/astrbot_plugin_onesync",
"tags": ["updater", "automation", "devops", "zeroclaw", "astrbot"],
"social_link": "https://github.com/Jacobinwwey"
}In-repo file reference:
Direct templates:
Recommendations:
- Keep description short and clear (within 160 chars).
- Include core topics like
astrbot-plugin,updater,github-mirror. - Use
logo_256.pngorlogo.pngas social preview.
Run in the plugin repository:
./scripts/release.sh v0.2.3This script will:
- Update
metadata.yamlversion - Add a missing section to
CHANGELOG.md - Commit, tag, and push automatically
NO_PUSH=1 ./scripts/release.sh v0.2.3GitHub releases should default to bilingual notes, not English-only notes.
Recommended sequence:
- create or update
docs/releases/vX.Y.Z.md - keep the file structured as “complete English + complete Chinese”
- finish pre-release verification first, then publish or edit the GitHub release with
--notes-file
Recommended command:
gh release edit v0.2.3 \
--title "v0.2.3 · english title / 中文标题" \
--notes-file docs/releases/v0.2.3.mdTemplate file:
- New features: bump
MINOR(for examplev0.2.0) - Bugfix/compatibility: bump
PATCH(for examplev0.1.1)
metadata.yamlversion:v0.2.3- Embedded WebUI OpenAPI version:
0.2.3 - Current full regression baseline:
pytest -q -> 204 passed
git status
git add .
git commit -m "feat: xxx"
git push origin maingit push origin main --tagsBefore pushing, verify:
README.mdkeeps user-facing content onlydocs/includes maintainer documentation in both zh/en_conf_schema.jsonis valid JSON- Python files pass syntax checks
pytest -qpasses before remote sync- WebUI JavaScript has no syntax errors
- WebUI routes are reachable (
/api/healthand/api/config)
When a change affects both implementation and operator understanding, do not update only one status file.
At minimum, keep these entry documents aligned:
README.md/README_en.mddocs/SKILLS_UPDATE_STATUS_zh.md/docs/SKILLS_UPDATE_STATUS_en.mddocs/releases/vX.Y.Z.md- relevant
docs/plans/*anddocs/brainstorms/*
If a live plugin checkout exists beside the development repository, also verify:
- whether
/root/astrbot/data/plugins/astrbot_plugin_onesync/docs/*should be synced to the running instance - whether API paths, counters, and runtime validation notes still match the current 8099 service
When reviewing the Skills management stack, separate these operations clearly:
POST /api/skills/import: rebuild local source-first snapshotSync Source: refresh upstream metadata for a sourceUpdate Install Unit/Update Collection: execute real update commands
Current implementation status:
- Source sync now supports:
- npm registry metadata
- git remote/head or local checkout metadata
- GitHub / GitLab / Bitbucket repo metadata
- Install-unit update is governed by the effective
update_plan, not bysource_kindlabels alone. - Inventory binding saves now project from persisted
manifestplus the latest skills snapshot; maintainers should no longer assume that “save bindings” must trigger an inventory rescan to become visible. - Successful command updates now write freshness anchors back to saved registry rows, so a completed update should immediately clear false
AGINGstate on the next overview rebuild. - Git-backed
skill_lock/ repo-derived sources now support managed checkout bootstrap:- if the leaf skill directory is not a git worktree, OneSync materializes a managed checkout under
plugin_data/.../skills/git_repos/ - later
sync/updatepaths prefer that checkout
- if the leaf skill directory is not a git worktree, OneSync materializes a managed checkout under
synthetic_single,derived, andlocal_custominstall units without a real package boundary are now explicitly treated asmanual_onlyinstead of generating bogus update commands.- WebUI now exposes:
POST /api/skills/aggregates/update-allPOST /api/skills/improve-all- the primary
Improve All Skillsaction - executed / skipped / source-sync breakdown in the result path
- AstrBot local-skill actions are now scope-aware by contract:
GET /api/skills/hosts/{host_id}/astrbotreturnsavailable_scopes,selected_scope, andscoped_layouts- toggle / delete / sandbox sync calls should pass explicit
scope - unavailable scopes should be handled as
reason_code = "scope_unavailable"
When diagnosing an update complaint, check the install-unit detail payload first and treat update_plan as the source of truth.
Latest live 8099 update-all verification:
candidate_install_unit_total = 20executed_install_unit_total = 14command_install_unit_total = 3source_sync_install_unit_total = 11skipped_install_unit_total = 6success_count = 8failure_count = 2precheck_failure_count = 0