Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
ff9eac1
Feat: add `jaiph serve` HTTP API with OpenAPI and Swagger UI
dzikowski Jul 24, 2026
e4e3874
Feat: stream serve run events and expose run artifacts
dzikowski Jul 24, 2026
a604ee3
Feat: export run traces to an OTLP collector
dzikowski Jul 24, 2026
f48df9f
Feat: report failed runs to Sentry as error events
dzikowski Jul 24, 2026
1854524
Feat: support running the runtime image standalone in docker/k8s
dzikowski Jul 24, 2026
0504ea1
Chore: queue service hardening work for Fable
dzikowski Jul 24, 2026
a165cd5
Fix: redact credentials from every returned workflow result
dzikowski Jul 24, 2026
eb1620a
Fix: keep MCP generations alive while calls are in flight
dzikowski Jul 24, 2026
c3ef50d
Chore: gate engineer workflow on Claude capacity
dzikowski Jul 24, 2026
1bd7c60
Fix: bound jaiph serve memory, output, and run retention
dzikowski Jul 24, 2026
de9f101
Chore: lower Claude capacity threshold
dzikowski Jul 24, 2026
ba416d0
Fix: harden deployment and stream serve I/O
dzikowski Jul 24, 2026
f2c92a9
Feat: unify execution-policy contract across run, serve, and MCP
dzikowski Jul 24, 2026
0174615
Fix: give every run mode complete, bounded telemetry
dzikowski Jul 25, 2026
43c1265
Feat: expose REST and MCP Streamable HTTP from one serve process
dzikowski Jul 25, 2026
f4c12b0
Feat: make serve runs restart-safe and retry-safe
dzikowski Jul 27, 2026
7ffb2c6
Feat: add OIDC/JWT auth, scoped authz, and audit identity to serve
dzikowski Jul 27, 2026
1294a06
Fix: lazy-load serve command to avoid loading OIDC/JWT deps for every…
dzikowski Jul 27, 2026
560bf3f
Chore: add monorepo homes for editor plugins and setup action
dzikowski Jul 29, 2026
289a623
Chore: replace ad-hoc .jaiph scratch with a serve/mcp hub
dzikowski Jul 29, 2026
c41c0a4
Feat: refresh in-tree VS Code plugin for current language
dzikowski Jul 29, 2026
098adc1
Feat: add Zed language extension with Tree-sitter grammar
dzikowski Jul 29, 2026
f8b38f7
Feat: add setup-jaiph composite action for CI installs
dzikowski Jul 29, 2026
4c84137
Release: stamp v0.12.0 and align plugin versions
dzikowski Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,39 @@ jobs:
VERSION="$(node -p "require('./package.json').version")"
git ls-remote --exit-code https://github.com/jaiphlang/jaiph.git "refs/tags/v${VERSION}"

k8s-manifest:
name: Validate Kubernetes deploy manifest
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

# `kubectl apply --dry-run=client` still needs an API server for resource
# discovery (RESTMapper), so provision a throwaway kind cluster for it.
# The same cluster then backs the real deploy test below.
- name: Create kind cluster
uses: helm/kind-action@v1
with:
cluster_name: jaiph-e2e

# Fast schema gate — cheap, but only proves the manifest parses.
- name: Dry-run apply the standalone deploy manifest
run: kubectl apply --dry-run=client -f docs/deploy/k8s.yaml

- name: Build runtime image for the deploy test
run: docker build -t jaiph-e2e-runtime:local -f runtime/Dockerfile .

# Real deployment contract: external Secret gate, pod hardening
# (non-root, no privilege escalation, dropped caps, no SA token,
# read-only rootfs), an authenticated HTTP run, and its journal on the
# writable runs volume.
- name: Deploy and exercise the manifest on kind
run: |
JAIPH_E2E_SKIP_INSTALL=1 \
JAIPH_E2E_KIND_CLUSTER=jaiph-e2e \
JAIPH_E2E_DOCKER_IMAGE=jaiph-e2e-runtime:local \
bash e2e/tests/150_k8s_deploy.sh

e2e:
name: E2E (${{ matrix.os }}, ${{ matrix.label }})
runs-on: ${{ matrix.os }}
Expand Down
40 changes: 40 additions & 0 deletions .github/workflows/setup-jaiph-action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: setup-jaiph action

# Path-filtered so core PRs do not run this. Exercises the composite action from
# this repo on the runners it advertises (Linux + macOS) against the nightly
# release so it does not bitrot.
on:
push:
paths:
- "actions/setup-jaiph/**"
- "docs/install"
- ".github/workflows/setup-jaiph-action.yml"

jobs:
setup-jaiph:
name: Install nightly and run jaiph
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install jaiph
id: setup
uses: ./actions/setup-jaiph
with:
version: nightly

# jaiph must be on PATH for subsequent steps, and the action's output must
# match what the CLI reports directly.
- name: Verify jaiph is on PATH
shell: bash
run: |
which jaiph
got="$(jaiph --version)"
echo "on PATH: ${got}"
echo "action output: ${{ steps.setup.outputs.version }}"
[ "${got}" = "${{ steps.setup.outputs.version }}" ]
43 changes: 43 additions & 0 deletions .github/workflows/vscode-plugin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: VS Code plugin

# Path-filtered so core PRs do not rebuild the extension by default. Runs when
# the plugin tree changes, or when the compile command it depends on changes
# (the diagnostics tests invoke the real `jaiph compile --json` contract).
on:
push:
paths:
- "plugins/vscode/**"
- "src/cli/commands/compile.ts"
- ".github/workflows/vscode-plugin.yml"

jobs:
vscode-plugin:
name: Compile, grammar & diagnostics tests, package
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm

# The plugin's diagnostics tests run the real monorepo CLI, so build it.
- name: Build the jaiph CLI
run: |
npm ci
npm run build

- name: Install plugin dependencies
run: npm ci
working-directory: plugins/vscode

- name: Typecheck, compile, grammar & diagnostics tests
run: npm test
working-directory: plugins/vscode

- name: Package the extension
run: npm run package
working-directory: plugins/vscode
33 changes: 33 additions & 0 deletions .github/workflows/zed-plugin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Zed plugin

# Path-filtered so core PRs do not rebuild the extension by default. Runs when
# the Zed extension tree or the Tree-sitter grammar it pins changes.
on:
push:
paths:
- "plugins/zed/**"
- "grammars/tree-sitter-jaiph/**"
- ".github/workflows/zed-plugin.yml"

jobs:
zed-plugin:
name: Grammar generate & highlight query-check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"

- name: Install plugin dependencies
run: npm install
working-directory: plugins/zed

# Regenerates the grammar from grammar.js and query-checks the shipped
# highlights.scm / injections.scm against the fixtures.
- name: Grammar & highlight query-check
run: npm test
working-directory: plugins/zed
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,10 @@ jaiph.key

# OS/editor files
.DS_Store
.vscode/
# Only the repo-root editor folder — do not blanket-ignore plugins/vscode/.vscode/
/.vscode/
*.swp
*.vsix

.jaiph/runs/
.jaiph/*.jaiph.map
Expand Down
25 changes: 0 additions & 25 deletions .jaiph/async.jh

This file was deleted.

2 changes: 1 addition & 1 deletion .jaiph/docs_parity.jh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

config {
agent.backend = "claude"
agent.model = "opus"
agent.model = "fable"
agent.claude_flags = "--permission-mode bypassPermissions"
}

Expand Down
Loading
Loading