Commit graph

30 commits

Author SHA1 Message Date
Snider
8601e5b355 docs: add example.md files for all CLI commands
Each command directory now has both index.md (reference) and
example.md (usage examples and configuration samples).

Also adds exception for docs/cmd/build in .gitignore.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:58:54 +00:00
Snider
eed8a030f1 docs: add example.md files and ci subcommands
- Add example.md alongside index.md for config/usage samples
- Add ci subcommands: init, changelog, version
- Fix ci/index.md to reference correct commands (was release)
- Update references from config.md to example.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:54:44 +00:00
Snider
ace6306233 docs: restructure cmd docs to mirror CLI hierarchy
- Convert flat .md files to index.md in subdirectories
- Add subcommand directories (go/test, go/cov, build/sdk, etc.)
- Update dev/index.md to include multi-repo commands
- Structure now mirrors: core <cmd> [subcmd] → docs/cmd/<cmd>/<subcmd>/

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:46:31 +00:00
Snider
ef778936b6 docs: add next steps for docs sync setup
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:55:39 +00:00
Snider
d112dab0d1 docs: reorganize into docs/cmd/ and add missing commands
- Move command docs to docs/cmd/ for better organization
- Add work.md: multi-repo operations (health, issues, reviews, etc.)
- Add docs.md: documentation management (list, sync)
- Add templates.md: LinuxKit template management
- Add setup.md: clone repos from registry
- Update index.md with full command reference

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:44:28 +00:00
Snider
229cde534d docs: add comprehensive CLI documentation
- Add sdk.md: SDK generation and API diff commands
- Add dev.md: DevOps portable environment (100+ tools)
- Add doctor.md: Environment health check
- Add search.md: GitHub search and install commands
- Update build.md: Add code signing flags (--no-sign, --notarize)
- Update release.md: Add --target sdk flag
- Update index.md: Organize commands by category

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:34:57 +00:00
Snider
6ac40d93ac docs(release): add SDK release integration design and plan
S3.4 - Add `core release --target sdk` to generate SDKs as a
separate release target with breaking change detection.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 03:12:49 +00:00
Snider
f3789f6f4c docs: add code signing implementation plan
9 TDD tasks for GPG + macOS codesign + notarization.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:44:21 +00:00
Snider
fd7c15c753 docs: add code signing design (S3.3)
GPG signs checksums.txt by default. macOS codesign + notarization.
Windows signtool deferred.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:41:18 +00:00
Snider
a30e101281 docs: add core-devops CLI implementation plan
13 tasks with TDD approach:
- Package structure and config
- Image sources (GitHub, CDN)
- ImageManager with manifest tracking
- Boot/Stop/Status
- Shell (SSH + serial console)
- Test detection and execution
- Serve with project mounting
- Claude sandbox with auth forwarding
- CLI commands

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:59:44 +00:00
Snider
e5f9276fcd docs: add core-devops CLI design (S4.6)
Design for portable dev environment commands:
- core dev install/boot/shell/serve/test/update/status/stop
- core dev claude - sandboxed AI session with auth forwarding
- Image sources: GitHub Releases, Container Registry, CDN
- Mount & serve with auto-detection
- Test config via .core/test.yaml

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:55:02 +00:00
Snider
f70c6fb1c1 docs: add SDK configuration example
Add sdk-full.yaml example showing full SDK generation configuration
including spec path, languages, package naming, diff detection,
and publish settings.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:24:41 +00:00
Snider
5e3ae3199b docs: add SDK generation implementation plan
13 tasks with TDD approach:
- Package structure and types
- OpenAPI spec detection
- Generators for TypeScript, Python, Go, PHP
- Breaking change detection with oasdiff
- CLI commands
- Release config integration

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:03:05 +00:00
Snider
53b3d2613d docs: add SDK generation design (S3.4)
Design document for OpenAPI SDK generation feature:
- Hybrid generators (native + openapi-generator fallback)
- Core 4 languages: TypeScript, Python, Go, PHP
- Auto-detection: config → common paths → Laravel Scramble
- Breaking change detection with oasdiff
- Monorepo publish support

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:59:17 +00:00
Snider
4ae16dc09e docs(examples): add publish-* configuration examples
Publisher configuration examples for each target:
- publish-github.yaml - GitHub Releases (foundation)
- publish-npm.yaml - npm binary wrapper
- publish-homebrew.yaml - Homebrew formula + tap
- publish-scoop.yaml - Scoop manifest (Windows)
- publish-aur.yaml - AUR PKGBUILD (Arch Linux)
- publish-chocolatey.yaml - Chocolatey NuSpec (Windows)
- publish-docker.yaml - Multi-arch containers
- publish-linuxkit.yaml - Immutable images
- publish-all.yaml - All publishers combined

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:47:01 +00:00
Snider
05de92148b docs(examples): add build-* configuration examples
Build configuration examples for testing and documentation:
- build-minimal.yaml - Auto-detect everything
- build-go-cli.yaml - Cross-platform CLI
- build-go-wails.yaml - Desktop app with frontend
- build-go-library.yaml - Library (no binary)
- build-docker.yaml - Multi-arch container
- build-docker-go.yaml - Go binary + Docker
- build-linuxkit.yaml - Immutable Linux images
- build-php-laravel.yaml - FrankenPHP + Laravel
- build-multi-binary.yaml - Multiple binaries
- build-full.yaml - All available options

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:45:17 +00:00
Snider
dba9088eeb docs(examples): rename wails-desktop to go-wails
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:42:02 +00:00
Snider
f3138bc8e2 docs(examples): rename files to group by prefix
- release-*.yaml for release configurations
- linuxkit-*.yml for LinuxKit templates

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:41:14 +00:00
Snider
a57fb4273d docs: restructure for VitePress with flat layout and examples
- Remove mkdocs files (requirements.txt, CNAME)
- Add CLI documentation: build.md, release.md, php.md, run.md
- Add configuration.md with full reference
- Add examples/ directory with sample configurations:
  - go-cli-release.yaml
  - wails-desktop-release.yaml
  - php-laravel-release.yaml
  - linuxkit-server.yml
  - linuxkit-docker-format.yml
  - full-release.yaml
  - minimal-release.yaml
  - official-repos.yaml
- Flatten existing framework docs into framework/
- Update index.md as CLI entry point

Ready for VitePress integration with core-php/docs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:38:49 +00:00
Snider
0ad5c09ee6 feat: add initial project structure with configuration files and components 2026-01-15 22:46:50 +00:00
google-labs-jules[bot]
456a5d6864 docs: replace raw AST dumps with descriptive markdown (#34)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-11-25 00:09:03 +00:00
67a38acc7c refactor: Remove unused packages and flatten project structure (#27)
* refactor: Remove unused packages and flatten project structure

Removes the following unused packages:
- pkg/crypt
- pkg/workspace
- pkg/io

Moves the remaining packages (core, e, runtime) to the top level of the project.

Updates all import paths to reflect the new structure.

* refactor: Remove unused packages and flatten project structure

Removes the following unused packages:
- pkg/crypt
- pkg/workspace
- pkg/io

Moves the remaining packages (core, e, runtime) to the top level of the project.

Updates all import paths to reflect the new structure.

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-11-13 17:26:38 +00:00
Snider
5d4e081143 Refactor core tests and improve mock implementations
Signed-off-by: Snider <snider@lt.hn>
2025-11-04 13:12:09 +00:00
Snider
d25bd5c5ca Add GoReleaser configuration and update Go version to 1.25
Signed-off-by: Snider <snider@lt.hn>
2025-11-04 12:00:58 +00:00
Snider
e07d08ea90 Add CNAME file for custom domain 2025-11-02 16:29:45 +00:00
Snider
d5f7764329 Refactor library improvements (#18)
* refactor: Rearchitect library to use runtime and pkg modules

This commit introduces a major architectural refactoring to simplify the library's structure and improve its maintainability.

Key changes include:

- **Simplified Project Structure:** All top-level facade packages (config, crypt, display, etc.) and the root `core.go` have been removed. All library code now resides directly under the `pkg/` directory.

- **Unified Runtime:** A new `pkg/runtime` module with a `New()` constructor has been introduced. This function initializes and wires together all core services, providing a single, convenient entry point for applications.

- **Updated Entry Points:** The `cmd/core-gui` application and all examples have been updated to use the new `runtime.New()` initialization.

- **Internal Packages:** The `config` and `crypt` packages have been refactored to use an `internal` subdirectory for their implementation. This hides private details and exposes a clean, stable public API.

- **Standardized Error Handling:** A new error handling package has been added at `pkg/e`. The `workspace` and `crypt` services have been updated to use this new standard.

- **Improved Feature Flagging:** A `IsFeatureEnabled` method was added to the `config` service for more robust and centralized feature flag checks.

- **CI and Dependencies:**
  - A GitHub Actions workflow has been added for continuous integration.
  - All Go dependencies have been updated to their latest versions.

- **Documentation:** All documentation has been updated to reflect the new, simplified architecture, and obsolete files have been removed.

* refactor: Rearchitect library to use runtime and pkg modules

This commit introduces a major architectural refactoring to simplify the library's structure and improve its maintainability.

Key changes include:

- **Simplified Project Structure:** All top-level facade packages (config, crypt, display, etc.) and the root `core.go` have been removed. All library code now resides directly under the `pkg/` directory.

- **Unified Runtime:** A new `pkg/runtime` module with a `New()` constructor has been introduced. This function initializes and wires together all core services, providing a single, convenient entry point for applications. The runtime now accepts the Wails application instance, ensuring proper integration with the GUI.

- **Updated Entry Points:** The `cmd/core-gui` application and all examples have been updated to use the new `runtime.New()` constructor and correctly register the runtime as a Wails service.

- **Internal Packages:** The `config` and `crypt` packages have been refactored to use an `internal` subdirectory for their implementation. This hides private details and exposes a clean, stable public API.

- **Standardized Error Handling:** A new error handling package has been added at `pkg/e`. The `workspace` and `crypt` services have been updated to use this new standard.

- **Improved Feature Flagging:** A `IsFeatureEnabled` method was added to the `config` service for more robust and centralized feature flag checks.

- **CI and Dependencies:**
  - A GitHub Actions workflow has been added for continuous integration.
  - All Go dependencies have been updated to their latest versions.

- **Documentation:** All documentation has been updated to reflect the new, simplified architecture, and obsolete files have been removed.

* Feature tdd contract testing (#19)

* feat: Implement TDD contract testing for public API

This commit introduces a Test-Driven Development (TDD) workflow to enforce the public API contract. A new `tdd/` directory has been added to house these tests, which are intended to be the starting point for any new features or bug fixes that affect the public interface.

The "Good, Bad, Ugly" testing methodology has been adopted for these tests:
- `_Good` tests verify the "happy path" with valid inputs.
- `_Bad` tests verify predictable errors with invalid inputs.
- `_Ugly` tests verify edge cases and unexpected inputs to prevent panics.

TDD contract tests have been implemented for the `core` and `config` packages, and the `core.New` function has been hardened to prevent panics from `nil` options.

The `README.md` has been updated to document this new workflow.

* feat: Add TDD contract tests for all services

This commit expands the TDD contract testing framework to cover all services in the application. "Good, Bad, Ugly" tests have been added for the `help`, `i18n`, and `workspace` services.

To facilitate testing, the following refactors were made:
- `help`: Added a `SetDisplay` method to allow for mock injection. Hardened `Show` and `ShowAt` to prevent panics.
- `i18n`: Added a `SetBundle` method to allow for loading test-specific localization files.
- `workspace`: Made the `Config` field public and added a `SetMedium` method to allow for mock injection.

The TDD tests for the `crypt` service have been skipped due to issues with PGP key generation in the test environment.

* CLI code-docgen function (#16)

* Refactor CLI structure: move commands to 'dev' package, add docstring generation command, and update Taskfile for new tasks

Signed-off-by: Snider <snider@lt.hn>

* Add CodeRabbit PR review badge to README

Signed-off-by: Snider <snider@lt.hn>

---------

Signed-off-by: Snider <snider@lt.hn>

---------

Signed-off-by: Snider <snider@lt.hn>
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

* Update pkg/runtime/runtime.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: Rearchitect library and add automated documentation

This commit introduces a major architectural refactoring of the Core library and adds a new, automated documentation system.

**Architectural Changes:**

*   **Unified Runtime:** A new `pkg/runtime` module provides a single `runtime.New()` constructor that initializes and manages all core services. This simplifies application startup and improves maintainability.
*   **Wails Integration:** The `Runtime` is now correctly integrated with the Wails application lifecycle, accepting the `*application.App` instance and being registered as a Wails service.
*   **Simplified Project Structure:** All top-level facade packages have been removed, and library code is now consolidated under the `pkg/` directory.
*   **Internal Packages:** The `config` and `crypt` services now use an `internal` package to enforce a clean separation between public API and implementation details.
*   **Standardized Error Handling:** The `pkg/e` package has been introduced and integrated into the `workspace` and `crypt` services for consistent error handling.
*   **Graceful Shutdown:** The shutdown process has been fixed to ensure shutdown signals are correctly propagated to all services.

**Documentation:**

*   **Automated Doc Generation:** A new `docgen` command has been added to `cmd/core` to automatically generate Markdown documentation from the service source code.
*   **MkDocs Site:** A new MkDocs Material documentation site has been configured in the `/docs` directory.
*   **Deployment Workflow:** A new GitHub Actions workflow (`.github/workflows/docs.yml`) automatically builds and deploys the documentation site to GitHub Pages.

**Quality Improvements:**

*   **Hermetic Tests:** The config service tests have been updated to be fully hermetic, running in a temporary environment to avoid side effects.
*   **Panic Fix:** A panic in the config service's `Set` method has been fixed, and "Good, Bad, Ugly" tests have been added to verify the fix.
*   **CI/CD:** The CI workflow has been updated to use the latest GitHub Actions.
*   **Code Quality:** Numerous smaller fixes and improvements have been made based on CI feedback.

---------

Signed-off-by: Snider <snider@lt.hn>
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-11-02 16:17:25 +00:00
Snider
11e65079ac Add documentation for Core modules: Config, Crypt, Display, Docs, IO, and Workspace (#3) 2025-10-27 03:14:50 +00:00
Snider
0d63002f73 Adding documentation checkpoint. 2025-10-25 09:24:50 +01:00
Snider
5aefe41f8a Adding documentation checkpoint. 2025-10-25 09:24:44 +01:00
Snider
2bfa3b7250 Add initial project structure with core functionality and basic files 2025-10-24 04:55:10 +01:00