Commit graph

194 commits

Author SHA1 Message Date
Snider
0b949b9e07 feat(cli): integrate signing into build command
Adds --no-sign and --notarize flags.
Signs macOS binaries after build, GPG signs checksums.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:57:46 +00:00
Snider
8852d0a273 feat(signing): add orchestration helpers
SignBinaries, NotarizeBinaries, SignChecksums for pipeline integration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:54:06 +00:00
Snider
1e0d9e4ebd feat(build): add SignConfig to BuildConfig
Loads signing configuration from .core/build.yaml.
Expands environment variables for secrets.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:52:12 +00:00
Snider
dff008fff7 feat(signing): add Windows signtool placeholder
Placeholder for future Windows code signing support.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:49:51 +00:00
Snider
471cd1f903 feat(signing): add macOS codesign + notarization
Signs binaries with Developer ID and hardened runtime.
Notarization submits to Apple and staples ticket.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:48:54 +00:00
Snider
e0c1945f00 feat(signing): add GPG signer
Signs files with detached ASCII-armored signatures (.asc).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:47:17 +00:00
Snider
1861274909 feat(signing): add Signer interface and config types
Defines interface for GPG, macOS, and Windows signing.
Config supports env var expansion for secrets.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:46:08 +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
acd0f90424 feat(cli): add dev command group
Commands:
- core dev install/boot/stop/status
- core dev shell/serve/test
- core dev claude (sandboxed AI session)
- core dev update

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:23:29 +00:00
Snider
c00b374147 feat(devops): add Claude sandbox session
Starts Claude in immutable dev environment with auth forwarding.
Auto-boots VM, mounts project, forwards credentials.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:17:34 +00:00
Snider
86ba93edd3 feat(devops): add Serve with project mounting
Mounts project via SSHFS and runs auto-detected dev server.
Supports Laravel, Node.js, PHP, Go, Python projects.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:16:01 +00:00
Snider
0664eb2591 feat(devops): add test detection and execution
Auto-detects test framework from project files.
Supports .core/test.yaml for custom configuration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:14:40 +00:00
Snider
fe5cf71d5e feat(devops): add Shell for SSH and console access
Connects to dev VM via SSH (default) or serial console (--console).
Supports SSH agent forwarding for credential access.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:12:52 +00:00
Snider
95017cdc8a feat(devops): add Boot/Stop/Status methods
Manages dev VM lifecycle using LinuxKitManager.
Supports fresh boot, status checking, graceful stop.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:11:53 +00:00
Snider
cd7930af2a feat(devops): add ImageManager
Manages image downloads, manifest tracking, and update checking.
Tries sources in priority order (GitHub, CDN).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:10:16 +00:00
Snider
5d750c4170 feat(devops): add CDN/S3 source
Downloads core-devops images from custom CDN with progress reporting.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:07:47 +00:00
Snider
4286052c9e feat(devops): add GitHub Releases source
Downloads core-devops images from GitHub Releases using gh CLI.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:06:20 +00:00
Snider
919ecd3eba feat(devops): add ImageSource interface
Defines common interface for GitHub, Registry, and CDN sources.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:05:01 +00:00
Snider
7275961769 feat(devops): add config loading
Loads ~/.core/config.yaml with image source preferences.
Defaults to auto-detection with host-uk/core-images.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:04:01 +00:00
Snider
cead09feb2 feat(devops): add package structure
Initial pkg/devops setup with DevOps type and path helpers.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:02:46 +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
5e0252b5ee chore(deps): sync go modules after SDK implementation
Updates go.mod and go.sum files across all workspace modules
after adding oasdiff and kin-openapi dependencies for SDK generation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:29:39 +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
7970e984e4 feat(release): add SDK configuration to release.yaml
Add SDKConfig struct and related types (SDKPackageConfig, SDKDiffConfig,
SDKPublishConfig) to support SDK generation configuration within the
release.yaml configuration file.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:24:37 +00:00
Snider
674b1cd021 feat(cli): add sdk command with generate, diff, validate
Commands:
- core sdk generate [--spec FILE] [--lang LANG]
- core sdk diff --base VERSION [--spec FILE]
- core sdk validate [--spec FILE]

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:22:40 +00:00
Snider
fe72111236 feat(sdk): wire up Generate to use all generators
SDK.Generate() and SDK.GenerateLanguage() now use the
generator registry to generate SDKs for configured languages.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:20:58 +00:00
Snider
5690fa63ae feat(sdk): add breaking change detection with oasdiff
Compares OpenAPI specs to detect breaking changes:
- Removed endpoints
- Changed required parameters
- Modified response schemas

Returns CI-friendly exit codes (0=ok, 1=breaking, 2=error).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:19:44 +00:00
Snider
b0c1c1eea5 feat(sdk): add PHP generator
Implements PHP SDK generator using Docker-only approach:
- Requires Docker with openapitools/openapi-generator-cli
- No native PHP generator tool; Docker is the only option

Includes tests following _Good convention for Available and Generate.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:16:05 +00:00
Snider
3d241e2a41 feat(sdk): add Go generator
Implements Go SDK generator with two-level fallback:
1. Native oapi-codegen if installed (generates types and client)
2. Docker openapitools/openapi-generator-cli as fallback

Native generation also creates a minimal go.mod file.
Includes tests following _Good convention for Available and Generate.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:16:01 +00:00
Snider
ea5b2fabaf feat(sdk): add Python generator
Implements Python SDK generator with two-level fallback:
1. Native openapi-python-client if installed
2. Docker openapitools/openapi-generator-cli as fallback

Includes tests following _Good convention for Available and Generate.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:15:57 +00:00
Snider
3a7349ce5f feat(sdk): add TypeScript generator
Implements TypeScript SDK generator with three-level fallback:
1. Native openapi-typescript-codegen if installed globally
2. npx openapi-typescript-codegen if npx available
3. Docker openapitools/openapi-generator-cli as fallback

Includes tests following _Good convention for Available and Generate.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:15:47 +00:00
Snider
656ff728ff feat(sdk): add Generator interface and Registry
Defines the common interface for SDK generators with:
- Generate(), Available(), Install() methods
- Registry for managing multiple generators

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:13:11 +00:00
Snider
c2b1e5dc61 feat(sdk): add OpenAPI spec detection
Detects OpenAPI spec via:
1. Configured spec path
2. Common paths (api/openapi.yaml, openapi.yaml, etc.)
3. Laravel Scramble (stub for now)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:11:15 +00:00
Snider
64a5b0e605 feat(sdk): add SDK package structure with types
Initial pkg/sdk setup with Config types for OpenAPI SDK generation.
Includes language selection, diff config, and publish config.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:07:19 +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
02d0167d91 feat(linuxkit): add docker format support for immutable containers
LinuxKit can now output docker format tarballs that can be loaded with
`docker load`. This gives you immutable, reproducible LinuxKit images
in Docker-compatible format.

Supported formats now include:
- iso, iso-bios, iso-efi
- raw, raw-bios, raw-efi
- qcow2, qcow2-bios, qcow2-efi
- vmdk, vhd, gcp, aws
- docker (tarball for `docker load`)
- tar, kernel+initrd

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:33:26 +00:00
Snider
513a241c1b feat(release): add package manager publishers for S3.2
Add publishers for distributing CLI binaries to package managers:
- npm: binary wrapper pattern with postinstall download
- Homebrew: formula generation + tap auto-commit
- Scoop: JSON manifest + bucket auto-commit
- AUR: PKGBUILD + .SRCINFO + AUR push
- Chocolatey: NuSpec + install script + optional push

Each publisher supports:
- Dry-run mode for previewing changes
- Auto-commit to own repos (tap/bucket/AUR)
- Generate files for PRs to official repos via `official` config

Also includes Docker and LinuxKit build helpers.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:32:04 +00:00
Snider
20f25ca062 feat(agentic): add AI collaboration features
Context gathering:
- BuildTaskContext for AI consumption
- GatherRelatedFiles from task references
- Keyword search for related code
- Git status and recent commits

Task completion:
- AutoCommit with task reference and Co-Authored-By
- CreatePR using gh CLI
- SyncStatus back to agentic service
- CreateBranch with {type}/{id}-{title} format

CLI commands:
- core dev task <id> --context - show with AI context
- core dev task:commit <id> - auto-commit
- core dev task:pr <id> - create PR

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 20:04:45 +00:00
Snider
3b6427f324 feat(agentic): implement core-agentic API client
Add pkg/agentic for AI-assisted task management:
- API client for core-agentic service
- Task listing, claiming, updating, completion
- Config from .env or ~/.core/agentic.yaml

CLI commands:
- core dev tasks - list available tasks
- core dev task <id> - show/claim task
- core dev task --auto - AI picks highest priority
- core dev task:update <id> - update progress
- core dev task:complete <id> - mark complete

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 19:58:41 +00:00
Snider
605ee023ca feat(php): add Coolify deployment integration
Commands:
- core php deploy - deploy to production
- core php deploy --staging - deploy to staging
- core php deploy:status - show deployment status
- core php deploy:rollback - rollback to previous
- core php deploy:list - list recent deployments

Features:
- Coolify API client
- Config from .env (COOLIFY_URL, TOKEN, APP_ID)
- Wait for deployment completion with --wait

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 19:39:04 +00:00
Snider
312fce343d feat(php): add package management for local development
Commands:
- core php packages link <path>... - link local packages
- core php packages unlink <name>... - unlink packages
- core php packages update - update linked packages
- core php packages list - list linked packages

Features:
- Composer path repositories with symlink
- Auto-detect package name from composer.json
- Preserves existing composer.json fields

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 19:33:55 +00:00
Snider
5759d84268 feat(php): add testing and quality commands
Testing:
- core php test - run PHPUnit/Pest (auto-detected)
- core php test --parallel - parallel testing
- core php test --coverage - with coverage
- core php test --filter <pattern> - filter tests

Quality:
- core php fmt - format with Laravel Pint
- core php fmt --fix - auto-fix issues
- core php analyse - run PHPStan/Larastan
- core php analyse --level 9 - set analysis level

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 19:26:57 +00:00