Skip to content

Fix update-awareness QA issues (#52-#57)#61

Merged
shwetank-dev merged 7 commits intomainfrom
issue-52-57-update-awareness-qa-fixes
Mar 19, 2026
Merged

Fix update-awareness QA issues (#52-#57)#61
shwetank-dev merged 7 commits intomainfrom
issue-52-57-update-awareness-qa-fixes

Conversation

@shwetank-dev
Copy link
Copy Markdown
Collaborator

Summary

Addresses all six QA findings from the issue-37-cli-add-bundle-update-awareness review:

Test plan

  • All 132 unit tests pass
  • Typecheck clean
  • Lint clean
  • Integration test passes against live registry (@nimblebraininc/echo)
  • Manual verification: downgrade cached metadata → mpak outdated detects it → mpak update fixes it → mpak outdated reports all up to date

Closes #52, closes #53, closes #54, closes #55, closes #56, closes #57

🤖 Generated with Claude Code

shwetank-dev and others added 6 commits March 18, 2026 12:03
…eck failure

If the background update check promise rejects before the 3-second timeout,
the unhandled exception skips process.exit and the CLI hangs indefinitely.

Closes #52

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Concurrent downloads in the same millisecond would write to the same
temp path. Append a random suffix to ensure uniqueness.

Closes #53

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The empty catch silently skipped bundles deleted from the registry,
giving users no way to discover stale/orphaned cache entries.

Closes #54

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Outdated bundles were updated sequentially. Since each download is
independent, Promise.allSettled allows them to run concurrently.

Closes #55

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
String equality fails if registry returns 'v1.0.0' vs '1.0.0'. Add
isSemverEqual helper that strips the 'v' prefix before comparing, and
use it in all three version comparison sites.

Closes #56

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Exercises the full happy path against the live registry: cache a bundle,
downgrade its version metadata, verify outdated detects it, run update,
and confirm it is no longer outdated.

Closes #57

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…on-zero exit on all-fail

- Silence catch block in async exit handler (update check is best-effort)
- Use crypto.randomUUID() instead of Math.random() for temp file suffix
- Exit non-zero when all bundle updates fail so scripted pipelines don't proceed
@mgoldsborough mgoldsborough added the qa-reviewed QA review completed with no critical issues label Mar 18, 2026
Copy link
Copy Markdown
Contributor

@mgoldsborough mgoldsborough left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

made some qa fixes (minor). approved

@shwetank-dev shwetank-dev merged commit 7701052 into main Mar 19, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

qa-reviewed QA review completed with no critical issues

Projects

None yet

2 participants