15 Commits
Author SHA1 Message Date
james.maes 8ac4fdf2e1 feat(core): add doctor command and dependency pre-flight checks
- Add `qctl doctor` command to check Java, Maven, Git, Docker
- Add pre-flight dependency checks before running post-gen hooks
- Cross-platform support (Windows/Linux/macOS)
2026-01-04 19:13:29 -06:00
james.maes 5a42f7b41e build: implement CI-friendly versioning with revision property 2025-12-31 06:42:14 -06:00
james.maes 608e807704 feat(cli): implement version flag with build metadata
Add VersionProvider to display version, build time, and git commit.
2025-12-30 20:24:09 -06:00
james.maes a25309b75d feat(qqq): add init and list commands for template scaffolding
- Add qqq init command with hub-based template discovery
- Add qqq list command to display available templates
- Add Handlebars templating with native image support
- Add GitHub Actions workflow for multi-platform builds
- Add ExitCodes constants, cleanup duplicate Javadoc
- Remove native profile from qctl-core (only qctl-cli builds)
2025-12-30 19:43:32 -06:00
james.maes 12e4a0355b Build: add initial native build support and configuration setup
- Introduced `native-maven-plugin` configuration in `qctl-cli` for native image generation.
- Added reflection configuration files for native image requirements.
- Implemented GraalVM validation, build scripts, and environment checks in `scripts/`.
- Added tests for `TokenStore`, CLI authentication commands, and publish functionality.
- Registered SPI plugins for modules (`qbit`, `qqq`, `qrun`, `qstudio`).
- Documented native build process in `NATIVE-BUILD.md`.
2025-08-09 17:53:14 -05:00
james.maes 2afa12cb6c Style: update Checkstyle scan scope and normalize formatting; add constants and Javadoc in tests 2025-08-09 16:22:17 -05:00
james.maes ba1d5b19ea Style: Removed files from target directories from git 2025-08-09 15:59:42 -05:00
james.maes 29118d637c Style: add Javadoc, constants, and normalize formatting across modules
- Add Javadoc for public methods and classes in core and shared modules.
- Introduce reusable constants for calculations (e.g., BYTES_PER_KB).
- Normalize header spacing and brace placement.
- Update Cache, ConfigLoader, and ApiClient classes for readability and maintainability.
2025-08-09 15:55:38 -05:00
james.maes 5aae0a85fc Style(core): add Javadoc, braces, and header spacing; partial cleanup; continue until verify is green 2025-08-09 12:54:11 -05:00
james.maes a7c0f96905 Fix: normalize header spacing per Spotless in qctl-shared 2025-08-09 08:28:36 -05:00
james.maes bf0f873415 Style: add/normalize headers and Kingsrook formatting in shared module
- Ensure blank line separation before package declarations
- Normalize brace placement and 3-space indentation
- Add package-level Javadoc where appropriate
2025-08-09 07:57:57 -05:00
james.maes fe177d13bf Style: adopt Kingsrook IntelliJ style in build tooling
- Treat Kingsrook as the project standard: Checkstyle uses codestyle/checkstyle.config.xml
- Spotless enforces license headers for Java, XML, YAML/Properties; removed Google formatter
- Added license templates for XML and hash comment styles
- Verified mvn verify passes across modules
2025-08-09 07:23:44 -05:00
james.maes 5aad4cc634 Build: enforce Checkstyle + Spotless across modules
- Add maven-checkstyle-plugin (validate phase) using codestyle/checkstyle.config.xml
- Add Spotless license header + Google Java Format; enforce at verify
- Point Header module to codestyle/license.txt; fix paths
- Apply formatting and headers across sources
2025-08-09 07:19:32 -05:00
james.maes 3725674e31 V1 progress: output integration, tests, and mock flows
- qrun status: honor --output json via core Output; added unit test harness for renderer
- ApiClient: injectable client/sendOnce + postJson; added tests for header injection and exit-code mapping
- Cache: prune command testability (root override) + parseSize unit tests; no-op prune case covered
- qrun: added mock package and publish commands with Idempotency-Key handling
- qbit: added resolve command (hermetic stub) reading lockfile; basic tests
- whoami: align output to V1 spec (api-key: set|not set)

All modules build; unit tests pass locally.
2025-08-09 07:04:44 -05:00
james.maes 14e60277ef Scaffold qctl multi-module (Java 21, Maven) and V1 foundations:
- Reactor modules: qctl-shared, qctl-core, qctl-qqq, qctl-qbit, qctl-qrun, qctl-qstudio, qctl-integration-tests
- Core: Picocli CLI with SPI subcommand loading; config loader + schema validation; system paths; logging; Output (text/json)
- HTTP: ApiClient with retries/backoff and RFC7807→exit code mapping
- Auth: TokenStore (file fallback); auth login/logout/whoami stubs
- Cache: ls, prune --max-size, clean --all
- qrun: status command calling mock API (uses X-API-Key)
- qbit: Lockfile DTO + atomic YAML read/write
- Tests: core (config, sys paths), qbit (lockfile)
- Design & resume files: CODEGEN-LOCKS-V1.md, PROMPT-RESUME.md, cheaklist.md
2025-08-09 06:16:34 -05:00