76 Commits

Author SHA1 Message Date
Jonathan Miller fe3644204a refactor: remove HCL definitions — Template repos are now canonical
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (push) Blocked by required conditions
Platform: moko-platform CI / Gate 5: Template Integrity (push) Blocked by required conditions
Platform: moko-platform CI / CI Summary (push) Blocked by required conditions
Generic: Repo Health / Release configuration (push) Blocked by required conditions
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 45s
- Delete definitions/ directory (6 default + 48 sync = ~5000 lines of HCL)
- Delete lib/Enterprise/DefinitionParser.php
- Move manifest-schema.xsd to templates/schemas/
- Add governance.yml template for Template repos
- Update RepositorySynchronizer to remove DefinitionParser dependency
- Update push_files.php to detect platform from manifest.xml via API
- Update auto_detect_platform.php to gracefully handle missing schema dir
- Update archive_repo.php to remove sync def cleanup step

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-26 23:42:45 -05:00
Jonathan Miller 34ef05bd6e refactor: fix definition drift — migrate to .mokogitea, rename templates/gitea → templates/mokogitea
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (push) Blocked by required conditions
Platform: moko-platform CI / Gate 5: Template Integrity (push) Blocked by required conditions
Platform: moko-platform CI / CI Summary (push) Blocked by required conditions
Generic: Repo Health / Release configuration (push) Blocked by required conditions
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 3s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 46s
- Replace all .github/workflows refs in definitions with .mokogitea/workflows
- Add all 13 universal workflows to every platform definition
- Fix ISSUE_TEMPLATE paths: .github/ → .mokogitea/
- Fix template source paths: templates/github/ → templates/mokogitea/
- Remove 60+ dead template references pointing to non-existent files
- Rename templates/gitea/ directory to templates/mokogitea/
- Add orphaned workflows (ci-platform, issue-branch) to definitions

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-26 23:21:42 -05:00
Jonathan Miller 8ae829ad89 feat: add live deploy target with multi-instance support to deploy-module.yml
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 3s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 44s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Has been cancelled
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Has been cancelled
Platform: moko-platform CI / Gate 4: Governance (push) Has been cancelled
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been cancelled
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
- Add 'live' and 'all' options to server selector
- Live deploy reads LIVE_TARGETS JSON secret for multiple production instances
- Move dev/demo host config from hardcoded env to vars.*
- Add summary step for deploy reporting

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-26 16:55:32 -05:00
Jonathan Miller fb916e857e feat: add cli/client_provision.php — end-to-end client onboarding
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 2s
Generic: Repo Health / Release configuration (push) Successful in 6s
Generic: Repo Health / Scripts governance (push) Successful in 7s
Generic: Repo Health / Repository health (push) Successful in 15s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 5s
Universal: PR Check / Validate PR (pull_request) Successful in 4s
Generic: Repo Health / Release configuration (pull_request) Successful in 6s
Generic: Repo Health / Scripts governance (pull_request) Successful in 7s
Universal: PR Check / Build RC Package (pull_request) Successful in 4s
Generic: Repo Health / Repository health (pull_request) Successful in 14s
Platform: moko-platform CI / Gate 1: Code Quality (push) Successful in 1m1s
Platform: moko-platform CI / Gate 1: Code Quality (pull_request) Successful in 53s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Failing after 35s
Platform: moko-platform CI / Gate 5: Template Integrity (pull_request) Failing after 4s
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (pull_request) Failing after 32s
Platform: moko-platform CI / Gate 3: Self-Health Check (pull_request) Failing after 36s
Platform: moko-platform CI / Gate 4: Governance (pull_request) Successful in 36s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (pull_request) Failing after 38s
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (pull_request) Failing after 39s
Platform: moko-platform CI / Gate 5: Template Integrity (push) Failing after 5s
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Failing after 43s
Platform: moko-platform CI / Gate 4: Governance (push) Successful in 41s
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Failing after 44s
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Failing after 49s
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Platform: moko-platform CI / CI Summary (pull_request) Has been cancelled
Orchestrates the full client provisioning flow from a single JSON config:
  1. Create repo from Template-Client-WaaS
  2. Inject Gitea Actions variables (hosts, paths, ports)
  3. Inject Gitea Actions secrets (SSH keys via @file references)
  4. Push Grafana monitoring dashboard
  5. Register monitoring URLs/domains

Supports --dry-run for preview, --step for running individual steps.
Includes example config at templates/client-provision-example.json.

Addresses #4

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-25 18:51:06 -05:00
Jonathan Miller a09d880c0a refactor: rename .gitea/ to .mokogitea/ in all PHP code and sync engine
Update GiteaAdapter.getWorkflowDir() and getMetadataDir() to return
.mokogitea paths. All 24 PHP files referencing .gitea/ updated.
Bulk sync will now push workflows to .mokogitea/workflows/ in
governed repos.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-21 16:54:55 -05:00
jmiller 857525268a feat: add dependency-audit.yml
Universal: Cascade Main → Dev / Cascade main → branches (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Authored-by: Moko Consulting
2026-05-19 20:47:16 +00:00
Jonathan Miller 79f50df907 chore: add wiki/ to gitignore templates and health checker
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 3s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 3s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Generic: Repo Health / Release configuration (push) Failing after 3s
Generic: Repo Health / Scripts governance (push) Successful in 3s
Generic: Repo Health / Repository health (push) Failing after 3s
Generic: Repo Health / Release configuration (pull_request) Failing after 4s
Generic: Repo Health / Repository health (pull_request) Failing after 3s
Generic: Repo Health / Scripts governance (pull_request) Failing after 27s
- Add wiki/ exclusion to all 3 gitignore config templates
  (generic, dolibarr, joomla)
- Add wiki/ to moko-platform's own .gitignore
- Update check_repo_health.php to require wiki/ in .gitignore
- Add wiki/ to disallowed committed directories check

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-19 14:56:51 -05:00
Jonathan Miller 3be806d5af feat: add deploy-module workflow template for Dolibarr module deployment
Symlink-based deployment: clones module repo, pins to stable tag,
creates symlink in htdocs/custom/. Uses org-level GA_TOKEN and
DEPLOY_SSH_KEY secrets.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-16 12:44:39 -05:00
Jonathan Miller 1c7de961c6 chore: migrate references from .gitea/ to .mokogitea/
- Update template-CONTRIBUTING.md: .github/workflows/ → .mokogitea/workflows/
- Update templates/gitea/README.md: .gitea/ → .mokogitea/
- .mokogitea/ is now the standard system folder

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 23:38:10 -05:00
Jonathan Miller 1799401db5 feat: add standard file headers to all 57 files missing them
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
- Add Copyright + FILE INFORMATION headers to 11 PHP enterprise classes
- Add FILE INFORMATION blocks to 9 PHP files with incomplete headers
- Add headers to 2 test files
- Add markdown comment headers to 27 index/README files
- Add headers to 5 root markdown files
- Add FILE INFORMATION to 4 files with existing but incomplete headers

All files now conform to moko-platform file header standard.

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 17:10:19 -05:00
Jonathan Miller 1d87be7d5e fix: standardize file headers — REPO rename, SPDX case, missing fields
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
- Update REPO: from MokoStandards-API to moko-platform in 125 files
- Fix wrong org path (mokoconsulting-tech → MokoConsulting) in 10 files
- Fix SPDX-LICENSE-IDENTIFIER case in 2 template files
- Add missing REPO: field to 3 files

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 17:01:17 -05:00
Jonathan Miller 38a975ee57 chore: remove VERSION from all file header comments
Branch Policy Check / Verify merge target (pull_request) Successful in 0s
Remove VERSION: XX.YY.ZZ lines from 213 file headers across PHP,
TypeScript, TF definitions, workflows, CSS, markdown, and XML files.
Version is tracked in composer.json and CHANGELOG.md only.

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 16:51:00 -05:00
Jonathan Miller 34aace2638 refactor: remove docs/ — wiki-first, relocate non-doc files
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
- Remove 52 markdown files from docs/ (all content lives in Gitea wiki)
- Relocate legal_doc_generator.html → tools/
- Relocate mokostandards-schema.xsd → templates/schemas/
- Fix XSD path in MokoStandardsParser.php
- Update index.md and README.md to reference wiki

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 16:40:53 -05:00
Jonathan Miller 0e82802f0c feat(mcp): add mokostandards MCP server with 24 governance tools
Embeds an MCP server in mcp/ that exposes MokoStandards CLI tools as
AI assistant tools: platform detection, repo health checks, validation
(structure, headers, secrets, changelog, version consistency, enterprise
readiness, drift scan), Joomla/Dolibarr-specific checks, definitions
browser, policy/guide reader, and release notes generation.

Also adds McpServerPlugin, MCP platform detection, and MCP workflow
templates.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-07 15:44:10 -05:00
Jonathan Miller 38c2536c7b feat: add PHPStan, Gitleaks, and Renovate — templates, workflows, and docs [skip ci]
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-07 14:56:02 -05:00
Jonathan Miller 46a87d2a98 fix: update mokostandards xmlns to point to MokoStandards-API repo
Schema documentation lives alongside the API implementation.
Updated namespace URI in spec docs, XSD schema, PHP parser,
XML template, and self-referencing .mokostandards manifest.

Old: https://standards.mokoconsulting.tech/mokostandards/1.0
New: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-05 14:44:17 -05:00
Jonathan Miller 3740c553da chore: remove templates/github — all CI/templates now in .gitea/
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 18:19:56 -05:00
Jonathan Miller c332c3ae5c chore: remove templates/workflows — canonical source is now template repos
Workflow templates live in:
- MokoStandards-Template-Joomla/.gitea/workflows/
- MokoStandards-Template-Dolibarr/.gitea/workflows/
- MokoStandards-Template-Client/.gitea/workflows/
- MokoStandards-Template-Generic/.gitea/workflows/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 18:15:49 -05:00
Jonathan Miller a4fbcc0f87 refactor: update sync engine to use new canonical workflow sources
- Replace old .template files with actual workflow YMLs from template repos
- Update RepositorySynchronizer to use new 10/11-workflow standard
- Remove legacy shared workflows (enterprise-firewall, auto-assign, etc.)
- Joomla workflows sourced from MokoStandards-Template-Joomla
- Dolibarr workflows sourced from MokoStandards-Template-Dolibarr

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 18:12:50 -05:00
Jonathan Miller abc08fb6f2 docs: update for consolidated Joomla template repo
- Update WORKFLOW_STANDARDS.md to reference MokoStandards-Template-Joomla
- Remove 6 obsolete sync definitions for deleted individual template repos
- Update sync commands to use unified template

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 17:41:28 -05:00
jmiller f04d57a416 fix: rewrite updates.xml.template with 5 stability channels, client, sha256, maintainer 2026-04-30 15:00:12 +00:00
Jonathan Miller 65e3c6acb6 docs: update workflow architecture — .gitea only, stream tags, cascade, auto-detect [skip ci]
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-26 19:30:30 -05:00
Jonathan Miller f71c186e26 fix: replace jmiller-moko with jmiller across all templates
GitHub username jmiller-moko replaced with Gitea username jmiller in:
- Issue templates (assignees)
- CODEOWNERS
- dependabot.yml
- Workflow authorized user lists

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-26 18:48:13 -05:00
Jonathan Miller 7800eadbd7 fix: Gitea compatibility for artifact uploads and bulk sync
- Guard upload-artifact@v4 / download-artifact@v4 with
  github.server_url == 'https://github.com' so they skip on Gitea
- Add Gitea fallbacks (checkout or log message) where artifacts are used
- Make enforce-tags step continue-on-error so sync doesn't fail on tag issues
- Replace upload-artifact in bulk-repo-sync with step summary on Gitea
- Fix escaped variable references in bulk-repo-sync.yml

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-26 18:38:52 -05:00
jmiller 5db19b1201 fix: remove tag_exists gate from Step 7 — blocks patch releases [skip ci] 2026-04-23 23:01:37 +00:00
jmiller bcec65d285 fix: remove already_released skip gate — blocks patch releases [skip ci] 2026-04-23 22:43:16 +00:00
jmiller 764451d003 fix: add updates.xml sync-to-main step for non-main branches [skip ci] 2026-04-23 19:31:17 +00:00
jmiller 4c9bb73765 ci: remove DEV_FTP_SUFFIX — path is now set per repo as full absolute path 2026-04-23 19:18:59 +00:00
jmiller 57539c7592 feat: support separate SSH hosts for dev/live deploys
DEPLOY_SSH_HOST for dev, LIVE_SSH_HOST for live (falls back to DEPLOY_SSH_HOST)
2026-04-23 19:11:24 +00:00
jmiller e7ac5f2c0b fix: support bare dev branch + push triggers in update-server [skip ci] 2026-04-23 18:03:36 +00:00
jmiller 2f4420ce8b docs: document cascade release channels and dev-release workflow [skip ci] 2026-04-23 17:41:18 +00:00
jmiller 6fce7e6569 docs: add deploy.yml.template to Joomla workflow index 2026-04-23 17:29:01 +00:00
jmiller 7f5aa2f7f4 feat: add SSH rsync auto-deploy workflow template for client repos 2026-04-23 17:28:33 +00:00
Jonathan Miller 4d5d7edee5 feat: auto-push main to GitHub mirror after release (Step 10)
Ensures updates.xml on GitHub stays in sync with Gitea.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 07:23:53 -05:00
Jonathan Miller 94da1e3a51 fix: remove tar.gz from updates.xml in update-server template
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 02:17:31 -05:00
Jonathan Miller f850377f99 fix: remove tar.gz from updates.xml — Joomla may download it instead of ZIP, causing SHA mismatch
tar.gz is still built and uploaded as release asset for manual download,
but only ZIP appears in updates.xml with matching SHA-256.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 02:04:23 -05:00
Jonathan Miller e40de18dbb fix: switch back to direct API file update for updates.xml sync
PR-based sync fails with branch protection requiring reviews.
Direct API update bypasses protection for bot commits.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-22 21:30:38 -05:00
Jonathan Miller c244790e44 fix: PR sync always runs, cleans up stale branches first
Removed conditional on CURRENT_BRANCH — workflow may be on version/XX
after archiving. Deletes stale PR branch before creating fresh one.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-22 04:29:26 -05:00
Jonathan Miller 327ffc7032 feat: release workflows run on dedicated 'release' runner
Updated auto-release and update-server templates + docs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-22 04:14:16 -05:00
Jonathan Miller 87ba8bc1c7 fix: install PHP+Composer if missing (works on any runner image)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-22 03:52:25 -05:00
jmiller 14c4408e8d docs: codify Gitea-first update server priority policy
- docs/workflows/update-server.md: added Update Server Priority section
  explaining why Gitea must be priority 1 (source of truth, self-hosted,
  GitHub mirrors may lag)
- templates: updated CLAUDE.md and copilot-instructions templates for
  Joomla extensions with the priority rule

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-22 08:37:05 +00:00
Jonathan Miller c3e989d150 feat: sync updates.xml to main via PR (respects branch protection)
Creates chore/update-xml-<version> branch, updates file, creates PR,
auto-merges, cleans up branch. Replaces direct API file push.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-22 03:16:21 -05:00
Jonathan Miller d146b5d51e fix: derive element from XML filename, not display name
Plugins like MokoWaaS have display name "System - MokoWaaS" but
element should be "mokowaas" (from mokowaas.xml filename).
Falls back to repo name for generic filenames like templateDetails.xml.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-22 02:45:31 -05:00
Jonathan Miller 4cf967f92b fix: stream-based tags (stable not vXX), derive element from repo name
- release_tag=stable instead of v${MAJOR}
- download URLs use /stable/ path
- Element fallback uses repo name not display name
- Updated channel-to-workflow docs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-22 02:19:03 -05:00
Jonathan Miller 4d99ab9a4e fix: git push -u origin HEAD for version branch (no upstream)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 21:33:11 -05:00
Jonathan Miller 617344c4d7 fix: GH_MIRROR_TOKEN → GH_TOKEN in all templates
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 21:12:12 -05:00
Jonathan Miller b57de90cef fix: add VERSION header to updates.xml in all workflow templates
Auto-release and update-server now write the copyright + VERSION
comment header when generating/rebuilding updates.xml.
Updated updates.xml.template scaffold to match.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 21:09:04 -05:00
Jonathan Miller dbd7ec8ae6 fix: hardcode MokoStandards-API branch to main (remove {{standards_branch}} placeholder)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 21:03:21 -05:00
Jonathan Miller f30c0dc9f9 docs: update multi-channel architecture — cascading channel updates
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 16:50:10 -05:00
Jonathan Miller dcd22dcfdc feat: cascading update channels — stable updates all, rc updates rc+below, etc
Channels cascade downward:
- stable → development, alpha, beta, rc, stable
- rc → development, alpha, beta, rc
- beta → development, alpha, beta
- alpha → development, alpha
- development → development

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 16:49:33 -05:00