这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
7eeada3
The original controller initialization pattern used direct struct ini…
dexhorthy Jun 10, 2025
ecd3ac5
do some refacotoring
dexhorthy Jun 10, 2025
59f2ed5
Implement v1beta3 events endpoint and ContactChannel creation
dexhorthy Jun 13, 2025
daf1538
Implement k8s-style Secure Random String (SRS) to replace UUID usage
dexhorthy Jun 13, 2025
4b6653f
Fix parallel LLM calls race condition with task-level synchronization
dexhorthy Jun 13, 2025
e2e4ead
Add projectSlug and orgSlug fields to ContactChannel status
dexhorthy Jun 13, 2025
60b9cb0
Implement respond_to_human tool call logic for v1beta3 events
dexhorthy Jun 13, 2025
da1c666
Verify parallel LLM calls fix with live testing
dexhorthy Jun 13, 2025
f927143
Consolidate SRS implementation and add comprehensive testing
dexhorthy Jun 13, 2025
6ab5171
Clean up redundant code in ContactChannel controller
dexhorthy Jun 13, 2025
37d8efb
Add channelApiKey and channelId support to ContactChannel CRD
dexhorthy Jun 13, 2025
6e2785d
Add thread_id support for conversation continuity in v1beta3 events
dexhorthy Jun 13, 2025
b30580a
Fix line length linting errors before merge
dexhorthy Jun 13, 2025
ef95a74
Complete merge of acp-srs-dev - implement k8s-style SRS
dexhorthy Jun 13, 2025
a273e40
Complete SRS implementation with successful k8s cluster validation
dexhorthy Jun 13, 2025
9eb264d
Add ContactChannelRef support to Task CRD
dexhorthy Jun 13, 2025
1d5715c
Add Kubernetes lease-based distributed locking for multi-pod deployments
dexhorthy Jun 13, 2025
dd0b308
Complete merge of acp-parallel-dev - fix parallel LLM calls race cond…
dexhorthy Jun 13, 2025
41555c3
Update HumanLayer client to support channel-specific authentication
dexhorthy Jun 13, 2025
fe01978
Merge branch 'acp-channelapikey-dev' into acp-merge-dev
dexhorthy Jun 13, 2025
ea4f748
Complete merge of acp-projectid-dev - clean up ContactChannel project…
dexhorthy Jun 13, 2025
be1c0fe
Complete merge of acp-taskspec-dev - add ContactChannelRef support to…
dexhorthy Jun 13, 2025
a2e74dd
Complete channelApiKey and channelId implementation with testing
dexhorthy Jun 13, 2025
6b4558b
Add comprehensive distributed locking documentation
dexhorthy Jun 14, 2025
08619fc
Fix APIKeySource pointer type in test
dexhorthy Jun 14, 2025
46b7370
Add multiplan manager scripts for parallel agent work
dexhorthy Jun 14, 2025
488830a
Update kustomization for ContactChannel Task integration testing
dexhorthy Jun 14, 2025
0eb7c41
Update getting started guide to reflect new k8s-style SRS naming
dexhorthy Jun 14, 2025
e9de984
Complete merge of acp-v1beta3-dev - add v1beta3 events endpoint with …
dexhorthy Jun 14, 2025
893ed8f
Update auto-generated files after v1beta3 merge
dexhorthy Jun 14, 2025
48cdc23
Complete v1beta3 events implementation and successful testing
dexhorthy Jun 14, 2025
8e776da
Merge branch 'acp-srs-dev' into acp-merge-dev
dexhorthy Jun 14, 2025
2f04c0c
Merge branch 'acp-parallel-dev' into acp-merge-dev
dexhorthy Jun 14, 2025
173713d
Merge branch 'acp-channelapikey-dev' into acp-merge-dev
dexhorthy Jun 14, 2025
4c464c2
Merge branch 'acp-taskspec-dev' into acp-merge-dev
dexhorthy Jun 14, 2025
c4c64c6
Merge branch 'acp-v1beta3-dev' into acp-merge-dev
dexhorthy Jun 14, 2025
cfb46fa
Add handy commands section to multiplan manager docs
dexhorthy Jun 14, 2025
11a338a
Implement template-based kustomization.yaml for local builds
dexhorthy Jun 14, 2025
ea2b907
remove kustomization yaml to use templating instead
dexhorthy Jun 14, 2025
4463cb2
Merge branch 'manager' into acp-merge-dev
dexhorthy Jun 14, 2025
de51c6a
more changes
dexhorthy Jun 14, 2025
b28fca0
Merge branch 'manager' into acp-merge-dev
dexhorthy Jun 14, 2025
521a5cb
Fix humanlayer_client.go timeout issues
dexhorthy Jun 14, 2025
53f1a5a
Fix Human as Tool workflow - External Call ID not populated
dexhorthy Jun 14, 2025
2c437c3
Fix Human Approval workflow by using valid email addresses
dexhorthy Jun 14, 2025
d10f20f
manager-things
dexhorthy Jun 14, 2025
cbf6a63
Merge branch 'acp-merge-dev' into manager
dexhorthy Jun 14, 2025
7d295fa
Fix CI by adding mocks generation to test target
dexhorthy Jun 14, 2025
f16727f
Merge branch 'acp-merge-dev' into manager
dexhorthy Jun 14, 2025
496ddbe
permissions fix
dexhorthy Jun 14, 2025
95cb347
Merge branch 'base' of github.com:dexhorthy/smallchain into base
dexhorthy Jun 14, 2025
fd57a2f
Merge branch 'base' into manager
dexhorthy Jun 14, 2025
10e141d
fixing ci
dexhorthy Jun 14, 2025
d6433d8
disable, try some codeowner, need to come back to this later
dexhorthy Jun 14, 2025
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
1 change: 1 addition & 0 deletions .cursorrules
11 changes: 11 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# CODEOWNERS file for authorized Claude CI users
# This file defines who can trigger Claude workflows via comments and PRs
# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners

# Global owners - these users can trigger Claude workflows
* @dexhorthy @balanceiskey @AdjectiveAllison

# !!claudecode @dexhorthy @balanceiskey @AdjectiveAllison

.github/workflows/ @dexhorthy
.github/CODEOWNERS @dexhorthy
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,25 @@ jobs:
pull-requests: write
issues: write
id-token: write
env:
OVERRIDE_GITHUB_TOKEN: ${{ secrets.CLAUDE_PAT_TOKEN }}
steps:
- name: Check authorization
id: auth-check
run: |
# Get the PR author
PR_AUTHOR="${{ github.event.pull_request.user.login }}"
echo "PR author: $PR_AUTHOR"

# List of authorized users from CODEOWNERS
AUTHORIZED_USERS=$(cat .github/CODEOWNERS | grep !!claudecode | cut -d' ' -f3-)

# Check if user is authorized
if echo "$AUTHORIZED_USERS" | grep -w "$PR_AUTHOR" > /dev/null; then
echo "User $PR_AUTHOR is authorized"
echo "authorized=true" >> $GITHUB_OUTPUT
else
echo "User $PR_AUTHOR is not authorized to trigger Claude workflows"
echo "authorized=false" >> $GITHUB_OUTPUT
fi
# Simply checking out the repository is sufficient - the action handles the PR code
- name: Checkout code
uses: actions/checkout@v4
Expand All @@ -23,13 +39,15 @@ jobs:


- name: Run Code Review with Claude
if: steps.auth-check.outputs.authorized == 'true'
uses: anthropics/claude-code-action@beta
env:
OVERRIDE_GITHUB_TOKEN: ${{ secrets.CLAUDE_PAT_TOKEN }}
with:
# Your Anthropic API key
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

# GitHub token for API access
github_token: ${{ secrets.CLAUDE_PAT_TOKEN }}

# Direct prompt for Claude to execute
direct_prompt: "Review the PR changes. Focus on code quality, potential bugs, and performance issues. Suggest improvements where appropriate. Pay special attention to Kubernetes operator patterns and Go best practices according to the CLAUDE.md file."

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,24 @@ jobs:
issues: write
id-token: write
steps:
# Set environment variables for Claude Code Action
- name: Set up environment
- name: Check authorization
id: auth-check
run: |
echo "OVERRIDE_GITHUB_TOKEN=${{ secrets.CLAUDE_PAT_TOKEN }}" >> $GITHUB_ENV
echo "Setting up PAT token for Claude Code Action"
# Get the comment author
COMMENT_AUTHOR="${{ github.event.comment.user.login }}"
echo "Comment author: $COMMENT_AUTHOR"

# List of authorized users from CODEOWNERS
AUTHORIZED_USERS=$(cat .github/CODEOWNERS | grep !!claudecode | cut -d' ' -f3-)

# Check if user is authorized
if echo "$AUTHORIZED_USERS" | grep -w "$COMMENT_AUTHOR" > /dev/null; then
echo "User $COMMENT_AUTHOR is authorized"
echo "authorized=true" >> $GITHUB_OUTPUT
else
echo "User $COMMENT_AUTHOR is not authorized to trigger Claude workflows"
echo "authorized=false" >> $GITHUB_OUTPUT
fi

# Simply checking out the repository is sufficient
- name: Checkout code
Expand All @@ -27,14 +40,17 @@ jobs:
fetch-depth: 0 # Get full history for accurate diffs

- name: Claude Response
if: steps.auth-check.outputs.authorized == 'true'
uses: anthropics/claude-code-action@beta
with:
# Your Anthropic API key
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

# GitHub token for API access
github_token: ${{ secrets.CLAUDE_PAT_TOKEN }}

# Explicitly set the trigger phrase
trigger_phrase: "@claude"
# Note: Token is provided via OVERRIDE_GITHUB_TOKEN environment variable

# Timeout for execution
timeout_minutes: 20
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,24 @@ jobs:
issues: write
id-token: write
steps:
# Set environment variables for Claude Code Action
- name: Set up environment
- name: Check authorization
id: auth-check
run: |
echo "OVERRIDE_GITHUB_TOKEN=${{ secrets.CLAUDE_PAT_TOKEN }}" >> $GITHUB_ENV
echo "Setting up PAT token for Claude Code Action"
# Get the comment author
COMMENT_AUTHOR="${{ github.event.comment.user.login }}"
echo "Comment author: $COMMENT_AUTHOR"

# List of authorized users from CODEOWNERS
AUTHORIZED_USERS=$(cat .github/CODEOWNERS | grep !!claudecode | cut -d' ' -f3-)

# Check if user is authorized
if echo "$AUTHORIZED_USERS" | grep -w "$COMMENT_AUTHOR" > /dev/null; then
echo "User $COMMENT_AUTHOR is authorized"
echo "authorized=true" >> $GITHUB_OUTPUT
else
echo "User $COMMENT_AUTHOR is not authorized to trigger Claude workflows"
echo "authorized=false" >> $GITHUB_OUTPUT
fi

# Simply checking out the repository is sufficient
- name: Checkout code
Expand All @@ -33,7 +46,7 @@ jobs:

# If running on a PR comment, we need to explicitly check out the PR branch
- name: Checkout PR branch if needed
if: github.event.issue.pull_request
if: github.event.issue.pull_request && steps.auth-check.outputs.authorized == 'true'
run: |
# Get the PR number from the issue object
PR_NUMBER="${{ github.event.issue.number }}"
Expand All @@ -53,14 +66,17 @@ jobs:
GITHUB_TOKEN: ${{ secrets.CLAUDE_PAT_TOKEN }}

- name: Claude PR Creation
if: steps.auth-check.outputs.authorized == 'true'
uses: anthropics/claude-code-action@beta
with:
# Your Anthropic API key
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

# GitHub token for API access
github_token: ${{ secrets.CLAUDE_PAT_TOKEN }}

# Explicitly set the trigger phrase
trigger_phrase: "@claude"
# Note: Token is provided via OVERRIDE_GITHUB_TOKEN environment variable

# Timeout for execution (longer for PR creation)
timeout_minutes: 30
12 changes: 12 additions & 0 deletions .github/workflows/go-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ jobs:
path: acp/bin
key: ${{ runner.os }}-acp-bin-${{ hashFiles('acp/Makefile') }}

- name: Generate mocks
working-directory: acp
run: make mocks

- name: Install golangci-lint
working-directory: acp
run: make golangci-lint
Expand Down Expand Up @@ -71,6 +75,10 @@ jobs:
path: acp/bin
key: ${{ runner.os }}-acp-bin-${{ hashFiles('acp/Makefile') }}

- name: Generate mocks
working-directory: acp
run: make mocks

- name: Run tests
working-directory: acp
run: make test
Expand Down Expand Up @@ -102,6 +110,10 @@ jobs:
path: acp/bin
key: ${{ runner.os }}-acp-bin-${{ hashFiles('acp/Makefile') }}

- name: Generate mocks
working-directory: acp
run: make mocks

- name: Build
working-directory: acp
run: make build
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@
# Generated files
acp_commands.sh

# Generated kustomization files
acp/config/localdev/kustomization.yaml

acp/config/tmp/
135 changes: 0 additions & 135 deletions CLAUDE.md

This file was deleted.

23 changes: 0 additions & 23 deletions CONTRIBUTING.md

This file was deleted.

Loading