backup: an instance backs up into a synced folder - backup init makes a bare repository under <target>/git its origin, backup run and publish mirror the machine data into <target>/<machine>/, doctor warns about .git in a synced folder (#186); 10.0.0-beta.10
CI / verify (push) Successful in 8m24s
CI / pwsh (push) Successful in 2m45s
Release / release (push) Successful in 34s
Release / wiki-mirror (push) Skipped

Files changed:
- CHANGES.md
- INSTALL.md
- VERSION
- docs/explanation/configuration-tiers.md
- docs/how-to/README.md
- docs/how-to/back-up-to-a-synced-folder.md
- docs/reference/commands/README.md
- docs/reference/commands/git.md
- docs/reference/commands/instance-health.md
- docs/reference/configuration.md
- instructions/publish-cycle.md
- instructions/setup-instance.md
- tools/CONTRACT.md
- tools/README.md
- tools/chemenu/backup.py
- tools/chemenu/cli.py
- tools/chemenu/cli_contract.py
- tools/chemenu/commands/backup_cmd.py
- tools/chemenu/commands/doctor.py
- tools/chemenu/commands/git_publish.py
- tools/chemenu/config_shapes.py
- tools/chemenu/reference_doc.py
- tools/chemenu/tests/conftest.py
- tools/chemenu/tests/test_backup.py
- tools/chemenu/tests/test_config_shapes.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
This commit is contained in:
torbenandClaude Opus 5.5 committed 2026-10-12 19:39:49 +02:00
1 parent e789146116
commit 9736472f48
25 files changed
+2024 -15

No files matched your search

+6 -1
View File
@@ -52,7 +52,12 @@ consistent.
to commit locally with `--no-push`, and run that only on their answer. Never push by hand
(AGENTS.md invariant 5): the next `publish` that reaches the remote sends the local commit
together with whatever is new. A local-only instance, which has no remote at all, passes
`--no-push` on every call ([setup-instance.md](setup-instance.md), step 4).
`--no-push` on every call ([setup-instance.md](setup-instance.md), step 3).
- **A `WARN` that the machine-data backup failed?** The commit and the push stand, and `publish`
exited 0. Show the user the line - it names the reason, a synced folder that is not there or not
writable, say. Do **not** run `publish` again: it would have nothing to push and back nothing up.
Once the user has fixed the cause, `tools/wikitool backup run` repeats the backup
([docs/how-to/back-up-to-a-synced-folder.md](../docs/how-to/back-up-to-a-synced-folder.md)).
- **Query or lint pass?** Neither auto-publishes. Run `publish` only if asked to.
- **Nothing under `kb/` changed?** Skip steps 1 and 2; a change to `tools/` or `instructions/`
does not affect the catalog.
+8
View File
@@ -122,6 +122,14 @@ one it needs before that.
- Not given: stay local - then **every** later `tools/wikitool publish` needs a `--no-push`
(which also drops its branch check, see step 1). Without it, `publish` ends with exit 1
before it commits anything, because there is no remote to publish to.
- No git server, but a folder a sync client uploads (OneDrive and the like): offer a backup
into it. The working tree stays where it is - outside that folder - and a bare repository in
the folder becomes `origin`, with the files of this machine that are not in git mirrored
beside it. The user writes the `backup` section of `.wikitool-local.json` by hand (its
fields are gates, so `config set` refuses them); then run `tools/wikitool backup init` and
show the user any `remotes.allowed_push_urls` entry it prints, for them to add. The whole
procedure is [docs/how-to/back-up-to-a-synced-folder.md](../docs/how-to/back-up-to-a-synced-folder.md).
Until it is done, treat the instance as local.
4. **Decision point - authoring conventions.** The release ships no filled-in conventions, only
`kb/CONVENTIONS.md.template` and one `kb/<name>/COLLECTION.md.template` per collection. Both