Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
0e3f482
feat(desktop): add batch file selection from clipboard in file tree
kccarlos Feb 11, 2026
9ece301
feat(desktop): add remove-test-files selection action with trash icon
kccarlos Feb 11, 2026
2971a37
style(theme): align primary button and focus ring tokens to logo gree…
kccarlos Feb 11, 2026
4f288c0
feat(desktop): add saved workspace switching with branch/settings/fil…
kccarlos Feb 11, 2026
1cb4a08
chore: add docker env and ralph loop build process
kccarlos Feb 22, 2026
8360b1c
chore: add prd
kccarlos Feb 22, 2026
a886d80
test(desktop): add comprehensive cargo tests for git_diff command
kccarlos Feb 22, 2026
d61e71f
chore: add progress log for rust-git-diff story
kccarlos Feb 22, 2026
3cec463
test(desktop): add comprehensive cargo tests for read_file_blob command
kccarlos Feb 22, 2026
580bb1e
chore: add progress log for rust-git-read-file story
kccarlos Feb 22, 2026
82897c4
test(desktop): add comprehensive cargo tests for list_files, list_fil…
kccarlos Feb 22, 2026
9409762
chore: add progress log for rust-git-list-files story
kccarlos Feb 22, 2026
341f7b4
test(desktop): add comprehensive cargo tests for watcher path filtering
kccarlos Feb 22, 2026
1c5fc06
chore: add progress log for rust-watcher story
kccarlos Feb 22, 2026
05d2ece
test(desktop): add comprehensive Vitest tests for TauriGitService
kccarlos Feb 22, 2026
4eb137c
chore: add progress log for tauri-git-service story
kccarlos Feb 22, 2026
22082eb
test(desktop): add comprehensive Vitest tests for useGitRepository hook
kccarlos Feb 22, 2026
5d6d3a0
chore: add progress log for use-git-repository-hook story
kccarlos Feb 22, 2026
ea87cba
test(desktop): add comprehensive Vitest tests for useFileTree hook
kccarlos Feb 22, 2026
059e44f
chore: add progress log for use-file-tree-comprehensive story
kccarlos Feb 22, 2026
aa38d4f
test(desktop): add comprehensive Vitest tests for useTokenCounts hook
kccarlos Feb 22, 2026
4b1d20a
chore: add progress log for use-token-counts-hook story
kccarlos Feb 22, 2026
177218b
test(desktop): add comprehensive Vitest tests for diff utilities
kccarlos Feb 22, 2026
31fabdd
chore: add progress log for diff-util-tests story
kccarlos Feb 22, 2026
eafb12a
test(desktop): add comprehensive Vitest tests for workspaceStore
kccarlos Feb 22, 2026
db5a25f
chore: add progress log for workspace-store-comprehensive story
kccarlos Feb 22, 2026
31b8616
test(desktop): add comprehensive Vitest tests for concurrency utilities
kccarlos Feb 22, 2026
be65ce0
chore: add progress log for concurrency-util-tests story
kccarlos Feb 22, 2026
71b5c5f
test(desktop): add comprehensive Vitest tests for debounce utility
kccarlos Feb 22, 2026
29e61b8
chore: add progress log for debounce-util-tests story
kccarlos Feb 22, 2026
8bc3877
test(desktop): add comprehensive Vitest tests for clipboardBatchSelect
kccarlos Feb 22, 2026
a99a8a8
chore: add progress log for clipboard-batch-select-comprehensive story
kccarlos Feb 22, 2026
6f6a5e3
test(desktop): add comprehensive Vitest tests for SelectedFilesPanel
kccarlos Feb 22, 2026
dec51a0
chore: add progress log for selected-files-panel-tests story
kccarlos Feb 22, 2026
d737065
test(desktop): add comprehensive Vitest tests for ContextFooter
kccarlos Feb 22, 2026
86af61a
chore: add progress log for context-footer-tests story
kccarlos Feb 22, 2026
100106a
test(desktop): add comprehensive Vitest tests for RightPanelTabs
kccarlos Feb 22, 2026
cd05ea9
chore: add progress log for right-panel-tabs-tests story
kccarlos Feb 22, 2026
165b5a5
test(desktop): add comprehensive Vitest tests for TokenCountsContext
kccarlos Feb 22, 2026
06e4ecf
chore: add progress log for token-counts-context-tests story
kccarlos Feb 22, 2026
d08c85d
test(desktop): add comprehensive Vitest tests for useTheme hook
kccarlos Feb 22, 2026
05e6025
chore: add progress log for theme-management-tests story
kccarlos Feb 22, 2026
aaa397f
test(desktop): add comprehensive Vitest tests for copy output generation
kccarlos Feb 22, 2026
99c5f53
chore: add progress log for app-copy-output-tests story
kccarlos Feb 22, 2026
f4976ab
test(desktop): add comprehensive Vitest tests for models utility
kccarlos Feb 22, 2026
ecd4559
chore: add progress log for models-util-tests story
kccarlos Feb 22, 2026
89cd1ab
test(desktop): add integration tests for ErrorBanner error handling
kccarlos Feb 22, 2026
12e993f
chore: add progress log for error-handling-tests story
kccarlos Feb 22, 2026
0bb92f5
test(desktop): add workspace save/restore lifecycle integration tests
kccarlos Feb 22, 2026
45cdcfa
chore: add progress log for workspace-lifecycle-tests story
kccarlos Feb 22, 2026
b3abfde
test(desktop): add logger utility unit tests
kccarlos Feb 22, 2026
f962dbe
chore: add progress log for logger-util-tests story
kccarlos Feb 22, 2026
7789299
test(desktop): add DiffControlBar comprehensive interaction tests
kccarlos Feb 22, 2026
44b4689
chore: add progress log for diff-control-bar-comprehensive story
kccarlos Feb 22, 2026
adb55c2
test(desktop): fix test typing and remove unused symbols blocking build
kccarlos Feb 22, 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
129 changes: 129 additions & 0 deletions .agents/ralph/PROMPT_build.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# Build

You are an autonomous coding agent. Your task is to complete the work for exactly one story and record the outcome.

## Paths
- PRD: {{PRD_PATH}}
- AGENTS (optional): {{AGENTS_PATH}}
- Progress Log: {{PROGRESS_PATH}}
- Guardrails: {{GUARDRAILS_PATH}}
- Guardrails Reference: {{GUARDRAILS_REF}}
- Context Reference: {{CONTEXT_REF}}
- Errors Log: {{ERRORS_LOG_PATH}}
- Activity Log: {{ACTIVITY_LOG_PATH}}
- Activity Logger: {{ACTIVITY_CMD}}
- No-commit: {{NO_COMMIT}}
- Repo Root: {{REPO_ROOT}}
- Run ID: {{RUN_ID}}
- Iteration: {{ITERATION}}
- Run Log: {{RUN_LOG_PATH}}
- Run Summary: {{RUN_META_PATH}}

## Global Quality Gates (apply to every story)
{{QUALITY_GATES}}

## Selected Story (Do not change scope)
ID: {{STORY_ID}}
Title: {{STORY_TITLE}}

Story details:
{{STORY_BLOCK}}

If the story details are empty or missing, STOP and report that the PRD story format could not be parsed.

## Rules (Non-Negotiable)
- Implement **only** the work required to complete the selected story.
- Complete all tasks associated with this story (and only this story).
- Do NOT ask the user questions.
- Do NOT change unrelated code.
- Do NOT assume something is unimplemented — confirm by reading code.
- Implement completely; no placeholders or stubs.
- If No-commit is true, do NOT commit or push changes.
- Do NOT edit the PRD JSON (status is handled by the loop).
- All changes made during the run must be committed (including updates to progress/logs).
- Before committing, perform a final **security**, **performance**, and **regression** review of your changes.

## Your Task (Do this in order)
1. Read {{GUARDRAILS_PATH}} before any code changes.
2. Read {{ERRORS_LOG_PATH}} for repeated failures to avoid.
3. Read {{PRD_PATH}} for global context (do not edit).
4. Fully audit and read all necessary files to understand the task end-to-end before implementing. Do not assume missing functionality.
5. If {{AGENTS_PATH}} exists, follow its build/test instructions.
6. Implement only the tasks that belong to {{STORY_ID}}.
7. Run verification commands listed in the story, the global quality gates, and in {{AGENTS_PATH}} (if required).
8. If the project has a build or dev workflow, run what applies:
- Frontend build: `npm run web:build`
- Rust check: `cargo check --manifest-path apps/desktop/src-tauri/Cargo.toml`
- Confirm no build errors.
9. Perform a brief audit before committing:
- **Security:** check for obvious vulnerabilities or unsafe handling introduced by your changes.
- **Performance:** check for avoidable regressions (extra queries, heavy loops, unnecessary re-renders).
- **Regression:** verify existing behavior that could be impacted still works.
10. If No-commit is false, commit changes using the `$commit` skill.
- Stage everything: `git add -A`
- Confirm a clean working tree after commit: `git status --porcelain` should be empty.
- After committing, capture the commit hash and subject using:
`git show -s --format="%h %s" HEAD`.
11. Append a progress entry to {{PROGRESS_PATH}} with run/commit/test details (format below).
If No-commit is true, skip committing and note it in the progress entry.
12. Verification report is mandatory:
- Write the story report file listed in story `verification.artifacts` (or `.codex/ralph-gitcontext/verify/{{STORY_ID}}.md`).
- Include each passCriteria line verbatim in the report.
- Include a standalone line: `VERIFIED: YES`.

## Progress Entry Format (Append Only)
```
## [Date/Time] - {{STORY_ID}}: {{STORY_TITLE}}
Thread: [claude session id if available, otherwise leave blank]
Run: {{RUN_ID}} (iteration {{ITERATION}})
Run log: {{RUN_LOG_PATH}}
Run summary: {{RUN_META_PATH}}
- Guardrails reviewed: yes
- No-commit run: {{NO_COMMIT}}
- Commit: <hash> <subject> (or `none` + reason)
- Post-commit status: `clean` or list remaining files
- Verification:
- Command: <exact command> -> PASS/FAIL
- Command: <exact command> -> PASS/FAIL
- Files changed:
- <file path>
- <file path>
- What was implemented
- **Learnings for future iterations:**
- Patterns discovered
- Gotchas encountered
- Useful context
---
```

## Completion Signal
Only output the completion signal when the **selected story** is fully complete and verified.
When the selected story is complete, output:
<promise>COMPLETE</promise>

Otherwise, end normally without the signal.

## Additional Guardrails
- When authoring documentation, capture the why (tests + implementation intent).
- If you learn how to run/build/test the project, update {{AGENTS_PATH}} briefly (operational only).
- Keep AGENTS operational only; progress notes belong in {{PROGRESS_PATH}}.
- If you hit repeated errors, log them in {{ERRORS_LOG_PATH}} and add a Sign to {{GUARDRAILS_PATH}} using {{GUARDRAILS_REF}} as the template.

## Activity Logging (Required)
Log major actions to {{ACTIVITY_LOG_PATH}} using the helper:
```
{{ACTIVITY_CMD}} "message"
```
Log at least:
- Start of work on the story
- After major code changes
- After tests/verification
- After updating progress log

## Browser / UI Testing (Required for Frontend Stories)
If the selected story changes UI, you MUST verify it passes the web build:
1. Run `npm run web:build` and confirm zero errors.
2. Run `npm run web:lint` for linting.
3. For e2e tests: `npm --workspace apps/web run test:e2e`

A frontend story is NOT complete until the build passes.
12 changes: 12 additions & 0 deletions .agents/ralph/agents.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
# Default agent command templates (used by loop.sh and CLI).

AGENT_CODEX_CMD="codex exec --yolo --skip-git-repo-check -"
AGENT_CODEX_INTERACTIVE_CMD="codex --yolo {prompt}"
AGENT_CLAUDE_CMD='claude -p --dangerously-skip-permissions'
AGENT_CLAUDE_INTERACTIVE_CMD="claude --dangerously-skip-permissions {prompt}"
AGENT_DROID_CMD="droid exec --skip-permissions-unsafe -f {prompt}"
AGENT_DROID_INTERACTIVE_CMD="droid --skip-permissions-unsafe {prompt}"
AGENT_OPENCODE_CMD="opencode run \"\$(cat {prompt})\""
AGENT_OPENCODE_INTERACTIVE_CMD="opencode --prompt {prompt}"
DEFAULT_AGENT="claude"
9 changes: 9 additions & 0 deletions .agents/ralph/config.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env bash

export DEFAULT_AGENT="claude"
export ACTIVITY_CMD=".agents/ralph/log-activity.sh"

# Model for all loop iterations and PRD generation.
# Options: claude-opus-4-6 | claude-sonnet-4-6 | claude-haiku-4-5-20251001
# Prompt is piped via stdin — no {prompt} placeholder needed.
export AGENT_CLAUDE_CMD='claude -p --model claude-opus-4-6 --dangerously-skip-permissions'
15 changes: 15 additions & 0 deletions .agents/ralph/log-activity.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(cd "${SCRIPT_DIR}/../.." && pwd)"
ACTIVITY_LOG="$ROOT_DIR/.ralph/activity.log"

if [ $# -lt 1 ]; then
echo "Usage: $0 \"message\""
exit 1
fi

mkdir -p "$(dirname "$ACTIVITY_LOG")"
TS=$(date '+%Y-%m-%d %H:%M:%S')
echo "[$TS] $*" >> "$ACTIVITY_LOG"
Loading
Loading