• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / ralphex
86%

Build:
DEFAULT BRANCH: master
Repo Added 21 Jan 2026 08:02AM UTC
Files 55
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH master
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • 298-image-port-flags
  • 300-non-english-plan
  • add-default-branch-template
  • add-dirty-worktree-check
  • add-notifications
  • add-org-monthly-limit-pattern
  • add-reset-flag
  • auto-create-initial-commit
  • auto-plan-mode-detection
  • base-ref-skip-finalize
  • claude-command-external-review-tool-flags
  • code-review-fixes
  • codex-capacity-pattern
  • codex-error-hints
  • codex-first-class-mode
  • codex-task-model
  • codex-wrapper-script
  • commented-defaults
  • configurable-colors
  • custom-config-dir
  • custom-external-review
  • dashboard-tests
  • dependabot/github_actions/actions/checkout-7
  • dependabot/github_actions/actions/setup-go-7
  • dependabot/github_actions/goreleaser/goreleaser-action-7
  • dependabot/go_modules/github.com/fsnotify/fsnotify-1.10.0
  • dependabot/go_modules/github.com/go-git/go-billy/v5-5.7.0
  • dependabot/go_modules/github.com/go-jose/go-jose/v3-3.0.5
  • dependabot/go_modules/github.com/slack-go/slack-0.23.1
  • dependabot/go_modules/github.com/stretchr/testify-1.12.0
  • dependabot/go_modules/github.com/stretchr/testify-1.12.1
  • dependabot/go_modules/golang.org/x/crypto-0.45.0
  • dependabot/go_modules/golang.org/x/net-0.55.0
  • dependabot/go_modules/golang.org/x/sys-0.44.0
  • dependabot/go_modules/golang.org/x/sys-0.45.0
  • dependabot/go_modules/golang.org/x/sys-0.46.0
  • dependabot/go_modules/golang.org/x/sys-0.47.0
  • dependabot/go_modules/golang.org/x/term-0.42.0
  • dependabot/go_modules/golang.org/x/term-0.43.0
  • dependabot/go_modules/golang.org/x/term-0.44.0
  • dependabot/go_modules/golang.org/x/term-0.45.0
  • dependabot/go_modules/gopkg.in/ini.v1-1.67.2
  • dependabot/go_modules/gopkg.in/ini.v1-1.67.3
  • deps-refresh
  • display-lines-changed-stats
  • docker-support
  • drop-go-git-backend
  • dump-defaults-and-update-skill
  • error-patterns
  • external-git-backend
  • feat/agent-frontmatter-model-v2
  • feat/branch-override-flag
  • feat/claude-model-config
  • feat/claude-retry-patterns
  • feat/codex-integration
  • feat/configurable-worktree-path
  • feat/fya-base-image
  • feat/per-phase-claude-models-v2
  • feat/plan-model
  • feat/scalar-config-fallback
  • feat/use-branch-override-in-progress
  • feature/claude-plugin-support
  • finalize-step
  • fix-290-validate-plan-tasks
  • fix-321-tighten-codex-patterns
  • fix-322-marketplace-name
  • fix-checkout-keep-untracked
  • fix-codex-not-installed
  • fix-codex-stderr-limit-pattern
  • fix-codex-stderr-reporting
  • fix-dashboard-task-numbering
  • fix-error-pattern-api-error-false-positive
  • fix-fenced-code-block-checkbox-parser
  • fix-individual-spend-limit-pattern
  • fix-isignored-global-patterns
  • fix-issue-317-admin-allocation-pattern
  • fix-oauth-token-persistence
  • fix-other-option-plan-questions
  • fix-plan-file-resolution
  • fix-plan-panel-task-done
  • fix-process-group-cleanup
  • fix-progress-append-on-restart
  • fix-review-loop-exit
  • fix-review-output-streaming
  • fix-review-signal-prompt
  • fix-review-signals
  • fix-scanner-buffer-size
  • fix-session-limit-pattern
  • fix-sigint-handling
  • fix-stale-cli-in-container
  • fix-tz-env-docker
  • fix-uncommitted-changes-handling
  • fix-version-unknown
  • fix-windows-build
  • fix-worktree-dashboard-plan-path
  • fix-worktree-plan-commit-case-mismatch
  • fix-worktree-support
  • fix/303/pre-init-config-dir
  • fix/docker-timezone-from-host
  • fix/force-exit-cleanup-timeout
  • fix/issue-288-progress-failed-footer
  • fix/not-logged-in-error-pattern
  • fix/plugin-seed-skip-manager-state
  • fix/prompt-foreground-tests
  • fix/standardize-plan-date-format
  • fix/strip-claude-code-session-env
  • fix/strip-comments-markdown
  • fix/strip-leading-meta-comments
  • fix/transient-http-retry
  • fix/update-script-mode-397
  • fix/web-race-test-guard
  • fix/windows-comment-setsid
  • force-exit-timeout
  • generic-plan-filename-branch-fallback
  • graceful-prompt-variables
  • interactive-plan-creation
  • interactive-plan-review
  • master
  • move-plan-on-completion-config
  • narrow-plan-archive-commit
  • opencode-wrapper-model-effort
  • pi-provider-support
  • plan-archive-failure-visible
  • plan-draft-preview
  • preserve-anthropic-api-key
  • preserve-review-logs
  • progress-files-location
  • progress-fresh-start
  • project-local-config
  • ralphex-adopt-skill
  • ralphex-local-gitignore
  • refactor-git-service
  • refactor-main
  • refactor-smells-and-duplication
  • refs/tags/v0.1.0
  • refs/tags/v0.10.0
  • refs/tags/v0.10.1
  • refs/tags/v0.10.2
  • refs/tags/v0.10.3
  • refs/tags/v0.10.4
  • refs/tags/v0.10.5
  • refs/tags/v0.10.6
  • refs/tags/v0.11.0
  • refs/tags/v0.11.1
  • refs/tags/v0.12.0
  • refs/tags/v0.12.1
  • refs/tags/v0.13.0
  • refs/tags/v0.14.0
  • refs/tags/v0.15.0
  • refs/tags/v0.15.1
  • refs/tags/v0.15.2
  • refs/tags/v0.15.3
  • refs/tags/v0.16.0
  • refs/tags/v0.2.0
  • refs/tags/v0.2.1
  • refs/tags/v0.2.2
  • refs/tags/v0.2.3
  • refs/tags/v0.26.1
  • refs/tags/v0.26.2
  • refs/tags/v0.26.3
  • refs/tags/v0.27.0
  • refs/tags/v0.27.1
  • refs/tags/v0.27.2
  • refs/tags/v0.27.3
  • refs/tags/v0.3.0
  • refs/tags/v0.4.0
  • refs/tags/v0.4.1
  • refs/tags/v0.4.2
  • refs/tags/v0.4.3
  • refs/tags/v0.4.4
  • refs/tags/v0.5.0
  • refs/tags/v0.6.0
  • refs/tags/v0.7.0
  • refs/tags/v0.7.1
  • refs/tags/v0.7.2
  • refs/tags/v0.7.3
  • refs/tags/v0.7.4
  • refs/tags/v0.7.5
  • refs/tags/v0.8.0
  • refs/tags/v0.9.0
  • refs/tags/v1.0.0
  • refs/tags/v1.0.1
  • refs/tags/v1.1.0
  • refs/tags/v1.1.1
  • refs/tags/v1.2.0
  • refs/tags/v1.3.0
  • refs/tags/v1.3.1
  • refs/tags/v1.3.2
  • refs/tags/v1.4.0
  • refs/tags/v1.5.0
  • refs/tags/v1.5.1
  • refs/tags/v1.6.0
  • refuse-diagnostics
  • remove-docker
  • resolve-renamed-plan
  • review-agent-prompt-contract
  • review-no-delegate
  • rewrite-dk-script-python
  • runner-phase-engines
  • skip-post-codex-review-no-findings
  • task-header-patterns-config
  • task-model-effort
  • task-model-rename
  • unbounded-line-reader
  • update-codex-default-model
  • verbose-completions
  • watch-mode-reactivate-tailing
  • web-fixes
  • web-planner
  • web-ui
  • web-ui-improvements
  • windows-timeout
  • worktree-dirty-source-check
  • worktree-isolation

28 Aug 2026 07:15PM UTC coverage: 85.71% (+0.04%) from 85.675%
33203026970

push

github

web-flow
archive completed progress logs instead of truncating them (#449)

a completed progress log is now archived before the canonical file is reused, so running `ralphex --review` twice no longer destroys the first run's transcript.

`ReviewPhase.Loop` returns nil at its iteration cap, so a capped review finishes with convergence unconfirmed and still gets a `Completed:` footer. A clean review gets the same footer. Either way the next run truncated the file, so this is about completed-log reuse rather than review outcome.

**what changes**

on reuse of a file ending in `Completed:`, the log is copied to `.ralphex/progress/history/<stem>/archive-<YYYYMMDD-HHMMSS>-<token>.txt`, then the canonical file is truncated and gets a fresh header. The archive is copied from a stable snapshot and published atomically while the canonical path stays locked. On Unix, that keeps identical invocations serialized through the same path. The timestamp comes from the archived run's own footer, so it says when that run ended rather than when it was archived. Retention is 10 runs per canonical path, the live file plus 9 archives. Failed and interrupted runs are untouched and still append with a restart separator (#288).

archive names carry an `archive-` marker and no `progress-` prefix. `isProgressFile` matches `progress-*.txt` and `DiscoverRecursive` walks the whole tree with `skipDirs` covering neither `.ralphex` nor `history`, so a prefixed archive would be listed and replayed as a dashboard session of its own, up to nine per canonical path. Archives remain raw files and do not appear in the dashboard. A history UI needs labels and an API rather than accidental discovery.

order is archive, truncate, prune. Pruning last means a failed truncate rolls back to exactly the starting state, where pruning first could delete the oldest archive to make room for one the rollback would then withdraw. Pruning is best effort, since an old archive can be undeletable through permissions or... (continued)

88 of 110 new or added lines in 1 file covered. (80.0%)

3 existing lines in 2 files now uncovered.

8145 of 9503 relevant lines covered (85.71%)

224.21 hits per line

Relevant lines Covered
Build:
Build:
9503 RELEVANT LINES 8145 COVERED LINES
224.21 HITS PER LINE
Source Files on master
  • Tree
  • List 55
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
33203026970 master archive completed progress logs instead of truncating them (#449) a completed progress log is now archived before the canonical file is reused, so running `ralphex --review` twice no longer destroys the first run's transcript. `ReviewPhase.Loop`... push 28 Aug 2026 07:16PM UTC web-flow github
85.71
33202282136 preserve-review-logs fix: mark progress archives with an archive- prefix instead of matching digits The prune regex required the random token to be all digits, which is what os.CreateTemp happens to produce today but not what it documents - it promises only "a random... Pull #449 28 Aug 2026 07:06PM UTC umputun github
85.77
33201604837 preserve-review-logs fix: mark progress archives with an archive- prefix instead of matching digits The prune regex required the random token to be all digits, which is what os.CreateTemp happens to produce today but not what it documents - it promises only "a random... push 28 Aug 2026 06:57PM UTC umputun github
85.73
33193290880 master docs: add backlog item for the missing codex retry tier push 28 Aug 2026 05:09PM UTC umputun github
85.67
33192887688 master fix: detect codex "Selected model is at capacity" as a limit pattern (#448) OpenAI returns "Selected model is at capacity. Please try a different model." when the selected model is temporarily oversubscribed. Neither codex_limit_patterns nor code... push 28 Aug 2026 05:04PM UTC web-flow github
85.67
33192156761 master docs: add backlog item for pattern errors discarding the CLI diagnostic push 28 Aug 2026 04:56PM UTC umputun github
85.67
33190735631 codex-capacity-pattern fix: detect codex "Selected model is at capacity" as a limit pattern OpenAI returns "Selected model is at capacity. Please try a different model." when the selected model is temporarily oversubscribed. Neither codex_limit_patterns nor codex_error... Pull #448 28 Aug 2026 04:37PM UTC umputun github
85.67
33190179947 codex-capacity-pattern fix: detect codex "Selected model is at capacity" as a limit pattern OpenAI returns "Selected model is at capacity. Please try a different model." when the selected model is temporarily oversubscribed. Neither codex_limit_patterns nor codex_error... push 28 Aug 2026 04:29PM UTC umputun github
85.73
33189974806 codex-capacity-pattern feat: detect codex "Selected model is at capacity" as a limit pattern OpenAI returns "Selected model is at capacity. Please try a different model." when the selected model is temporarily oversubscribed. Neither codex_limit_patterns nor codex_erro... push 28 Aug 2026 04:28PM UTC umputun github
85.73
32997623945 master fix: let worktree mode start with a dirty source checkout (#445) * fix: let worktree mode start with a dirty source checkout --worktree refused to start when the source checkout held any uncommitted file other than the plan, so an unrelated scra... push 26 Aug 2026 06:05PM UTC web-flow github
85.67
See All Builds (809)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc