7f4decee26
- Add `kb reindex` command with confirmation prompt and --yes flag - Add implicit note shorthand: `kb "my note"` submits a note directly - Rename `add` to `addfile`, remove --note/--title/--type flags - Add client-side file extension validation before upload - Add `kb examples` command for common usage patterns - Update README, SKILL.md, and main specs - Archive completed changes and sync delta specs BREAKING: `kb add` renamed to `kb addfile`, `kb add --note` replaced by `kb "text"` Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.6 KiB
2.6 KiB
1. Client Compatibility Check
- 1.1 Create
client/MIN_ENGINE_VERSIONfile with initial value2.0.0 - 1.2 Add
MinEngineVersionvariable toclient/cmd/root.go(set via ldflags, defaultdev) - 1.3 Update
client/Makefileto readMIN_ENGINE_VERSIONfile and inject via-ldflags "-X cmd.MinEngineVersion=..."alongside existingVersion - 1.4 Add
CheckEngineVersion(minVersion string)method toclient/internal/api/client.gothat callsGET /api/v1/status, parsesversionfield, and compares againstminVersionusing semver major.minor.patch - 1.5 Add
versionChecked boolfield toClientstruct; guardCheckEngineVersionso it runs at most once per Client instance - 1.6 Call
CheckEngineVersionat the start ofClient.do()(before executing the actual request); skip ifMinEngineVersionis empty ordev - 1.7 On version mismatch: print
Error: kb client vX.Y.Z requires engine vM.N.P+ (connected engine is vA.B.C)\nUpdate your engine image to engine-vM.N.P or later.to stderr andos.Exit(1) - 1.8 On status endpoint unreachable: skip version check silently (let the actual request surface the error)
2. Release Script — Client
- 2.1 Create
release-client.shextracting client-specific logic fromrelease.sh: version bump ofclient/VERSION, Go binary build, git tagclient-vX.Y.Z, Gitea release with binary assets - 2.2 Release notes template: include
MinEngineVersionrequirement (e.g. "Requires engine v2.0.0+") - 2.3 Pass
MIN_ENGINE_VERSIONtomake allin the build step
3. Release Script — Engine
- 3.1 Create
release-engine.shextracting engine-specific logic fromrelease.sh: version bump ofengine/VERSION, Docker image build (nvidia + rocm), git tagengine-vX.Y.Z, Gitea release, image push - 3.2 Release notes template: include Docker pull commands with
engine-vX.Y.Zprefixed tags
4. Cleanup
- 4.1 Remove old
release.sh(replaced by the two new scripts) - 4.2 Update Docker image tag format in release scripts from
vX.Y.Z-nvidiatoengine-vX.Y.Z-nvidia(and same for rocm/latest)
5. Testing
- 5.1 Test client version check passes when engine version >= MinEngineVersion
- 5.2 Test client version check fails with correct error message when engine version < MinEngineVersion
- 5.3 Test client skips version check when MinEngineVersion is empty or
dev - 5.4 Test client skips version check when engine is unreachable
- 5.5 Dry-run
release-client.sh --dry-run --giteaand verify correct tag format and build - 5.6 Dry-run
release-engine.sh --dry-run --giteaand verify correct tag format and image names