fix(go): default CacheDir to tmp/go to avoid Python collision
All checks were successful
Deploy to K8s / deploy (push) Successful in 9s
All checks were successful
Deploy to K8s / deploy (push) Successful in 9s
Previously both backends defaulted to `CacheDir=tmp` and used the same cache keys (`attendance_regular`, `attendance_juniors`, `payments_transactions`, `exceptions_dict`) but stored different shapes: Python caches post-processed view-model tuples (e.g. `(members, sorted_months)`), Go caches raw sheet rows. Whichever backend wrote last poisoned the cache for the other, producing `ValueError: too many values to unpack (expected 2, got 68)` on Python's /adults after the Go side populated the file with 68 raw CSV rows. This breaks the M5.4 `make parity` workflow that requires both backends running side-by-side. Fix: change Go's default to `tmp/go` so the two cache trees never overlap. `CACHE_DIR` env var override still works. `os.MkdirAll` already handles creating the new subdirectory on first write. Recovery for users with poisoned `tmp/`: hit /flush-cache on the Python side once after pulling, then restart the Go server. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -50,7 +50,7 @@ func Load() Config {
|
||||
return Config{
|
||||
CredentialsPath: env("CREDENTIALS_PATH", ".secret/fuj-management-bot-credentials.json"),
|
||||
BankAccount: env("BANK_ACCOUNT", "CZ8520100000002800359168"),
|
||||
CacheDir: env("CACHE_DIR", "tmp"),
|
||||
CacheDir: env("CACHE_DIR", "tmp/go"),
|
||||
CacheTTL: envDuration("CACHE_TTL_SECONDS", 300),
|
||||
CacheAPICheckTTL: envDuration("CACHE_API_CHECK_TTL_SECONDS", 300),
|
||||
DriveTimeout: envDuration("DRIVE_TIMEOUT_SECONDS", 10),
|
||||
|
||||
Reference in New Issue
Block a user