Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
253af3f
feat: chatbox component extraction with Cypress demo (#633)
jeremyeder Feb 16, 2026
c6a68c0
feat: add Export Chat (Markdown / PDF) to session kebab menu (#625)
jeremyeder Feb 16, 2026
f8dbcbc
feat: add Unleash feature flag integration to frontend (#655)
maskarb Feb 18, 2026
e12fddd
feat: add Unleash feature flag integration to backend (#654)
maskarb Feb 18, 2026
1880c62
docs: add ADR-0006 for Unleash feature flag management (#652)
maskarb Feb 18, 2026
df3fd14
fix: disable OTel metrics export when no collector is configured (#644)
mprpic Feb 18, 2026
e4250c7
feat: add capabilities endpoint and enhance AGUI event handling (#613)
Gkrumbach07 Feb 18, 2026
7d442a7
feat: auto-stop idle sessions and preserve git repo state across rest…
adalton Feb 19, 2026
967a6d9
fix: replace DAC_READ_SEARCH with RunAsUser for OpenShift SCC compati…
Gkrumbach07 Feb 19, 2026
6b0521f
fix: kind cleanup fails when cluster created with different container…
jeremyeder Feb 21, 2026
82b9f98
feat: add shared PostgreSQL deployment for platform services (#659)
maskarb Feb 23, 2026
9584036
Shrinks CLAUDE.md after applying ambient claude.md generator (#643)
markturansky Feb 23, 2026
df54839
feat: Add resizable and collapsible left panel to workspace page (#631)
jeremyeder Feb 23, 2026
7f883fe
feat: adds ambient-api-server (#637)
markturansky Feb 23, 2026
1053920
fix(mcp): use wildcard syntax for MCP tool permissions (#668)
jwm4 Feb 23, 2026
cee9e92
feat: feedback loop improvements and branch handling fixes (#671)
Gkrumbach07 Feb 24, 2026
ea05467
feat: render streamed thinking events in session UI (#673)
Gkrumbach07 Feb 24, 2026
bc67f16
fix: remove over-engineered AGENTS.md symlink CI test (#675)
jeremyeder Feb 24, 2026
9063a6f
fix: remove deprecated interactive session flag across full stack (#674)
Gkrumbach07 Feb 24, 2026
a1e24b6
docs: add Unleash feature flags documentation and deployment scripts …
maskarb Feb 24, 2026
f66c411
Improve Jira integration UX with smart field pre-population (#647)
jeremyeder Feb 24, 2026
ecbd9cd
fix(backend): return 401 for expired tokens in ValidateProjectContext…
jeremyeder Feb 24, 2026
ab59c22
[Amber] Fix: ChatInputBox: Persist draft messages across page navigat…
github-actions[bot] Feb 24, 2026
0a8a900
feat: add pre-commit framework with all linters (#672)
jeremyeder Feb 24, 2026
68e9882
feat: add Unleash env vars to deployments and wire feature flags UI (…
maskarb Feb 24, 2026
6688f3a
refactor: use ambient-action in feedback loop via matrix strategy (#681)
Gkrumbach07 Feb 25, 2026
d350c78
fix: sanitize shell-special characters in feedback loop prompt (#682)
Gkrumbach07 Feb 25, 2026
961458f
Update ambient-action version in workflow
Gkrumbach07 Feb 25, 2026
4dd6361
fix: restore retry parameters in connectToRunner for runner startup (…
Gkrumbach07 Feb 25, 2026
0ff6aeb
feat: enhance workflow startup prompt handling (#690)
Gkrumbach07 Feb 25, 2026
702cf50
feat: add CI failure resolver workflow (#689)
jeremyeder Feb 25, 2026
e1149d1
chore: remove root-level cruft and harden .gitignore (#680)
jeremyeder Feb 26, 2026
f2dbcca
fix: move OpenShift Route out of kustomize base (#686)
jeremyeder Feb 26, 2026
b50d2b2
feat: adds ambient-sdk w/ python,go,typescript sdks (#677)
markturansky Feb 26, 2026
a42f59e
feat: harden PR merge review with workflow and milestone management (…
Gkrumbach07 Feb 26, 2026
1676e15
[Amber] Fix: [Amber] Go is missing in the Claude Code runner (#616)
github-actions[bot] Feb 27, 2026
ed1aec2
fix: run ambient-api-server-db as postgres user (UID 999) (#683)
jeremyeder Feb 27, 2026
e400ea3
fix: use ambient_code quay namespace in kind overlay (#685)
jeremyeder Feb 27, 2026
4b6d8a6
fix: timestamps changing (#693)
jwm4 Feb 27, 2026
a18f9d0
feat: show optimistic clone/remove status in Context accordion (#713)
maskarb Feb 27, 2026
4a18c64
fix(frontend): forward Authorization header for kind local dev, impro…
jwm4 Feb 27, 2026
08ffa43
[Amber] Fix: [Amber] export chat misses initial prompt (#715)
github-actions[bot] Feb 27, 2026
250b037
[Amber] Fix: Prevent session creation when API keys are not configure…
github-actions[bot] Feb 27, 2026
5233e4c
feat: Adds Ambient CLI (#703)
markturansky Feb 27, 2026
c3571dc
feat: add Access Keys to workspace sidebar with configurable token li…
Gkrumbach07 Feb 27, 2026
0d8c7e3
Add gRPC support for all Kinds (#699)
markturansky Feb 27, 2026
548393c
[Amber] Fix: Feature: Input history autocomplete for modal form field…
github-actions[bot] Feb 27, 2026
f1a0748
fix(deps): bump go_modules security dependencies with lint fixes (#688)
jeremyeder Feb 27, 2026
fd15268
fix: refresh credentials every run and pass Google refresh token thro…
Gkrumbach07 Feb 27, 2026
541ad68
docs: migrate from MkDocs to Astro Starlight with user-focused content
Gkrumbach07 Feb 27, 2026
595bc94
fix(docs): add base path for GitHub Pages deployment
Gkrumbach07 Feb 27, 2026
b30d52c
docs: update internal documentation paths and add new ADRs
Gkrumbach07 Feb 27, 2026
0c83e75
fix(docs): remove base path, use root
Gkrumbach07 Feb 27, 2026
9e0f404
docs: add architecture documentation and update components overview
Gkrumbach07 Feb 27, 2026
f5ce625
fix(docs): add /platform/ base path for GitHub Pages
Gkrumbach07 Feb 27, 2026
b2d59ea
fix: handle oversized tool call results gracefully (#727)
Gkrumbach07 Feb 27, 2026
1165631
fix(docs): convert absolute links to relative for base path compatibi…
Gkrumbach07 Feb 27, 2026
2960e13
fix(docs): add favicon from frontend
Gkrumbach07 Feb 27, 2026
f024821
chore: update favicon across frontend and docs
Gkrumbach07 Feb 27, 2026
406ee34
fix: add server-side timestamps, show run errors in chat (#730)
Gkrumbach07 Feb 28, 2026
9eecc37
fix(runner): enable CLAUDE.md discovery from additional directories (…
Gkrumbach07 Feb 28, 2026
18b1585
fix: compact jq output for GITHUB_OUTPUT compatibility (#735)
jeremyeder Mar 1, 2026
ed18288
Added workflow dispatch trigger
jeremyeder Mar 1, 2026
f112478
Revert "Added workflow dispatch trigger" (#743)
jeremyeder Mar 1, 2026
706eb3c
[Amber] Fix: [Amber] artifact column (#738)
github-actions[bot] Mar 1, 2026
f271971
extracts amber.review from github workflow for reuse (#707)
markturansky Mar 1, 2026
67d9c9a
[Amber] Fix: [Amber] increase upload file size limit (#751)
github-actions[bot] Mar 1, 2026
0fa6037
docs: add ambient ERD and RBAC software factory proposal
markturansky Mar 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
51 changes: 51 additions & 0 deletions .claude/commands/acp-compile.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
description: Submit a plan file to ACP for execution as an AgenticSession on the cluster.
---

## User Input

```text
$ARGUMENTS
```

## Steps

1. **Locate the plan file**:
- If `$ARGUMENTS` is a non-empty file path, use that file
- If `$ARGUMENTS` is empty, find the most recently modified `.md` file in `.claude/plans/`
- Read the plan file contents — this becomes the `initial_prompt`
- If no plan file is found, stop and ask the user to provide a path

2. **Get repository info**:
- Run `git remote get-url origin` to get the repo URL
- Run `git branch --show-current` to get the current branch

3. **Build the prompt**:
- Prepend a context header to the plan contents:
```
You are executing a plan that was compiled and submitted to ACP.
Repository: {repo_url}
Branch: {branch}

---

{plan_file_contents}
```

4. **Create the session**:
- Call the `acp_create_session` MCP tool with:
- `initial_prompt`: the assembled prompt from step 3
- `repos`: `["{repo_url}"]`
- `display_name`: `"Compiled: {plan_file_basename}"`
- `interactive`: `false`
- `timeout`: `1800`
- If the tool returns `created: false`, print the error message and stop

5. **Report results**:
- Print the session name and project from the response
- Print follow-up commands:
```
Check status: acp_list_sessions(project="...")
View logs: acp_get_session_logs(project="...", session="...")
```
- Do NOT wait for the session to complete — return immediately
138 changes: 138 additions & 0 deletions .claude/commands/amber.review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
---
description: Perform a comprehensive code review using repository-specific standards from the Amber memory system.
---

## User Input

```text
$ARGUMENTS
```

You **MUST** consider the user input before proceeding (if not empty). The input may specify files, a PR number, a branch, or a focus area.

## Goal

Perform a stringent, standards-driven code review against this repository's documented patterns, security requirements, and architectural conventions.

## Execution Steps

### 1. Load Memory System

Read all of the following files to build your review context. Do not skip any.

1. `CLAUDE.md` (master project instructions)
2. `.claude/context/backend-development.md` (Go backend, Gin, K8s integration)
3. `.claude/context/frontend-development.md` (NextJS, Shadcn UI, React Query)
4. `.claude/context/security-standards.md` (auth, RBAC, token handling, container security)
5. `.claude/patterns/k8s-client-usage.md` (user token vs service account)
6. `.claude/patterns/error-handling.md` (consistent error patterns)
7. `.claude/patterns/react-query-usage.md` (data fetching patterns)

### 2. Identify Changes to Review

Determine the scope based on user input:

- **If a PR number is provided**: Use `gh pr diff <number>` to get the diff
- **If files/paths are provided**: Review those specific files
- **If a branch is provided**: Diff against `main`
- **If no input**: Review all uncommitted changes (`git diff` + `git diff --cached`)

### 3. Perform Review

Evaluate every changed file against the loaded standards. Apply ALL relevant checks — do not cherry-pick.

#### Review Axes

1. **Code Quality** — Does it follow CLAUDE.md patterns? Naming conventions? No unnecessary comments?
2. **Security** — User token auth (`GetK8sClientsForRequest`), RBAC checks before operations, token redaction in logs, input validation, SecurityContext on Job pods, no secrets in code
3. **Performance** — Unnecessary re-renders, missing query key parameters, N+1 queries, unbounded list operations
4. **Testing** — Adequate coverage for new functionality? Tests follow existing patterns?
5. **Architecture** — Follows project structure from memory context? Correct layer separation (api/ vs queries/ in frontend, handlers/ vs types/ in backend)?
6. **Error Handling** — Follows error handling patterns? No `panic()`, no silent failures, wrapped errors with context, generic user messages with detailed server logs

#### Backend-Specific Checks (Go)

- [ ] All user operations use `GetK8sClientsForRequest`, never service account fallback
- [ ] No tokens in logs (use `len(token)`)
- [ ] Type-safe unstructured access (`unstructured.NestedMap`, not direct assertions)
- [ ] No `panic()` in production code
- [ ] Errors wrapped with `fmt.Errorf("context: %w", err)`
- [ ] `errors.IsNotFound` handled for 404 scenarios
- [ ] OwnerReferences set on child resources (Jobs, Secrets, PVCs)

#### Frontend-Specific Checks (TypeScript/React)

- [ ] Zero `any` types (use proper types or `unknown`)
- [ ] Shadcn UI components only (no custom buttons, inputs, dialogs)
- [ ] React Query for all data operations (no manual `fetch()` in components)
- [ ] `type` preferred over `interface`
- [ ] Single-use components colocated with their page
- [ ] Loading and error states handled
- [ ] Query keys include all relevant parameters

#### Security Checks (All Components)

- [ ] RBAC check performed before resource access
- [ ] No tokens or secrets in logs or error messages
- [ ] Input validated (K8s DNS labels, URL parsing)
- [ ] Log injection prevented (no raw newlines in logged user input)
- [ ] Generic error messages to users, detailed logs server-side
- [ ] Container SecurityContext: `AllowPrivilegeEscalation: false`, `Drop: ALL`

### 4. Classify Findings by Severity

Assign each finding exactly one severity level:

- **Blocker** — Must fix before merge. Security vulnerabilities, data loss risk, service account misuse for user operations, token leaks
- **Critical** — Should fix before merge. RBAC bypasses, missing error handling on K8s operations, `any` types in new code, `panic()` in handlers
- **Major** — Important to address. Architecture violations, missing tests for new logic, performance concerns, pattern deviations
- **Minor** — Nice-to-have. Style improvements, documentation gaps, minor naming inconsistencies

### 5. Produce Review Report

Output the review in this exact format:

```markdown
# Claude Code Review

## Summary
[1-3 sentence overview of the changes and overall assessment]

## Issues by Severity

### Blocker Issues
[Must fix before merge — or "None" if clean]

### Critical Issues
[Should fix before merge — or "None"]

### Major Issues
[Important to address — or "None"]

### Minor Issues
[Nice-to-have improvements — or "None"]

## Positive Highlights
[Things done well — always include at least one]

## Recommendations
[Prioritized action items, most important first]
```

For each issue, include:
- File path and line number(s)
- What the problem is
- Which standard it violates (reference the memory file)
- Suggested fix (code snippet when helpful)

## Operating Principles

- **Be stringent**: This is a quality gate, not a rubber stamp. Flag real issues.
- **Be specific**: Reference exact file:line, exact standard violated, exact fix.
- **Be fair**: Always acknowledge what was done well in Positive Highlights.
- **No false positives**: Only flag issues backed by the loaded standards. Do not invent rules.
- **Existing code is not in scope**: Only review changed/added lines unless existing code is directly affected.

## Context

$ARGUMENTS
Loading
Loading