Releases: allens/s3cab
Releases · allens/s3cab
Release list
v0.1.0
What's Changed
- chore: flag pre-release status in the npm description by @allens in #82
- docs: settle the local-config / remote-structure redesign (ADR-0024..0026) by @allens in #83
- chore: reword npm description "eternal" -> "tool-independent" by @allens in #84
- refactor(env): drop the per-bucket env layer (ADR-0025) by @allens in #85
- Set name is the whole identity: collision-claim + --inherit (ADR-0024, ADR-0026 setup-half) by @allens in #86
- Fold resolveRemoteSet into resolveSet — finish the ADR-0026 redesign by @allens in #87
- chore: trim low-value historical commentary from code comments by @allens in #88
- compare is local-only; setup --inherit syncs manifests (ADR-0027) by @allens in #89
- docs(readme): lead with everyday recovery; fix post-redesign drift by @allens in #90
- Make per-session worktrees the default for any write (CLAUDE.md #13) by @allens in #91
- chore: correct convention #15 — GraphQL botIds requests Copilot review by @allens in #92
- refactor: a resolved BackupSet carries its own on-disk paths by @allens in #93
- chore: narrow git-push deny rule so it stops blocking '+' branch names by @allens in #95
- Handoff: load user env at the entry point; a loadSet door for set env by @allens in #97
- refactor: load user env at entry; loadSet door for set env by @allens in #98
- docs(proposals): snapshot-pipeline architecture deepening candidates by @allens in #99
- Collapse the snapshot-writing pipeline into one deep module by @allens in #103
- Build(deps): Bump actions/checkout from 6 to 7 in the actions group by @dependabot[bot] in #100
- Build(deps): Bump the aws-sdk group with 3 updates by @dependabot[bot] in #101
- Build(deps-dev): Bump the dev-dependencies group with 2 updates by @dependabot[bot] in #102
- docs(adr): the walk is eager, not streamed (ADR-0029) by @allens in #104
- feat(hooks): auto-request Copilot review on gh pr create by @allens in #105
- chore: adopt the .claude/worktrees convention + exclude it from tooling by @allens in #106
- docs(proposals): capture the architecture deepening candidates by @allens in #107
- Adopt NN/g error-message guidelines (ADR-0030) + conform messages by @allens in #108
- docs(claude): run bare git in cwd — git -C defeats the allowlist by @allens in #110
- fix(format): correct byte formatting + reconnect upload progress; settle display-formatting design by @allens in #109
- fix: knock out all four bugs from proposals/bugs.md by @allens in #111
- feat: actionable error for expired AWS credentials + error-handling cleanup by @allens in #112
- chore: remove parked SIGINT handler, sharpen temp-file cleanup note by @allens in #113
- feat:
s3cab awscommand to configure the AWS profile by @allens in #114 - chore: allow
gh apiandgit worktreewithout prompting by @allens in #115 - feat: actionable guidance when
s3cab awsshows no profile set by @allens in #116 - docs: cloud-onboarding (
bucketcommand) design + ADR-0032 by @allens in #117 - chore: allow read-only git (status/diff/log) without prompting by @allens in #118
- feat:
bucketcommand — generative cloud onboarding by @allens in #119 - docs: rationalize bucket/aws/setup commands (ADR-0035) by @allens in #120
- chore: persist the permission-prompt fix to shared source by @allens in #121
- Rationalize CLI commands: bucket→aws, aws→profile, setup folds into sets (ADR-0035) by @allens in #122
- docs: ADR-0036 —
setup/listcommand shape, dropsetsby @allens in #123 - Reshape sets→setup + list (ADR-0036) by @allens in #124
- feat: cli-design skill (distilled clig.dev) + ADR-0030 adopts Nielsen heuristic #9 by @allens in #126
- docs: trim CLAUDE.md — merge consent rules, distill, renumber (16→11) by @allens in #125
- Extract fileProps primitive; make prop path-only by @allens in #127
- docs(proposals): record the 2026-06-29 deepening follow-up by @allens in #128
- docs: give every ADR a uniform Status line by @allens in #129
- feat: standardize user-facing wording on "directory"; complete no-sets hint by @allens in #133
- Build(deps): Bump the aws-sdk group with 3 updates by @dependabot[bot] in #130
- Build(deps-dev): Bump the dev-dependencies group with 3 updates by @dependabot[bot] in #131
- Build(deps): Bump @smithy/shared-ini-file-loader from 4.6.2 to 4.6.4 by @dependabot[bot] in #132
- docs: ADR-0037 — categorize AWS auth errors by code, not HTTP status by @allens in #134
- feat: friendly messages for request-time AWS auth rejections (ADR-0037) by @allens in #135
- chore: replace Copilot-review hook with a gh --reviewer @copilot convention by @allens in #136
- chore: delete completed auth-error-categorization proposal by @allens in #137
- feat: usage errors show synopsis + arg description, not the full help block (ADR-0038) by @allens in #138
- docs: request Copilot review once at PR-create, not on push by @allens in #139
- feat: auth & onboarding UX — self-explanatory credential/setup failures by @allens in #140
- chore: sweep stale code comments and the dead zstd-bench default by @allens in #141
- chore: point code comments at docs/design/ (specs rename follow-up) by @allens in #142
- docs: dedupe env.mjs header against the auth design doc by @allens in #143
- clig.dev review: examples-first help, help routing, pre-network notice, restore/hashes shape by @allens in #144
- Rename profile to auth; fold the auth topic into its help (ADR-0041) by @allens in #145
- Gate progress animation and help styling on a TTY (shared style.mjs gate) by @allens in #147
- New sets start with a starter exclude.txt (real defaults + help discovery) by @allens in #146
- feat: one stderr-progress module (route every consumer through the TTY gate) by @allens in #148
- style: require braces on all control blocks (curly: all) by @allens in #149
- feat: implement
verify(bucket-operand backup completeness check) by @allens in #150 - feat: add
deleteandcleanup(slice 5 admin pair) by @allens in #151 - verify: per-path problems + move orphan reporting to cleanup by @allens in #152
- feat: human-first output mechanism +
--json(slice 1) by @allens in #153 - feat: human-readable compare/snapshot + structured CompareResult (slice 2) by @allens in #154
- feat: human-readable query renderers (slice 3) by @allens in #155
- feat: human-readable action confirmations (slice 4) by @allens in #156
- feat: human-first output close-out — required render, --json docs (slice 5) by @allens in #157
- feat: change-detection simplification — drop the objects cache (slice 1) by @allens in #158
- feat: unify upload command surface; backup = snapshot + upload (ADR-0044) by @allens in #159
- test: co-locate integration tests as *.integration.test.mjs (ADR-0046) by @allens in #160
- Build(deps-dev): Bump @types/node from 26.0.1 to 26.1.0 in the dev-dependencies group by @dependabot[bot] in #161
- Build(deps): Bump @smithy/shared-ini-file-loader from 4.6.4 to 4.6.6 by @dependabot[bot] in #162
- refactor: extract pure planCleanup, mirroring verifySet by @allens in #164
- Build(deps): Bump the aws-sdk group with 3 updates by @dependabot[bot] in #163...
v0.1.0-alpha.1
What's Changed
- cli: centralize arg defaults/validation in command functions by @allens in #1
- cli: drop -l short from prop --lookup, fix usage for shortless options by @allens in #2
- cli: scaffold remote command surface + redesign compare (--since/--until) by @allens in #3
- cli: compare redesign, UX/help polish, stream discipline (follow-up to #3) by @allens in #4
- chore: tidy .claude/settings.json permissions by @allens in #5
- cli: serialize command results to stdout as JSON by @allens in #6
- cli: merge topUsage into a single usage() helper by @allens in #7
- cli: friendlier error output (message-only unless S3CAB_DEBUG) by @allens in #8
- Add objects command + consolidate the S3 SDK module by @allens in #9
- s3: default a bootstrap region so users needn't configure AWS by @allens in #11
- Add standalone SSO login script mirroring aws sso login by @allens in #13
- AWS authentication: credential resolution, SSO login, credential-process by @allens in #12
- Extract the command registry into src/commands.mjs by @allens in #14
- feat: promote _poc upload-file stub to a real
uploadcommand by @allens in #15 - perf: tune multipart part size and hash read buffer by @allens in #16
- Restructure src/: lib/ + commands/ layout, help.mjs, error-helper consolidation by @allens in #17
- Prettier cleanup + format:check CI gate by @allens in #18
- chore: add Dependabot config for npm + GitHub Actions by @allens in #19
- docs: record Dependabot setup and rationale in CLAUDE.md by @allens in #20
- Build(deps): Bump the aws-sdk group with 5 updates by @dependabot[bot] in #21
- Build(deps-dev): Bump the dev-dependencies group with 2 updates by @dependabot[bot] in #22
- fix(tests): address testing setup review findings + add missing coverage by @allens in #23
- refactor(s3): collapse getMetadata into a boolean objectExists probe by @allens in #25
- feat(auth): layered per-user / per-bucket / per-folder env files by @allens in #24
- Drop bespoke SSO auth (Tier 2); review-pass fixes, tests, and doc consolidation by @allens in #26
- chore: prefer Bash over PowerShell; clean up settings by @allens in #27
- chore(typecheck): include scripts/ in the whole-project type check by @allens in #29
- chore: allow remaining safe npm run scripts in settings.json by @allens in #30
- feat(help): exclude topic, grouped command list, docs-placement doctrine by @allens in #28
- fix(compare): snapshot-resolution bugs, settled diff rules, full test coverage by @allens in #31
- Design baseline: backup sets, remote repository format, implementation plan by @allens in #32
- feat: backup sets slice 1 — set store, setup, sets, set env layer by @allens in #33
- chore: tidy settings.json by @allens in #34
- chore: eslint/prettier config + VS Code formatter cleanup by @allens in #37
- feat: backup sets slice 2 — local engine moves onto sets by @allens in #36
- Build(deps-dev): Bump esbuild from 0.28.0 to 0.28.1 by @dependabot[bot] in #35
- docs: add contributor CLA and CONTRIBUTING guide by @allens in #38
- feat: backup sets slice 3 — backup + status (remote engine) by @allens in #39
- refactor: modernize with Node 26 built-ins (getOrInsertComputed, Error.isError) by @allens in #40
- fix: don't send default integrity checksums to non-AWS S3 providers by @allens in #41
- ci: add typecheck + coverage gate to CI by @allens in #43
- feat: restore + setup --from adoption (backup-sets slice 4, part 1) by @allens in #44
- docs: capture the testing-session plan in specs/testing.md by @allens in #45
- docs: settle the testing strategy (real S3, mock boundary, non-AWS) by @allens in #46
- docs: light wording pass on testing strategy by @allens in #47
- test: assert non-AWS uploads omit checksum/SSE/storage-class headers by @allens in #48
- fix: stop double-prefixing S3 object metadata keys by @allens in #49
- ci: stand up real-AWS S3 integration test infrastructure by @allens in #50
- refactor: configurable S3CAB_HOME + clean local S3 testing by @allens in #51
- Build(deps): Bump the aws-sdk group with 3 updates by @dependabot[bot] in #52
- Build(deps-dev): Bump the dev-dependencies group with 2 updates by @dependabot[bot] in #53
- refactor: extract shared assertPathSegment traversal guard by @allens in #54
- feat: restore --output re-rooting by @allens in #55
- Coverage: advisory report, not a CI gate (and fix the gate that never ran) by @allens in #56
- docs: add convention #13 — isolate substantive concurrent work in a worktree by @allens in #57
- refactor: extract readLatestRemoteSnapshot shared by status and backup by @allens in #59
- ci: auto-run S3 integration tests, enforce via ci-gate by @allens in #58
- refactor: give the object store its own module (src/lib/objects.mjs); rename objects->hashes by @allens in #60
- Extract planRestore as a pure decision step in restore.mjs by @allens in #61
- Add direnv configuration and update esbuild allowScript version by @allens in #62
- fix: SEA bundle crashed on launch — createRequire banner, esbuild config in build.mjs by @allens in #63
- ci: smoke-test the built executable on every PR by @allens in #64
- docs: reorganize knowledge into CONTEXT.md + docs/adr per the skills convention by @allens in #66
- refactor: drop prop.mjs's dead single-entry lstat cache by @allens in #67
- refactor: retire "manifest" terminology in favour of "snapshot"/"snapshot file" by @allens in #68
- refactor: consolidate the snapshot-file line grammar into one deep module by @allens in #69
- docs: capture remaining architecture-review candidates (B/C/D) by @allens in #70
- feat(compare): report files that failed hashing under an errors category by @allens in #71
- feat: prepareRemoteSet front door for set-family env-loading by @allens in #72
- chore: rename doc/ to guide/, move integration-testing.md to docs/ by @allens in #73
- chore: remove project-local skills in favour of global install by @allens in #74
- chore: prune redundant items from IMPROVEMENTS.md by @allens in #75
- docs: per-repo config for the mattpocock/skills engineering skills by @allens in #76
- refactor: one export per command module (porcelain/plumbing/lib layering) by @allens in #77
- fix: resolve a set by membership, not by path-probing by @allens in #78
- docs: relocate specs under docs/ and add a proposals/ ideas bucket by @allens in #79
- fix: smoke-test release binaries with --version, not list by @allens in #80
- chore: release 0.1.0-alpha.1 by @allens in #81
New Contributors
- @allens made their first contribution in #1
- @dependabot[bot] made their first contribution in #21
Full Changelog: v0.0.1...v0.1.0-alpha.1