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
Tyler Slaton
7de3fe68be
ci: fix npm publish auth in release workflow
2026-04-08 17:09:58 -07:00
Tyler Slaton
409216a8bf
ci: reopen next prerelease mode after stable releases
2026-04-08 17:00:55 -07:00
Tyler Slaton
13bf1be0f0
ci: guard release package allowlist
2026-04-08 16:20:28 -07:00
Tyler Slaton
fac304b60f
feat: restore stable release tags and GitHub releases
2026-04-08 15:40:35 -07:00
Tyler Slaton
bf44b1d02f
chore: remove nx cloud release env setup
2026-04-08 15:18:10 -07:00
Tyler Slaton
100a882ebe
fix: repair protected-branch release flow
2026-04-08 15:18:10 -07:00
Alem Tuzlak
9a6ee39d96
chore(runtime): update package config, CI workflows, and docs
...
- Add package.json exports for v2/{express,hono,node} subpaths
- Add elysia devDependency and tsdown entry points
- Exclude bun integration tests from vitest config
- Update CI workflows to include runtime-servers test job
- Add runtime-server-adapter docs page
- Add changeset for the fetch-based runtime feature
2026-04-03 18:41:27 +02:00
Alem Tuzlak
e9d026577b
ci: add NX_VERBOSE_LOGGING to all workflows
...
https://claude.ai/code/session_01GMkSf29p78HuMR1mbXn8He
2026-04-02 16:39:06 +02:00
Alem Tuzlak
79ce60c580
chore: migrate from eslint+prettier to oxlint+oxfmt
...
Replace eslint and prettier with oxlint and oxfmt for faster linting
and formatting across the monorepo. Remove all eslint and prettier
configs, dependencies, and related packages. Add .oxlintrc.json and
.oxfmtrc.json for the new tooling. Update CI workflows and lefthook
hooks accordingly. Reformat codebase with oxfmt.
https://claude.ai/code/session_01GMkSf29p78HuMR1mbXn8He
2026-04-02 16:39:05 +02:00
Claude
5d612556d4
fix: address flaky CI unit tests
...
- Add fail-fast: false to unit test matrix strategies so one Node
version failing doesn't cancel all other matrix jobs
- Add retry: 2 to runtime-client-gql vitest config (Nx confirmed
this package's tests as flaky during parallel execution)
- Replace fragile setTimeout waits in middleware express tests with
vi.waitFor() polling, which is resilient to CI timing variance
https://claude.ai/code/session_01W2Kb2HXsjZett3HdqM9zay
2026-04-01 11:50:56 +02:00
Jordan Ritter
ab025fea5a
ci: auto-merge showcase-only PRs from Demo team
...
Add CopilotKit/demo as CODEOWNER for examples/showcases/ alongside
the existing dev team for reviewer auto-assignment.
Add a workflow that checks Demo team membership, verifies all changed
files are under examples/showcases/, then auto-approves and enables
auto-merge. PRs touching anything outside showcases or from non-Demo
members sit for normal review.
2026-03-30 11:57:09 -07:00