Guidance for future work in this repository.
- Prefer small, targeted changes.
- Do not commit, tag, push, or publish unless explicitly asked.
- Avoid assuming extra dependencies are available unless verified in the repo or by the user.
- Prefer shell-native tooling and existing project scripts over introducing new tooling.
package.jsonis the source of truth for the project version.- Do not maintain a separate checked-in version file.
- The standalone SEA build uses
B4FUN_AI_VERSIONwhen set and otherwise injects the package version. - When bumping a release version, update:
package.jsonpackage-lock.json- release/install documentation that references a version
- Bump the version in
package.json. - Run tests:
npm testnpm run check
- Build the SEA artifact:
npm run build:sea
- Verify the built binary reports the expected version:
dist/sea/ai --version
- Verify install flow from the release URL if needed:
curl -fsSL https://raw.githubusercontent.com/b4fun/ai/main/install.sh | AI_INSTALL_DIR=/tmp/... AI_INSTALL_SHELL=0 sh -s -- vX.Y.Z
- Create the git commit and tag only when requested.
- Publish the GitHub release only after the tag exists and the workflow assets are attached.
- The release workflow should smoke test the SEA binary.
- The release smoke test should confirm
dist/sea/ai --versionmatches the release tag without its leadingv. - If the release artifact fails, check whether the issue is:
- version mismatch
- runtime access to repo files that do not exist in SEA
- installer download path or GitHub release asset handling
- Prefer stable GitHub release URL patterns over parsing JSON when possible.
- For tagged releases, use the release download URL pattern.
- For latest releases, use the
latest/downloadURL pattern. - Keep checksum verification in place.
- Update README and install docs when user-facing release behavior changes.
- If the release flow changes, reflect that here.