Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
beb7d24
Test: Verify disjoint verse passing in Bible Handler
julwrites Mar 14, 2026
9cf01e4
perf(web): optimize BibleVersionSelector array instantiation
google-labs-jules[bot] Apr 1, 2026
5b333b4
Merge pull request #359 from julwrites/performance-optimize-bible-ver…
julwrites Apr 1, 2026
5d4a8a1
feat(harness): Update repository tooling to align with agent-harness
google-labs-jules[bot] Apr 5, 2026
f178a79
Merge pull request #360 from julwrites/jules-agent-harness-update-178…
julwrites Apr 5, 2026
7ab95bf
chore: remove legacy agent-harness memory and task systems
google-labs-jules[bot] Apr 7, 2026
1034636
Merge pull request #361 from julwrites/cleanup-legacy-agent-systems-2…
julwrites Apr 7, 2026
54fc0fe
ci: setup automerge for staging PRs by julwrites
google-labs-jules[bot] Apr 13, 2026
22f2e4b
Merge pull request #363 from julwrites/setup-staging-automerge-875066…
julwrites Apr 13, 2026
8914e6b
ci: disable caching and reduce artifact retention
google-labs-jules[bot] Apr 15, 2026
73c280b
ci: always upload coverage artifacts to fix coverage-report job
google-labs-jules[bot] Apr 15, 2026
ce3b38d
Merge pull request #366 from julwrites/ci-storage-limits-136788833948…
julwrites Apr 15, 2026
bd36b12
fix(a11y): add aria-labels to icon-only buttons
google-labs-jules[bot] Apr 19, 2026
79bbbf2
Fixing bug in staging deployment service
julwrites Apr 19, 2026
6d9915c
Merge pull request #371 from julwrites/accessibility-aria-labels-7629…
julwrites Apr 19, 2026
08cfe56
Debugging text for rom 3
julwrites Apr 19, 2026
6543422
Merge remote-tracking branch 'refs/remotes/origin/staging' into staging
julwrites Apr 19, 2026
6e7ae9a
Fix missing verses in frontend by stripping stray <br/> elements
google-labs-jules[bot] Apr 20, 2026
8459e18
Merge pull request #372 from julwrites/fix-missing-verses-clean-html-…
julwrites Apr 20, 2026
8ad170a
fix: adjust verseReferenceRegex to support whole chapter parsing
google-labs-jules[bot] Apr 20, 2026
97154af
Merge pull request #373 from julwrites/fix/bibleai-verse-regex-romans…
julwrites Apr 20, 2026
b864a29
Update Romans 3 tests to cover the full chapter text
google-labs-jules[bot] Apr 20, 2026
0da5e04
UX(a11y): Add aria-labels to icon-only buttons
google-labs-jules[bot] Apr 20, 2026
ae371aa
Merge pull request #375 from julwrites/palette-accessible-icon-button…
julwrites Apr 20, 2026
bd98918
Merge pull request #374 from julwrites/update-romans-3-tests-80221384…
julwrites Apr 20, 2026
aa8c2a5
🎨 Palette: Add context-aware ARIA labels to NoteCard action buttons
google-labs-jules[bot] Apr 26, 2026
f746e6d
🎨 Palette: Add context-aware ARIA labels to NoteCard action buttons a…
google-labs-jules[bot] Apr 26, 2026
f344863
Merge pull request #379 from julwrites/palette-aria-labels-notecard-3…
julwrites Apr 28, 2026
aa0a99c
🎨 Palette: Add aria-label to icon-only buttons in Dashboard
google-labs-jules[bot] Apr 30, 2026
b9a6a8d
Removing debug
julwrites May 1, 2026
7baaa53
Merge remote-tracking branch 'refs/remotes/origin/staging' into staging
julwrites May 1, 2026
6508144
fix: Defensively clean HTML in GetPassage to prevent frontend renderi…
julwrites May 1, 2026
3172ffc
Merge pull request #383 from julwrites/palette/add-aria-label-dashboa…
julwrites May 1, 2026
eb0b2d6
fix: use loadSecret helper for BIBLE_API_URL and remove CLOUD_SQL_INS…
julwrites May 1, 2026
3438b43
fix: normalize expected newlines in bible ai get passage test
google-labs-jules[bot] May 1, 2026
4807ce1
Merge pull request #385 from julwrites/fix/bible-ai-test-newlines-193…
julwrites May 1, 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
4 changes: 4 additions & 0 deletions .Jules/palette.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

## 2024-05-18 - Added aria-label to Dashboard icon buttons
**Learning:** React components returning icon-only buttons via `lucide-react` icons (like `Users`, `BookOpen`) inside Radix UI primitives (`Button`, `DropdownMenuTrigger`) must explicitly have `aria-label` attributes set to be accessible by screen readers. The `title` attribute is primarily for visual tooltips and does not sufficiently substitute for `aria-label` for assistive technologies in all contexts.
**Action:** When adding new icon-only buttons to the UI, particularly within navigation bars or dropdown triggers, always include a descriptive `aria-label` attribute alongside the `title` attribute.
File renamed without changes.
5 changes: 5 additions & 0 deletions .claude/hooks/session-start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash
# Wrapper for the Python SessionStart hook
# $CLAUDE_PROJECT_DIR is provided by Claude, but we can fallback to PWD
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
python3 "$PROJECT_DIR/scripts/hooks/session_start.py"
15 changes: 15 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"hooks": {
"SessionStart": [
{
"matcher": ".*",
"hooks": [
{
"type": "command",
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/session-start.sh"
}
]
}
]
}
}
9 changes: 9 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"permissions": {
"allow": [
"Bash(python3:*)"
],
"deny": [],
"ask": []
}
}
27 changes: 20 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: 'stable'
cache: true
cache-dependency-path: api/go.sum
cache: false

- name: Install dependencies
run: go mod tidy
Expand Down Expand Up @@ -49,6 +48,7 @@ jobs:
with:
name: backend-coverage
path: api/coverage.txt
retention-days: 1

frontend:
runs-on: ubuntu-latest
Expand All @@ -63,8 +63,6 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: web/package-lock.json

- name: Install dependencies
run: npm ci
Expand All @@ -81,6 +79,7 @@ jobs:
with:
name: frontend-coverage
path: web/coverage/coverage-summary.json
retention-days: 1

- name: Build
run: npm run build
Expand All @@ -99,8 +98,6 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: web/package-lock.json

- name: Install dependencies
run: npm ci
Expand All @@ -124,7 +121,7 @@ jobs:
with:
name: playwright-report
path: web/playwright-report/
retention-days: 30
retention-days: 1

coverage-report:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -153,3 +150,19 @@ jobs:
script: |
const script = require('./scripts/gh-actions/post-coverage-comment.js')
await script({github, context})

automerge:
needs: [backend, frontend, e2e, coverage-report]
runs-on: ubuntu-latest
if: github.event_name == 'pull_request' && github.event.pull_request.user.login == 'julwrites' && github.event.pull_request.base.ref == 'staging'
permissions:
contents: write
pull-requests: write
steps:
- name: Automerge PR
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_URL: ${{ github.event.pull_request.html_url }}
run: |
gh pr review --approve "$PR_URL" || true
gh pr merge --rebase --delete-branch "$PR_URL"
2 changes: 1 addition & 1 deletion .github/workflows/deploy-staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ jobs:
region: ${{ env.GCP_REGION }}
flags: '--service-account=${{ secrets.GCP_SERVICE_ACCOUNT }} --allow-unauthenticated'
env_vars: |
APP_ENV=production
APP_ENV=staging
GOOGLE_CLOUD_PROJECT=${{ env.GCP_PROJECT_ID }}
FIREBASE_PROJECT_ID=${{ secrets.STG_FIREBASE_PROJECT_ID }}
# Application secrets (STG_DJ_DB_*) are loaded from Google Secret Manager at runtime
Expand Down
7 changes: 3 additions & 4 deletions .github/workflows/weekly-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: 'stable'
cache: true
cache-dependency-path: api/go.sum
cache: false

- name: Install dependencies
run: go mod tidy
Expand All @@ -43,6 +42,7 @@ jobs:
with:
name: backend-coverage
path: api/coverage.txt
retention-days: 1

frontend:
runs-on: ubuntu-latest
Expand All @@ -57,8 +57,6 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: web/package-lock.json

- name: Install dependencies
run: npm ci
Expand All @@ -72,3 +70,4 @@ jobs:
with:
name: frontend-coverage
path: web/coverage/coverage-summary.json
retention-days: 1
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,7 @@ test-results/
# Go binaries
*/discipleship_journal_api
*.log

.agents/
__pycache__/
*.pyc
41 changes: 1 addition & 40 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,47 +3,12 @@
You are an expert Software Engineer working on this project. Your primary responsibility is to implement features and fixes while strictly adhering to the **Task Documentation System**.

## Core Philosophy
**"If it's not documented in `docs/tasks/`, it didn't happen."**

## Workflow
1. **Pick a Task**: Run `python3 scripts/tasks.py next` to find the best task, `context` to see active tasks, or `list` to see pending ones.
2. **Plan & Document**:
* **Memory Check**: Run `python3 scripts/memory.py list` (or use the Memory Skill) to recall relevant long-term information.
* **Security Check**: Ask the user about specific security considerations for this task.
* If starting a new task, use `scripts/tasks.py create` (or `python3 scripts/tasks.py create`) to generate a new task file.
* Update the task status: `python3 scripts/tasks.py update [TASK_ID] in_progress`.
3. **Implement**: Write code, run tests.
4. **Update Documentation Loop**:
* As you complete sub-tasks, check them off in the task document.
* If you hit a blocker, update status to `wip_blocked` and describe the issue in the file.
* Record key architectural decisions in the task document.
* **Memory Update**: If you learn something valuable for the long term, use `scripts/memory.py create` to record it.
5. **Review & Verify**:
* Once implementation is complete, update status to `review_requested`: `python3 scripts/tasks.py update [TASK_ID] review_requested`.
* Ask a human or another agent to review the code.
* Once approved and tested, update status to `verified`.
6. **Finalize**:
* Update status to `completed`: `python3 scripts/tasks.py update [TASK_ID] completed`.
* Record actual effort in the file.
* Ensure all acceptance criteria are met.

## Tools
* **Wrapper**: `./scripts/tasks` (Checks for Python, recommended).
* **Next**: `./scripts/tasks next` (Finds the best task to work on).
* **Create**: `./scripts/tasks create [category] "Title"`
* **List**: `./scripts/tasks list [--status pending]`
* **Context**: `./scripts/tasks context`
* **Update**: `./scripts/tasks update [ID] [status]`
* **Migrate**: `./scripts/tasks migrate` (Migrate legacy tasks to new format)
* **Memory**: `./scripts/memory.py [create|list|read]`
* **JSON Output**: Add `--format json` to any command for machine parsing.
This repository uses the agent-harness conventions.

## Documentation Reference
* **Guide**: Read `docs/tasks/GUIDE.md` for strict formatting and process rules.
* **Architecture**: Refer to `docs/architecture/` for system design.
* **Features**: Refer to `docs/features/` for feature specifications.
* **Security**: Refer to `docs/security/` for risk assessments and mitigations.
* **Memories**: Refer to `docs/memories/` for long-term project context.

## Code Style & Standards

Expand Down Expand Up @@ -102,7 +67,3 @@ Once the human approves the plan and comments:
### 4. Close Task
* Update task status to `completed`.

## Agent Interoperability
- **Task Manager Skill**: `.claude/skills/task_manager/`
- **Memory Skill**: `.claude/skills/memory/`
- **Tool Definitions**: `docs/interop/tool_definitions.json`
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ For detailed setup instructions, see:
See `web/README.md` for frontend-specific instructions.

## Documentation
- **Tasks & Status**: `docs/tasks/`
- **Features**: `docs/features/`
- **Architecture**: `docs/architecture/`
- **Testing**: `docs/testing/`
Expand Down
Binary file added __pycache__/test_tidb.cpython-314.pyc
Binary file not shown.
Loading
Loading