673ad95bcb
update CLAUDE.md
2026-04-22 12:53:42 +08:00
892d0b40e1
refactor: delete all backup files, not just the latest
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-22 12:51:05 +08:00
8c70e8681b
test: add CLI integration test for delete command using s101.toml
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-22 12:34:08 +08:00
c9542d36a9
test: add CLI tests for delete command
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-22 12:26:38 +08:00
38a47ab793
refactor: remove --csv arg from delete, auto-pick latest backup
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-22 12:05:25 +08:00
9624c65440
chore: ignore .worktrees directory
2026-04-22 12:03:30 +08:00
8acf4ba5c0
[M] add local.toml
2026-04-22 11:56:12 +08:00
c4290b830e
refactor: read config from file, randomize users and dates in seed script
...
Replace hardcoded connection string with config file loading via
load_config(). Users now randomly chosen from user001-user1000, dates
randomly sampled between 2026-01-01 and UTC now.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-22 00:04:32 +08:00
dba7f7bdc9
test: add edge cases for backup cutoff filtering
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 23:24:32 +08:00
9997ee6f32
feat: replace --start/--end with --days param on backup command
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 23:20:30 +08:00
d3ff2dae98
fix: update integration test, remove unused import, fix stale comment
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 23:07:29 +08:00
e0eff89e8c
refactor: change backup_orders to use cutoff param instead of start/end
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 23:02:18 +08:00
fac909ca8b
docs: add implementation plan for backup --days parameter
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 22:31:05 +08:00
34db3dc439
docs: add design spec for backup --days parameter
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 22:16:24 +08:00
ef449729d7
fix: use entity_to_row for backup CSV output and handle non-numeric state values
...
Switch backup to write converted entities instead of raw table rows via
entity_to_row, and map string state values like "Payed"/"Recived" to their
integer equivalents during CSV parsing. Add sandbox.toml config.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 20:53:55 +08:00
c5897e5d0d
feat: add source export script and clean up .DS_Store tracking
...
Add scripts/export_source.sh to export project source to dist-source/,
add .DS_Store and dist-source/ to .gitignore, remove tracked .DS_Store.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 18:27:24 +08:00
7f52375115
chore: add assets config template and update gitignore
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 18:17:54 +08:00
81feca7814
feat: add --count option to scan command for limiting records scanned
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 17:24:32 +08:00
3d40a44d91
docs: add README
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 16:59:46 +08:00
ca5f5fb06d
feat: add integration tests and seed script for Azure Storage emulator
...
- scripts/seed_test_data.py: seeds 45 orders (30 Recived + 15 Payed) across
5 users and 3 days into the emulator
- tests/test_integration.py: full pipeline test (seed → scan → backup → delete)
with table cleanup before/after
- pytest marker "integration" to separate from unit tests
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 16:21:07 +08:00
a36bfcc0f0
refactor: fix review issues — reuse entity_to_row, public parse_row, validate dates
...
- scan.py: use entity_to_row from csv_utils instead of duplicated _fmt
- csv_utils: rename _parse_row to parse_row (public API)
- backup.py: use public parse_row
- cli.py: validate --start < --end in backup command
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 16:06:51 +08:00
57c985ee3e
feat: delete command — batch delete from CSV with confirmation
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 16:02:06 +08:00
cb7d9212e0
feat: backup command — filter scan CSV by state and date range
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 15:57:36 +08:00
b135a49de5
fix: stream scan writes instead of accumulating in memory
2026-04-21 15:53:50 +08:00
8070f2f99b
feat: scan command — full table scan to CSV with throttling
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 15:52:42 +08:00
dd5edfe03c
feat: CSV utilities for order entity serialization
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 15:50:23 +08:00
3239fd1032
feat: config module with TOML loading
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 15:05:55 +08:00
f0ea821d49
chore: add .gitignore and remove cached bytecode
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 15:00:01 +08:00
910be27cc4
feat: project scaffold with uv, click, azure-data-tables
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-21 14:59:11 +08:00
1ae84e994a
initial: project docs and design spec
2026-04-21 14:51:56 +08:00