fix: address Devin review round 4 — bash arithmetic, CalVer max, docs

- smoke-test.sh: replace ((PASS++)) with PASS=$((PASS + 1)) to avoid
  set -e abort when counter is 0 (bash returns exit 1 for ((0)))
- CalVer: use max(N) from existing tags instead of count, safe when
  tags are deleted (e.g. deprecated version cleanup)
- CLAUDE.md: update schema version from v2 to v3

663 tests pass.
This commit is contained in:
ZdenekSrotyr 2026-04-10 14:39:16 +02:00
parent dc8a9275e6
commit 40cca627be
3 changed files with 6 additions and 5 deletions

View file

@ -61,8 +61,9 @@ jobs:
TAG_CLAIMED=false
for ATTEMPT in 1 2 3 4 5; do
git fetch --tags --force
EXISTING=$(git tag -l "*-${YEAR_MONTH}.*" | wc -l | tr -d ' ')
N=$((EXISTING + 1))
# Use max(N) not count — safe even if tags are deleted
MAX_N=$(git tag -l "*-${YEAR_MONTH}.*" | sed 's/.*\.//' | sort -n | tail -1)
N=$(( ${MAX_N:-0} + 1 ))
VERSION="${YEAR_MONTH}.${N}"
TAG="${CHANNEL}-${VERSION}"

View file

@ -154,7 +154,7 @@ Auth providers in `app/auth/` (FastAPI-based):
## Key Implementation Details
### DuckDB Schema (src/db.py)
- Schema v2 with auto-migration from v1
- Schema v3 with auto-migration from v1→v2→v3
- `table_registry`: id, name, source_type, bucket, source_table, query_mode, sync_schedule, etc.
- `sync_state`, `sync_history`: track extraction progress
- `users`, `dataset_permissions`, `audit_log`: auth + RBAC

View file

@ -13,10 +13,10 @@ check() {
local name="$1" ok="$2"
if [ "$ok" = "true" ]; then
echo " PASS $name"
((PASS++))
PASS=$((PASS + 1))
else
echo " FAIL $name"
((FAIL++))
FAIL=$((FAIL + 1))
fi
}