| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I rewrote `update_text_file.el` in pure Elisp. The previous version
shelled out to sed for everything, had a stray quote terminator at EOF
(line 149) that broke loading, produced literal backslash-n where
actual newlines were expected, and prompted via `y-or-n-p` redundantly
with gptel's own `:confirm t` flag.
The five operations -- replace, append, prepend, insert-at-line,
delete-lines -- split into pure string transforms that test without
touching the disk. The file-level wrapper validates the path, enforces
a 10MB size limit, takes a timestamped backup, and writes atomically.
No backup is created when the operation is a no-op. Patterns are
literal substrings (not regex) so the model can't trip over
metacharacter quoting.
`tests/test-update-text-file.el` covers Normal / Boundary / Error per
operation plus the file-level wrapper. 48 tests green. Added
`update_text_file` to `cj/gptel-local-tool-features` so gptel exposes
the tool after restart.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This squash merge combines 4 commits from the performance branch:
## Performance Improvements
- **org-agenda cache**: Cache org-agenda file list to reduce rebuild time
- Eliminates redundant file system scans on each agenda view
- Added tests for cache invalidation and updates
- **org-refile cache**: Optimize org-refile target building (15-20s → instant)
- Cache eliminates bottleneck when capturing tasks
## Test Suite Improvements
- Fixed all 18 failing tests → 0 failures (107 test files passing)
- Deleted 9 orphaned test files (filesystem lib, dwim-shell-security, org-gcal-mock)
- Fixed missing dependencies (cj/custom-keymap, user-constants)
- Fixed duplicate test definitions and wrong variable names
- Adjusted benchmark timing thresholds for environment variance
- Added comprehensive tests for org-agenda cache functionality
## Documentation & Organization
- **todo.org recovery**: Restored 1,176 lines lost in truncation
- Recovered Methods 4, 5, 6 + Resolved + Inbox sections
- Removed 3 duplicate TODO entries
- **Inbox zero**: Triaged 12 inbox items → 0 items
- Completed: 3 tasks marked DONE (tests, transcription)
- Relocated: 4 tasks to appropriate V2MOM Methods
- Deleted: 4 duplicates/vague tasks
- Merged: 1 task as subtask
## Files Changed
- 58 files changed, 29,316 insertions(+), 2,104 deletions(-)
- Tests: All 107 test files passing
- Codebase: Cleaner, better organized, fully tested
|