devloop 0.3.2__tar.gz → 0.3.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {devloop-0.3.2 → devloop-0.3.3}/PKG-INFO +1 -1
- {devloop-0.3.2 → devloop-0.3.3}/pyproject.toml +1 -1
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/templates/claude_commands/agent-summary.md +1 -1
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/templates/git_hooks/pre-commit +12 -10
- devloop-0.3.3/src/devloop/cli/templates/git_hooks/pre-push +114 -0
- {devloop-0.3.2 → devloop-0.3.3}/LICENSE +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/README.md +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/__init__.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/__init__.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/agent_health_monitor.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/ci_monitor.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/code_rabbit.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/doc_lifecycle.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/echo.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/file_logger.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/formatter.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/git_commit_assistant.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/linter.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/performance_profiler.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/sandbox_helper.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/security_scanner.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/snyk.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/test_runner.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/agents/type_checker.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/__init__.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/commands/__init__.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/commands/custom_agents.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/commands/feedback.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/commands/summary.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/main.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/main_v1.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/pyodide_installer.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/templates/claude_commands/README.md +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/templates/claude_commands/devloop-findings.md +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/templates/claude_commands/devloop-status.md +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/templates/git_hooks/pre-commit-checks +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/collectors/__init__.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/collectors/base.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/collectors/filesystem.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/collectors/git.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/collectors/manager.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/collectors/process.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/collectors/system.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/__init__.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/agent.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/agent_template.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/amp_integration.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/auto_fix.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/backup_manager.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/config.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/context.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/context_store.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/contextual_feedback.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/custom_agent.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/debug_trace.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/event.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/event_store.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/feedback.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/learning.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/manager.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/operational_health.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/performance.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/proactive_feedback.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/summary_formatter.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/core/summary_generator.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/security/__init__.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/security/audit_logger.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/security/bubblewrap_sandbox.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/security/cgroups_helper.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/security/factory.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/security/no_sandbox.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/security/package.json +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/security/pyodide_runner.js +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/security/pyodide_sandbox.py +0 -0
- {devloop-0.3.2 → devloop-0.3.3}/src/devloop/security/sandbox.py +0 -0
|
@@ -4,7 +4,7 @@ description: Show intelligent summary of recent dev-agent findings
|
|
|
4
4
|
|
|
5
5
|
Generate a summary of recent devloop agent findings by running:
|
|
6
6
|
```bash
|
|
7
|
-
|
|
7
|
+
devloop summary agent-summary recent
|
|
8
8
|
```
|
|
9
9
|
|
|
10
10
|
The summary should include:
|
|
@@ -9,16 +9,18 @@
|
|
|
9
9
|
# 4. Any existing pre-commit.old hook
|
|
10
10
|
#
|
|
11
11
|
|
|
12
|
-
# Check if pyproject.toml changed but poetry.lock didn't
|
|
13
|
-
if
|
|
14
|
-
if
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
12
|
+
# Check if pyproject.toml changed but poetry.lock didn't (only in Poetry projects)
|
|
13
|
+
if [ -f "poetry.lock" ]; then
|
|
14
|
+
if git diff --cached --name-only | grep -q "pyproject.toml"; then
|
|
15
|
+
if ! git diff --cached --name-only | grep -q "poetry.lock"; then
|
|
16
|
+
echo "ERROR: pyproject.toml changed but poetry.lock not updated"
|
|
17
|
+
echo "This will cause CI failure: 'poetry.lock was last generated' error"
|
|
18
|
+
echo ""
|
|
19
|
+
echo "Fix: Run 'poetry lock' and stage both files"
|
|
20
|
+
echo " poetry lock"
|
|
21
|
+
echo " git add poetry.lock"
|
|
22
|
+
exit 1
|
|
23
|
+
fi
|
|
22
24
|
fi
|
|
23
25
|
fi
|
|
24
26
|
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Pre-push hook: Verify CI passes before pushing to remote
|
|
3
|
+
# Prevents pushing code that fails local checks
|
|
4
|
+
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
# Colors for output
|
|
8
|
+
RED='\033[0;31m'
|
|
9
|
+
GREEN='\033[0;32m'
|
|
10
|
+
YELLOW='\033[1;33m'
|
|
11
|
+
NC='\033[0m' # No Color
|
|
12
|
+
|
|
13
|
+
echo -e "${YELLOW}[CI Check] Running pre-push verification...${NC}"
|
|
14
|
+
|
|
15
|
+
# Check if gh CLI is available
|
|
16
|
+
if ! command -v gh &> /dev/null; then
|
|
17
|
+
echo -e "${YELLOW}[CI Check] gh CLI not found, skipping remote CI check${NC}"
|
|
18
|
+
echo -e "${YELLOW}[CI Check] Install GitHub CLI to enable CI verification: https://cli.github.com${NC}"
|
|
19
|
+
exit 0
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
# Check if jq is available
|
|
23
|
+
if ! command -v jq &> /dev/null; then
|
|
24
|
+
echo -e "${YELLOW}[CI Check] jq not found, skipping remote CI check${NC}"
|
|
25
|
+
echo -e "${YELLOW}[CI Check] Install jq to enable CI verification: https://jqlang.github.io/jq/download/${NC}"
|
|
26
|
+
exit 0
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
# Get the branch being pushed
|
|
30
|
+
BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
31
|
+
|
|
32
|
+
echo -e "${YELLOW}[CI Check] Checking CI status for branch: $BRANCH${NC}"
|
|
33
|
+
|
|
34
|
+
# Check recent CI runs on this branch (get last completed run)
|
|
35
|
+
LAST_RUN=$(gh run list --branch "$BRANCH" --limit 1 --json status,conclusion --jq '.[0]' 2>/dev/null || echo "")
|
|
36
|
+
|
|
37
|
+
if [ -z "$LAST_RUN" ]; then
|
|
38
|
+
echo -e "${YELLOW}[CI Check] No previous CI runs found${NC}"
|
|
39
|
+
exit 0
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
STATUS=$(echo "$LAST_RUN" | jq -r '.status' 2>/dev/null || echo "")
|
|
43
|
+
CONCLUSION=$(echo "$LAST_RUN" | jq -r '.conclusion' 2>/dev/null || echo "")
|
|
44
|
+
|
|
45
|
+
# If run is in progress, wait for completion (up to 2 minutes)
|
|
46
|
+
if [ "$STATUS" != "completed" ]; then
|
|
47
|
+
echo -e "${YELLOW}[CI Check] Previous CI run in progress, waiting for completion...${NC}"
|
|
48
|
+
|
|
49
|
+
WAIT_TIME=0
|
|
50
|
+
MAX_WAIT=120 # 2 minutes
|
|
51
|
+
POLL_INTERVAL=5
|
|
52
|
+
|
|
53
|
+
while [ $WAIT_TIME -lt $MAX_WAIT ]; do
|
|
54
|
+
sleep $POLL_INTERVAL
|
|
55
|
+
WAIT_TIME=$((WAIT_TIME + POLL_INTERVAL))
|
|
56
|
+
|
|
57
|
+
LAST_RUN=$(gh run list --branch "$BRANCH" --limit 1 --json status,conclusion --jq '.[0]' 2>/dev/null || echo "")
|
|
58
|
+
STATUS=$(echo "$LAST_RUN" | jq -r '.status' 2>/dev/null || echo "")
|
|
59
|
+
CONCLUSION=$(echo "$LAST_RUN" | jq -r '.conclusion' 2>/dev/null || echo "")
|
|
60
|
+
|
|
61
|
+
if [ "$STATUS" = "completed" ]; then
|
|
62
|
+
echo -e "${YELLOW}[CI Check] CI completed with status: $CONCLUSION${NC}"
|
|
63
|
+
break
|
|
64
|
+
fi
|
|
65
|
+
|
|
66
|
+
echo -e "${YELLOW}[CI Check] Still waiting... ($WAIT_TIME/$MAX_WAIT seconds)${NC}"
|
|
67
|
+
done
|
|
68
|
+
|
|
69
|
+
# If still not completed, inform user
|
|
70
|
+
if [ "$STATUS" != "completed" ]; then
|
|
71
|
+
echo -e "${YELLOW}[CI Check] CI still running after 2 minutes${NC}"
|
|
72
|
+
echo -e "${YELLOW}[CI Check] You can push and monitor at: https://github.com/$(git config --get remote.origin.url | sed 's/.*github.com[:/]\(.*\)\.git/\1/')/actions${NC}"
|
|
73
|
+
exit 0
|
|
74
|
+
fi
|
|
75
|
+
fi
|
|
76
|
+
|
|
77
|
+
# Check conclusion
|
|
78
|
+
if [ "$CONCLUSION" = "failure" ] || [ "$CONCLUSION" = "timed_out" ] || [ "$CONCLUSION" = "cancelled" ]; then
|
|
79
|
+
echo -e "${RED}[CI Check] ❌ Last CI run failed with status: $CONCLUSION${NC}"
|
|
80
|
+
echo -e "${RED}[CI Check] View the failed run: gh run list --branch $BRANCH${NC}"
|
|
81
|
+
echo -e "${RED}[CI Check] Please fix CI issues before pushing${NC}"
|
|
82
|
+
exit 1
|
|
83
|
+
fi
|
|
84
|
+
|
|
85
|
+
if [ "$CONCLUSION" = "success" ]; then
|
|
86
|
+
echo -e "${GREEN}[CI Check] ✅ Latest CI run passed${NC}"
|
|
87
|
+
|
|
88
|
+
# After CI passes, extract DevLoop findings and create Beads issues
|
|
89
|
+
echo -e "${YELLOW}[Findings] Extracting DevLoop findings...${NC}"
|
|
90
|
+
|
|
91
|
+
# Find the extract-findings-to-beads script
|
|
92
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
93
|
+
FINDINGS_SCRIPT="$SCRIPT_DIR/../../.agents/hooks/extract-findings-to-beads"
|
|
94
|
+
|
|
95
|
+
if [ -x "$FINDINGS_SCRIPT" ]; then
|
|
96
|
+
# Get current git commit hash to link findings
|
|
97
|
+
CURRENT_COMMIT=$(git rev-parse HEAD)
|
|
98
|
+
|
|
99
|
+
# Extract findings and create Beads issues
|
|
100
|
+
if "$FINDINGS_SCRIPT"; then
|
|
101
|
+
echo -e "${GREEN}[Findings] ✅ DevLoop findings processed${NC}"
|
|
102
|
+
else
|
|
103
|
+
echo -e "${YELLOW}[Findings] ⚠️ Could not process DevLoop findings (non-blocking)${NC}"
|
|
104
|
+
fi
|
|
105
|
+
else
|
|
106
|
+
echo -e "${YELLOW}[Findings] 📝 Extract-findings script not found (optional)${NC}"
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
exit 0
|
|
110
|
+
fi
|
|
111
|
+
|
|
112
|
+
# For any other status, allow push
|
|
113
|
+
echo -e "${YELLOW}[CI Check] Unable to verify CI status (status: $CONCLUSION), allowing push${NC}"
|
|
114
|
+
exit 0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{devloop-0.3.2 → devloop-0.3.3}/src/devloop/cli/templates/claude_commands/devloop-findings.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|