Jordan Ritter
5cc3e04033
fix: debounce image drift alerts — only alert when stale set changes, not every 15min
2026-04-10 11:15:37 -07:00
Jordan Ritter
e5b323902e
fix: disable LFS in showcase drift detection checkout (fixes LFS fetch failures)
2026-04-10 11:13:35 -07:00
Jordan Ritter
49861ae3b4
ci: refactor showcase_deploy from 23 duplicate jobs to dynamic matrix
...
Replaced 23 identical build jobs with one parameterized matrix job.
1200 lines to ~250. Service config as JSON, matrix generated from
path-filter results. Shell special cases (LFS, build-args, custom
Dockerfile) handled via matrix properties and dedicated prep step.
2026-04-10 10:37:51 -07:00
Jordan Ritter
d55870c499
ci: consolidate commitlint into static_quality, add auto-fix on PRs
...
Merged standalone commitlint into static_quality as 4th parallel job.
Upgraded all actions to v4, added concurrency group. Format job now
auto-fixes and commits back to same-repo PR branches. Commitlint
posts helpful PR comment with valid prefixes on failure.
2026-04-10 10:37:51 -07:00
Jordan Ritter
189e20424b
ci: add concurrency groups to test workflows
...
Added cancel-in-progress concurrency to e2e_dojo, e2e_examples,
test_runtime-servers, and test_unit. Added pnpm cache to test_unit.
2026-04-10 10:37:51 -07:00
Jordan Ritter
d3e0e2d8db
ci: add path filters to publish-commit, upgrade actions and caching
...
publish-commit had no path/branch filters — fired on every push.
Restricted to packages/**, upgraded checkout to v4, added pnpm
cache and --frozen-lockfile to both publish workflows.
2026-04-10 10:37:50 -07:00
Jordan Ritter
f5462915c3
ci: fix static_danger matrix bug, python-sdk concurrency and dep pin
...
- static_danger: removed undefined matrix.node-version, upgraded to
v4, added concurrency and timeout
- python-sdk: added concurrency and timeout, pinned ag-ui-langgraph
<0.0.32 (0.0.32 imports non-existent ImageInputContent from ag_ui.core)
2026-04-10 10:37:42 -07:00
Jordan Ritter
38d22f5b6f
fix: skip drift check if main commit <20min old, fix literal newline in Slack message
2026-04-09 20:59:01 -07:00
Jordan Ritter
6f3b52f1ef
fix: remove || true from E2E install, add DOCKER_CLI_EXPERIMENTAL for image drift
2026-04-09 20:02:44 -07:00
Jordan Ritter
1d725e04da
fix: format shell-dojolike files and add binary check exclusion
2026-04-09 16:45:33 -07:00
Jordan Ritter
ac698e03c2
feat: add Dockerfile and deploy pipeline for shell-dojolike
2026-04-09 16:43:01 -07:00
Jordan Ritter
c4460d9610
feat: add image drift detection to showcase drift checks ( #3732 )
...
## Summary
Adds an image drift check to the 6-hourly drift detection workflow. For
each showcase service, compares the GHCR `:latest` image digest against
the image tagged with the current main HEAD SHA. If they don't match,
the service's image is stale (main has code that hasn't been
built/deployed).
Posts to #oss-alerts when stale images are detected:
```
📦 Image Drift Detected
⚠️ ms-agent-dotnet — GHCR image not built for current main
```
This catches the scenario where a merge to main changes showcase code
but the deploy workflow misses it due to timing/cancellation.
2026-04-09 16:09:02 -07:00
Jordan Ritter
3821e95b01
fix: guard redirect report to only run on schedule/dispatch ( #3731 )
...
Same fix as #3730 for the smoke monitor — push events trigger ghost runs
with no jobs. Stops the noisy GitHub notifications.
2026-04-09 16:06:54 -07:00
Jordan Ritter
5579cfd6aa
feat: add image drift detection to showcase drift checks
2026-04-09 15:54:10 -07:00
Jordan Ritter
1622186728
revert: restore NPM_TOKEN auth in release workflow (changesets doesn't support OIDC)
2026-04-09 15:54:01 -07:00
Jordan Ritter
28ef0856fb
ci: switch npm publish to OIDC trusted publishing (remove NPM_TOKEN)
2026-04-09 15:46:12 -07:00
Jordan Ritter
627009d3e1
fix(ci): remove empty with: block from showcase redirect-report workflow
2026-04-09 15:35:49 -07:00
Jordan Ritter
5ce8cd9a09
fix: guard redirect report to only run on schedule/dispatch
2026-04-09 15:30:21 -07:00
Jordan Ritter
93bca3d8ac
fix: guard smoke monitor job to only run on schedule/dispatch, not push
2026-04-09 15:20:20 -07:00
Jordan Ritter
168297fbda
feat: add Slack notifications for docs sync (auto-push and review PR)
2026-04-09 15:06:04 -07:00
Jordan Ritter
8ce19c5f6a
fix: remove hardcoded pnpm version 9, use packageManager from package.json
2026-04-09 14:50:20 -07:00
Jordan Ritter
a38a0747ab
fix: add per-service smoke/health links to Slack alerts
2026-04-09 14:37:54 -07:00
Jordan Ritter
0e53a48c19
feat: add aimock proxy for showcase smoke checks
2026-04-09 13:53:58 -07:00
Tyler Slaton
b3aa8ea18c
Merge branch 'main' into claude/debug-github-actions-ehR2n
2026-04-09 13:22:39 -07:00
Jordan Ritter
b97f03d111
fix(ci): use block scalar for jq in smoke-monitor workflow
2026-04-09 13:20:28 -07:00
Tyler Slaton
551f85db21
Merge branch 'main' into claude/debug-github-actions-ehR2n
2026-04-09 13:14:48 -07:00
Jordan Ritter
7eed375cfd
fix(ci): use block scalar for jq command in showcase redirect workflow
2026-04-09 13:11:05 -07:00
Claude
27625a9afd
fix(ci): write npm auth to correct config file for publish
...
The changesets/action@v1 writes auth to ~/.npmrc but
actions/setup-node sets NPM_CONFIG_USERCONFIG to a temp path,
causing pnpm to read a different .npmrc during publish. All packages
fail with E404 on PUT because the auth token isn't picked up.
This adds an explicit `npm config set` step that writes the literal
token to whichever file NPM_CONFIG_USERCONFIG points at.
https://claude.ai/code/session_01KnUcvcGEthP64SKk98HzJ6
2026-04-09 20:09:57 +00:00
Jordan Ritter
a3a0cae762
fix: use toJSON for safe Slack payload escaping
2026-04-09 12:48:23 -07:00
Jordan Ritter
edfc48585e
fix: use GitHub API for blame context instead of deep clone (repo is 750MB)
2026-04-09 12:46:00 -07:00
Jordan Ritter
1fc8b00128
fix: use full clone for git log blame context on all triggers
2026-04-09 12:45:08 -07:00
Jordan Ritter
8194630f45
fix: move capture before teardown, fix fetch-depth, safe env injection
2026-04-09 12:43:50 -07:00
Jordan Ritter
78285f448a
fix: remove duplicate GITHUB_OUTPUT redirect
2026-04-09 12:42:06 -07:00
Jordan Ritter
4c1b70ea7b
feat: include blame context in failure alerts (PR author/commits or dep drift)
2026-04-09 12:37:04 -07:00
Jordan Ritter
9a377c7574
feat: include failure cause in Slack alerts and GitHub issues
2026-04-09 12:37:04 -07:00
Jordan Ritter
123a5d76f9
fix: switch Slack alerts to slackapi/slack-github-action, gate drift alerts to schedule-only
2026-04-09 12:24:34 -07:00
Jordan Ritter
74fc015dbf
fix: remove GHCR login — public images should pull without auth
2026-04-09 09:18:52 -07:00
Jordan Ritter
b8dc9ad843
fix: add packages:read permission for GHCR aimock image pull
2026-04-09 09:17:24 -07:00
Jordan Ritter
ef55874072
fix: format files and add GHCR login to CI workflow
2026-04-09 09:16:05 -07:00
Jordan Ritter
7e7311bf21
ci: add workflow for starter smoke tests
2026-04-09 08:33:25 -07:00
Jordan Ritter
204dd29a97
fix: standardize health checks on /health port 8000
2026-04-08 21:22:35 -07:00
Jordan Ritter
6d05499ecd
feat: add automated docs sync from main with transform pipeline
2026-04-08 19:59:31 -07:00
Jordan Ritter
31f046d0ac
feat: add SEO redirect infrastructure with PostHog tracking
2026-04-08 19:59:30 -07:00
Jordan Ritter
5284614227
feat: add health monitoring with smoke endpoints, drift detection, and Slack alerts
2026-04-08 19:59:30 -07:00
Jordan Ritter
759ffeb29a
feat: add animated preview GIFs with per-demo capture automation
2026-04-08 19:59:30 -07:00
Jordan Ritter
479e62cb7f
feat: add unified showcase platform with CI, Docker starters, and 13 deployed integrations
2026-04-08 19:59:29 -07:00
Jordan Ritter
bd119c29e1
fix(docs): update stale model names + add CI validation ( #3666 )
...
## Summary
Comprehensive docs quality infrastructure — model name validation,
executable doc tests, and 8 community docs fixes rolled up.
### Docs fixes (supersedes 8 PRs)
- **gpt-5.2 → gpt-5.4** across 70 files, 124 occurrences (supersedes
#3655 )
- **Anthropic model IDs** dots → hyphens to match API/AI SDK format
(supersedes #3656 )
- **LangGraph FastAPI quickstart** — missing `import uvicorn`, missing
`MemorySaver` checkpointer, `port` string→int (supersedes #3661 , with
contributor's `langgrapg` typo fixed)
- **AG2 ContextVariables import** — moved from `autogen` to
`autogen.agentchat` per latest AG2 (supersedes #3658 , verified via
Docker)
- **CrewAI Flows** — comment out deprecated CLI option (supersedes
#3667 )
- **Pydantic quickstart** — pin Starlette 0.45.3 (1.0.0 is incompatible,
verified via Docker) (supersedes #3660 )
- **CopilotChat example** — add missing `default` export for Next.js
page components (supersedes #3669 )
- **globals.css import** — add to all 9 quickstart layout examples so
customization section works (supersedes #3665 )
### Model name validation (new)
- `docs/model-allowlist.json` — maintained list of valid model names by
provider (OpenAI, Anthropic, Google, Cohere, Meta)
- `scripts/validate-doc-model-names.ts` — CI lint that extracts model
names from docs code blocks and validates against allowlist
- 20 tests
### Executable doc tests (new, Phase 1)
- `scripts/doc-tests/extract.ts` — remark + remark-mdx AST parser finds
`doctest`-tagged code blocks in MDX
- `scripts/doc-tests/run.ts` — execution harness: installs deps, points
at aimock, runs server/script/component snippets
- `.github/workflows/test_doc-examples.yml` — CI triggered on `docs/**`
changes (previously excluded from ALL CI)
- LangGraph FastAPI quickstart tagged as first `doctest="server"`
example
- 10 tests for extraction
### Spec
[Executable Doc Tests proposal on
Notion](https://www.notion.so/33c3aa38185281388a21e8dfe752ac5e )
## Supersedes
| PR | Fix | Status |
|----|-----|--------|
| #3655 | gpt-5.2-mini → gpt-5.4-mini | ✅ Included (all 70 files, not
just 22) |
| #3656 | Anthropic dots → hyphens | ✅ Included |
| #3658 | AG2 ContextVariables import | ✅ Included (verified via Docker)
|
| #3660 | Starlette pin | ✅ Included (verified via Docker) |
| #3661 | LangGraph FastAPI quickstart | ✅ Included (with typo fix) |
| #3665 | globals.css import | ✅ Included |
| #3667 | CrewAI deprecated CLI | ✅ Included |
| #3669 | CopilotChat default export | ✅ Included |
All 8 PRs can be closed when this merges.
## Test plan
- [x] Model name validator passes (0 violations)
- [x] 20 validator unit tests pass
- [x] 10 extraction unit tests pass
- [x] Build passes
- [x] Commitlint passes
- [ ] CI workflow validates doc examples on docs/** changes
🤖 Generated with [Claude Code](https://claude.com/claude-code )
2026-04-08 19:53:11 -07:00
Jordan Ritter
aabce2c548
chore: add remark/unified deps for doc test extraction
2026-04-08 19:46:15 -07:00
Jordan Ritter
84fb4c6c0a
feat: executable doc tests — extract, run, and validate MDX code snippets
...
AST-based extraction (remark + remark-mdx) finds doctest-tagged code
blocks in MDX files. Execution harness runs them against aimock with
category-specific validation (server health-check, script exit code,
component type-check). CI workflow triggers on docs/** changes.
- stripCommonIndent for JSX-indented blocks
- validateDepName for shell injection prevention
- try/finally process cleanup on all spawn paths
- 10 extraction tests
2026-04-08 18:55:39 -07:00
Tyler Slaton
6637142c72
ci: remove prerelease auto-merge
2026-04-08 17:12:05 -07:00