Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,12 @@ jobs:
- name: Run Windows Clippy
run: cargo clippy --locked --all-targets -- -D warnings

- name: Check reproducible CLI packages on Windows
shell: bash
env:
PYTHON_BIN: python
run: bash tests/package_cli_reproducibility.sh

- name: Test Windows development installation
shell: bash
run: bash tests/dev_install_windows_smoke.sh
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "chat2db"
version = "0.2.0"
version = "0.2.1"
edition = "2024"
rust-version = "1.88"
description = "Official command-line interface for Chat2DB Community, Pro, and Local"
Expand Down
24 changes: 11 additions & 13 deletions scripts/package-cli.sh
Original file line number Diff line number Diff line change
Expand Up @@ -207,28 +207,26 @@ else:
raise SystemExit(f"error: unsupported archive type: {archive_type}")
PY

archive_contents="$("$PYTHON_BIN" - "$REPO_ROOT/dist/$ARCHIVE_NAME" "$ARCHIVE_TYPE" <<'PY'
"$PYTHON_BIN" - "$REPO_ROOT/dist/$ARCHIVE_NAME" "$ARCHIVE_TYPE" "$BINARY_NAME" <<'PY'
import sys
import tarfile
import zipfile

path, archive_type = sys.argv[1], sys.argv[2]
path, archive_type, binary_name = sys.argv[1:]
if archive_type == "zip":
with zipfile.ZipFile(path) as archive:
for name in archive.namelist():
print(name)
archive_contents = archive.namelist()
else:
with tarfile.open(path, "r:gz") as archive:
for member in archive.getmembers():
print(member.name)
archive_contents = [member.name for member in archive.getmembers()]

expected_archive_contents = ["LICENSE", "THIRD_PARTY_LICENSES.txt", binary_name]
if archive_contents != expected_archive_contents:
print("error: non-sanitized archive contents:", file=sys.stderr)
for name in archive_contents:
print(f" {name!r}", file=sys.stderr)
raise SystemExit(1)
PY
)"
expected_archive_contents="$(printf '%s\n' LICENSE THIRD_PARTY_LICENSES.txt "$BINARY_NAME")"
if [ "$archive_contents" != "$expected_archive_contents" ]; then
echo "error: non-sanitized archive contents:" >&2
printf '%s\n' "$archive_contents" >&2
exit 1
fi

# --- compute sha256 ---------------------------------------------------------
if command -v shasum >/dev/null 2>&1; then
Expand Down
5 changes: 5 additions & 0 deletions skill/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Skill Changelog

## [0.2.1] - 2026-07-23

- Fixed Windows release archive validation and added native Windows packaging
coverage.

## [0.2.0] - 2026-07-23

- Moved the Chat2DB CLI Skill into the Chat2DB-CLI repository.
Expand Down
2 changes: 1 addition & 1 deletion skill/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: chat2db-cli
description: "Operate Chat2DB Community, Pro, and Local through the chat2db CLI: inspect status, manage the app and headless runtime, work with datasources and SQL, configure MCP, manage the Skill, and update the CLI. Use for CLI-driven Chat2DB workflows, not GUI interaction."
metadata:
version: "0.2.0"
version: "0.2.1"
compatible-cli-versions: ">=0.2, <0.3"
---

Expand Down
2 changes: 1 addition & 1 deletion skill/references/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

This file is for installing, updating, and removing the `chat2db` CLI binary and the skill bundle.

The bundled Skill version is `0.2.0` and supports CLI versions
The bundled Skill version is `0.2.1` and supports CLI versions
`>=0.2, <0.3`.

## CLI Binary
Expand Down
12 changes: 6 additions & 6 deletions tests/dev_install_scripts.sh
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ cat > "$CARGO_TARGET_DIR/release/chat2db$suffix" <<SCRIPT
#!/usr/bin/env bash
# build-marker: ${CHAT2DB_TEST_BUILD_MARKER:-initial}
case "\${1:-}" in
version) echo "chat2db 0.2.0" ;;
version) echo "chat2db 0.2.1" ;;
completions) exit 0 ;;
*) exit 0 ;;
esac
Expand Down Expand Up @@ -272,7 +272,7 @@ mkdir -p "$fixture/target/release"
cat > "$fixture/target/release/chat2db" <<EOF
#!/usr/bin/env bash
: > "$stale_build_sentinel"
echo "chat2db 0.2.0"
echo "chat2db 0.2.1"
EOF
chmod 0755 "$fixture/target/release/chat2db"
run_combined "$fixture" "$home" "$home/bin" "$home/skill" "$TEST_ROOT/stale-build.log"
Expand All @@ -288,7 +288,7 @@ mkdir -p "$fixture/target/dev-install/release"
cat > "$fixture/target/dev-install/release/chat2db" <<EOF
#!/usr/bin/env bash
: > "$stale_dev_sentinel"
echo "chat2db 0.2.0"
echo "chat2db 0.2.1"
EOF
chmod 0755 "$fixture/target/dev-install/release/chat2db"
if CHAT2DB_TEST_CARGO_NO_OUTPUT=1 run_combined \
Expand Down Expand Up @@ -329,7 +329,7 @@ mkdir -p "$bin_dir"
cat > "$bin_dir/chat2db" <<EOF
#!/usr/bin/env bash
: > "$execution_sentinel"
echo "chat2db 0.2.0"
echo "chat2db 0.2.1"
EOF
chmod 0755 "$bin_dir/chat2db"
if run_combined "$fixture" "$home" "$bin_dir" "$skill_target" "$TEST_ROOT/unknown-cli.log"; then
Expand Down Expand Up @@ -394,7 +394,7 @@ if run_skill "$fixture" "$home" "$skill_target" "$TEST_ROOT/wrong-skill-provenan
fi
assert_contains "$TEST_ROOT/wrong-skill-provenance-version.log" "pass --force"
run_skill "$fixture" "$home" "$skill_target" "$TEST_ROOT/wrong-skill-provenance-version-force.log" --force
assert_contains "$skill_sidecar" "version=0.2.0"
assert_contains "$skill_sidecar" "version=0.2.1"

# Client defaults resolve to the documented Codex and Claude Code locations.
fixture="$(new_fixture clients)"
Expand Down Expand Up @@ -776,7 +776,7 @@ assert_absent "$guard"
fixture="$(new_fixture version-mismatch)"
home="$TEST_ROOT/home-version"
mkdir -p "$home"
sed -i.bak 's/^version = "0.2.0"$/version = "0.2.1"/' "$fixture/Cargo.toml"
sed -i.bak 's/^version = "0.2.1"$/version = "0.2.2"/' "$fixture/Cargo.toml"
rm -f "$fixture/Cargo.toml.bak"
if run_skill "$fixture" "$home" "$home/skill" "$TEST_ROOT/version-mismatch.log"; then
fail "Cargo and Skill version mismatch was accepted"
Expand Down
Loading