appydave-tools 0.77.0 β 0.77.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/bin/dam +8 -0
- data/docs/planning/BACKLOG.md +9 -6
- data/docs/planning/batch-a-features/IMPLEMENTATION_PLAN.md +5 -5
- data/docs/planning/s3-operations-split/AGENTS.md +686 -0
- data/docs/planning/s3-operations-split/IMPLEMENTATION_PLAN.md +42 -0
- data/lib/appydave/tools/dam/s3_base.rb +310 -0
- data/lib/appydave/tools/dam/s3_operations.rb +15 -314
- data/lib/appydave/tools/version.rb +1 -1
- data/lib/appydave/tools.rb +1 -0
- data/package.json +1 -1
- metadata +4 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2b3fd2da88a61ae790fb8df1416e8bdf19d25db6631cfbe657741c44af57bfc6
|
|
4
|
+
data.tar.gz: 5bef21a3321a1fbbe97daf51725589a89ed7ddb2f54fb802ea575b506c1cc8cb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 449a8fe029e73b879a834c3f8ff806b272dfd1326f2beb9d8b4e1a1cd6f57cccc9f93b452eb8e629870a8fe10c82a42bc11e7b0db2fd8166ff8f2675650eb4c6
|
|
7
|
+
data.tar.gz: 516690c962d2f0ede9c04cfabe9417d99359d8ddd3f0945399f7a2b06f006062b5eaeeb52ce29635a029736a6fa462454edb3b1c18fb534e44e7931385d33932
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [0.77.1](https://github.com/appydave/appydave-tools/compare/v0.77.0...v0.77.1) (2026-03-20)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* add progress indicators to dam S3 commands (upload, download, status, archive, sync-ssd) ([3fec530](https://github.com/appydave/appydave-tools/commit/3fec53012d23f35d6888165b4c9d1b978c87828b))
|
|
7
|
+
|
|
8
|
+
# [0.77.0](https://github.com/appydave/appydave-tools/compare/v0.76.14...v0.77.0) (2026-03-20)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* add --tokens flag to gpt_context for estimated token count output ([2c6b9c4](https://github.com/appydave/appydave-tools/commit/2c6b9c489f82e037b98713bfdc750fa8f65e70ea))
|
|
14
|
+
|
|
1
15
|
## [0.76.14](https://github.com/appydave/appydave-tools/compare/v0.76.13...v0.76.14) (2026-03-20)
|
|
2
16
|
|
|
3
17
|
|
data/bin/dam
CHANGED
|
@@ -155,6 +155,8 @@ class VatCLI
|
|
|
155
155
|
# S3 Upload
|
|
156
156
|
def s3_up_command(args)
|
|
157
157
|
options = Appydave::Tools::Dam::S3ArgParser.parse_s3(args, 's3-up')
|
|
158
|
+
verb = options[:dry_run] ? 'π Dry run:' : 'β¬οΈ Uploading'
|
|
159
|
+
puts "#{verb} #{options[:project]} (#{options[:brand]}) β S3..."
|
|
158
160
|
s3_ops = Appydave::Tools::Dam::S3Operations.new(options[:brand], options[:project])
|
|
159
161
|
s3_ops.upload(dry_run: options[:dry_run])
|
|
160
162
|
rescue StandardError => e
|
|
@@ -165,6 +167,8 @@ class VatCLI
|
|
|
165
167
|
# S3 Download
|
|
166
168
|
def s3_down_command(args)
|
|
167
169
|
options = Appydave::Tools::Dam::S3ArgParser.parse_s3(args, 's3-down')
|
|
170
|
+
verb = options[:dry_run] ? 'π Dry run:' : 'β¬οΈ Downloading'
|
|
171
|
+
puts "#{verb} #{options[:project]} (#{options[:brand]}) from S3..."
|
|
168
172
|
s3_ops = Appydave::Tools::Dam::S3Operations.new(options[:brand], options[:project])
|
|
169
173
|
s3_ops.download(dry_run: options[:dry_run])
|
|
170
174
|
rescue StandardError => e
|
|
@@ -175,6 +179,7 @@ class VatCLI
|
|
|
175
179
|
# S3 Status
|
|
176
180
|
def s3_status_command(args)
|
|
177
181
|
options = Appydave::Tools::Dam::S3ArgParser.parse_s3(args, 's3-status')
|
|
182
|
+
puts "π Checking S3 status: #{options[:project]} (#{options[:brand]})..."
|
|
178
183
|
s3_ops = Appydave::Tools::Dam::S3Operations.new(options[:brand], options[:project])
|
|
179
184
|
s3_ops.status
|
|
180
185
|
rescue StandardError => e
|
|
@@ -228,6 +233,8 @@ class VatCLI
|
|
|
228
233
|
# Archive project to SSD
|
|
229
234
|
def archive_command(args)
|
|
230
235
|
options = Appydave::Tools::Dam::S3ArgParser.parse_s3(args, 'archive')
|
|
236
|
+
verb = options[:dry_run] ? 'π Dry run:' : 'π¦ Archiving'
|
|
237
|
+
puts "#{verb} #{options[:project]} (#{options[:brand]}) β SSD..."
|
|
231
238
|
s3_ops = Appydave::Tools::Dam::S3Operations.new(options[:brand], options[:project])
|
|
232
239
|
s3_ops.archive(force: options[:force], dry_run: options[:dry_run])
|
|
233
240
|
rescue StandardError => e
|
|
@@ -321,6 +328,7 @@ class VatCLI
|
|
|
321
328
|
# Sync specific brand
|
|
322
329
|
Appydave::Tools::Dam::Config.expand_brand(brand_arg)
|
|
323
330
|
|
|
331
|
+
puts "π Syncing #{brand_arg} from SSD..."
|
|
324
332
|
syncer = Appydave::Tools::Dam::SyncFromSsd.new(brand_arg)
|
|
325
333
|
syncer.sync(dry_run: dry_run)
|
|
326
334
|
else
|
data/docs/planning/BACKLOG.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Project Backlog β AppyDave Tools
|
|
2
2
|
|
|
3
|
-
**Last updated**: 2026-03-20 (
|
|
4
|
-
**Total**:
|
|
3
|
+
**Last updated**: 2026-03-20 (batch-a-features campaign complete)
|
|
4
|
+
**Total**: 41 | Pending: 4 | Done: 36 | Deferred: 0 | Rejected: 0
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -10,11 +10,10 @@
|
|
|
10
10
|
### Medium Priority
|
|
11
11
|
- [ ] B001 β FR-1: GPT Context token counting | Priority: medium
|
|
12
12
|
- [ ] B012 β Arch: add integration tests for brand resolution end-to-end | Priority: medium
|
|
13
|
-
- [ ] B007 β Performance: parallel git/S3 status checks for dam list | Priority: low (
|
|
13
|
+
- [ ] B007 β Performance: parallel git/S3 status checks for dam list | Priority: low (unblocked after B020)
|
|
14
14
|
- [ ] B008 β Performance: cache git/S3 status with 5-min TTL | Priority: low
|
|
15
|
-
- [ ]
|
|
16
|
-
- [ ]
|
|
17
|
-
- [ ] B020 β Arch: split S3Operations (1,030 lines, mixed I/O + logic) | Priority: low (now unblocked)
|
|
15
|
+
- [ ] B020 β Arch: split S3Operations (1,030 lines, mixed I/O + logic) | Priority: medium (next major campaign)
|
|
16
|
+
- [ ] B040 β Fix: ProjectResolver.resolve raises RuntimeError not typed exception (found in B012) | Priority: low
|
|
18
17
|
|
|
19
18
|
---
|
|
20
19
|
|
|
@@ -52,6 +51,10 @@
|
|
|
52
51
|
- [x] B037 β Tests: LocalSyncStatus :partial, local_file_count, Zone.Identifier exclusion, unknown format | Completed: library-boundary-cleanup (2026-03-19), v0.76.11
|
|
53
52
|
- [x] B038 β Cleanup: remove ENV['BRAND_PATH'] dead code from bin/dam (10 assignments) | Completed: env-dead-code-cleanup (2026-03-20), v0.76.13
|
|
54
53
|
- [x] B039 β Tests: strengthen s3_scan_command_spec field assertions + remove LocalSyncStatus stub | Completed: env-dead-code-cleanup (2026-03-20), v0.76.12
|
|
54
|
+
- [x] B012 β Arch: brand resolution integration tests (BrandResolverβConfigβProjectResolver chain) | Completed: batch-a-features (2026-03-20), v0.76.14
|
|
55
|
+
- [x] B001 β FR-1: GPT Context token counting (--tokens flag, warn to stderr, 100k/200k thresholds) | Completed: batch-a-features (2026-03-20), v0.77.0
|
|
56
|
+
- [x] B010 β UX: terminal-width-aware separator lines + truncate_path in project_listing | Completed: batch-a-features (2026-03-20), v0.77.0
|
|
57
|
+
- [x] B009 β UX: progress indicators for dam S3 operations (upload, download, status, archive, sync-ssd) | Completed: batch-a-features (2026-03-20), v0.77.1
|
|
55
58
|
|
|
56
59
|
---
|
|
57
60
|
|
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
**Target**: All 4 complete, 860+ examples passing, rubocop 0 offenses
|
|
6
6
|
|
|
7
7
|
## Summary
|
|
8
|
-
- Total: 4 | Complete:
|
|
8
|
+
- Total: 4 | Complete: 4 | In Progress: 0 | Pending: 0 | Failed: 0
|
|
9
9
|
|
|
10
10
|
## Pending
|
|
11
11
|
|
|
12
12
|
## In Progress
|
|
13
|
-
- [~] B001 β gpt-context-token-counting β Add --tokens flag to gpt_context; print estimated token count + threshold warnings
|
|
14
|
-
- [~] B009 β dam-progress-indicators β Add before/after progress messages to s3_up, s3_down, s3_status, archive, sync_ssd in bin/dam
|
|
15
|
-
- [~] B010 β dam-column-widths β Terminal-width-aware separator lines + path truncation in project_listing.rb
|
|
16
|
-
- [~] B012 β brand-resolution-integration-tests β Integration spec covering brandβproject resolution chain end-to-end
|
|
17
13
|
|
|
18
14
|
## Complete
|
|
15
|
+
- [x] B012 β brand-resolution-integration-tests β 10 examples: Config.brand_path, BrandResolver.expand, ProjectResolver.resolve + detect_from_pwd. Note: resolve raises RuntimeError not typed exception. 870 examples. v0.76.14. Commit: af571e7.
|
|
16
|
+
- [x] B001 β gpt-context-token-counting β --tokens/-t flag added; warn (not $stderr.puts β Style/StderrPuts) to stderr; thresholds at 100k+200k. 870 examples. v0.77.0. Commit: 2c6b9c4.
|
|
17
|
+
- [x] B010 β dam-column-widths β 9 separator lines terminal-width-aware; truncate_path helper added; 4 shorten_path calls updated; require 'io/console' added. Bundled into B001 commit. v0.77.0.
|
|
18
|
+
- [x] B009 β dam-progress-indicators β 5 commands updated (s3_up, s3_down, s3_status, archive, sync_ssd) with verb/dry_run-aware progress messages. 870 examples. v0.77.1. Commit: 3fec530.
|
|
19
19
|
|
|
20
20
|
## Failed / Needs Retry
|
|
21
21
|
|