266 lines
14 KiB
XML
266 lines
14 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project version="4">
|
|
<component name="GigaCodeAgentSettings">
|
|
<option name="autoApproveEdits" value="true" />
|
|
<option name="autoApprovedCommands">
|
|
<list>
|
|
<Execute>
|
|
<option name="pattern" value="mkdir -p /home/ik/git/rf4-help/.gigacode/plans" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="cd *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="ls *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="pip install *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="tail *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python pytest *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python -c " import ast import sys files = [ 'apps/api/app/main.py', 'apps/api/app/readiness.py', 'apps/api/app/schemas.py', 'apps/api/app/activity.py', 'apps/api/app/community_scheduler.py', 'apps/api/app/community_importer.py', 'rf4_research/community_cli.py', ] for f in files: try: with open(f) as fh: ast.parse(fh.read()) print(f'OK: {f}') except SyntaxError as e: print(f'ERROR: {f}: {e}') sys.exit(1) print('All Python files syntax OK') "" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="npm run *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="head *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="npm install *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="git add *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="git reset *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="git diff *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="git log *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="git commit *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="git status" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="echo *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="printf 'localhost {\n body_limit 10M\n}\n' > /tmp/test-caddyfile" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="cp /home/ik/git/rf4-help/deploy/Caddyfile /tmp/Caddyfile" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="printf 'example.com {\n body_limit 10M\n}\n' > /tmp/Caddyfile" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="printf 'example.com {\n request_body {\n max_size 10M\n }\n}\n' > /tmp/Caddyfile" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="docker run *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="sed 's/email {$ACME_EMAIL}/email test@test.com/' /home/ik/git/rf4-help/deploy/Caddyfile > /tmp/Caddyfile" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="grep *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="printf 'example.com {\n request_body {\n max_size 10M\n }\n handle {\n respond \"ok\"\n }\n}\n' > /tmp/Caddyfile" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python -c "import ast; ast.parse(open('rf4_research/community_cli.py').read()); print('OK')"" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python -c "import ast; ast.parse(open('apps/api/app/community_scheduler.py').read()); print('OK')"" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python -c "import ast; ast.parse(open('apps/api/app/main.py').read()); print('OK')"" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="node -e "try { fetch('http://localhost:1', { signal: AbortSignal.timeout(100) }); } catch(e) { console.log(e.constructor.name, e.message); }" 2>&1" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="node -e "fetch('http://httpbin.org/delay/10', { signal: AbortSignal.timeout(200) }).catch(e => console.log(e.constructor.name, e.message));" 2>&1" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="pip-compile requirements.txt --output-file requirements-lock.txt -q 2>&1" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="pip-compile requirements-dev.txt --output-file requirements-dev-lock.txt -q 2>&1" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="wc *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="alembic revision *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python -m app.cli --help 2>&1" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python -m rf4_research.community_cli --help 2>&1" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="alembic heads *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 -c " from urllib.request import Request, urlopen from urllib.error import HTTPError # Test with a URL that redirects try: req = Request('https://httpbin.org/redirect/1', headers={'User-Agent': 'test'}) resp = urlopen(req, timeout=5) print(f'Final URL: {resp.url}') print(f'Response URL: {resp.url}') except Exception as e: print(f'Error: {type(e).__name__}: {e}') " 2>&1" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="pwd" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 -c "from rf4_research import community_cli; print('Syntax OK')"" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/append_tests.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 pytest *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_redirect_test.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a04.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a04_v2.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="git show *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="git branch *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/test_double_reservation_bug.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a02_double_reservation.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/test_debug.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/test_a02_final.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/test_a02_v2.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/test_a02_code.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a04_pagination.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a01_monitoring.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a01_tests.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="*" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a01_tests_v2.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a04_filters.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a05_sessionstorage.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a06_tests.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a07_review_note.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a08_errorpage.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a08_index.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a11_pip_audit.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a04_pagination_final.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a08_index_unavailable.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a08_spots.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a08_records.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a01_vars.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a01_test.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a07_auto_publish.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a07_review_note_auto.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 /tmp/fix_a09_cli.py" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python3 -c "from app.cli import main; import sys; sys.argv = ['cli', '--help']; main()" 2>&1" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="find *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="git push *" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python -c " from sqlalchemy import create_engine, select from sqlalchemy.orm import Session from sqlalchemy.pool import StaticPool from app.database import Base from app.models import SubmissionAttempt import hashlib, hmac engine = create_engine('sqlite://', connect_args={'check_same_thread': False}, poolclass=StaticPool) Base.metadata.create_all(engine) with Session(engine) as db: # Simulate first request key = 'idem-test-key-001' key_hash = hmac.new('change-rate-limit-secret'.encode(), key.encode(), hashlib.sha256).hexdigest() print(f'Key hash: {key_hash}') # Check before storing existing = db.scalar(select(SubmissionAttempt).where(SubmissionAttempt.idempotency_key == key_hash)) print(f'Found before: {existing}') # Store from datetime import datetime, timezone db.add(SubmissionAttempt(client_hash='test', idempotency_key=key_hash, created_at=datetime.now(timezone.utc))) db.commit() # Check after storing existing = db.scalar(select(SubmissionAttempt).where(SubmissionAttempt.idempotency_key == key_hash)) print(f'Found after: {existing}') if existing: print(f' idempotency_key: {existing.idempotency_key}') "" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python -c " from sqlalchemy import create_engine, select from sqlalchemy.orm import Session from sqlalchemy.pool import StaticPool from app.database import Base from app.models import SubmissionAttempt import hashlib, hmac engine = create_engine('sqlite://', connect_args={'check_same_thread': False}, poolclass=StaticPool) Base.metadata.create_all(engine) with Session(engine) as db: key = 'idem-test-key-001' key_hash = hmac.new('change-rate-limit-secret'.encode(), key.encode(), hashlib.sha256).hexdigest() print(f'Key hash: {key_hash}') existing = db.scalar(select(SubmissionAttempt).where(SubmissionAttempt.idempotency_key == key_hash)) print(f'Found before: {existing}') from datetime import datetime, timezone db.add(SubmissionAttempt(client_hash='test', idempotency_key=key_hash, created_at=datetime.now(timezone.utc))) db.commit() existing = db.scalar(select(SubmissionAttempt).where(SubmissionAttempt.idempotency_key == key_hash)) print(f'Found after: {existing}') if existing: print(f' idempotency_key: {existing.idempotency_key}') "" />
|
|
</Execute>
|
|
<Execute>
|
|
<option name="pattern" value="python -c " from sqlalchemy import create_engine, inspect, text from sqlalchemy.pool import StaticPool from app.database import Base from app.models import SubmissionAttempt engine = create_engine('sqlite://', connect_args={'check_same_thread': False}, poolclass=StaticPool) Base.metadata.create_all(engine) inspector = inspect(engine) columns = inspector.get_columns('submission_attempt') print('Columns:', [c['name'] for c in columns]) "" />
|
|
</Execute>
|
|
</list>
|
|
</option>
|
|
<option name="autoApprovedReads">
|
|
<list>
|
|
<Read>
|
|
<option name="pattern" value="/path/to/apps/web/src/pages/index.astro" />
|
|
</Read>
|
|
<Read>
|
|
<option name="pattern" value="/path/to/apps/web/src/lib/api.ts" />
|
|
</Read>
|
|
<Read>
|
|
<option name="pattern" value="/path/to/rf4_spotter/rf4_research/community_cli.py" />
|
|
</Read>
|
|
</list>
|
|
</option>
|
|
</component>
|
|
</project> |