fix: robust foreground detection for macOS and multiple bug fixes

- Use `ps -o stat=` to check process foreground state directly,
  fixing macOS where tmux pane_current_command reports "zsh" instead
  of the child process. Falls back to pane_current_command safely.
- Fix print mode retry off-by-one (maxRetries=5 only gave 4 retries)
- Fix sendKeys failure leaving state unupdated (tight error loop)
- Validate customPatterns config entries (non-string/invalid regex crashed monitor)
- Parse "resets in: N hours" format (was detected but not time-parsed)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
CheapestInference
2026-03-31 13:11:33 +02:00
parent 0652a23274
commit a81d376322
9 changed files with 80 additions and 24 deletions
+10
View File
@@ -46,6 +46,16 @@ describe('parseResetTime', () => {
assert.ok(r.relative);
assert.equal(r.waitMs, 30 * 60_000);
});
it('parses "resets in: 3 hours" as relative time', () => {
const r = parseResetTime('usage limit · resets in: 3 hours');
assert.ok(r.relative);
assert.equal(r.waitMs, 3 * 3_600_000);
});
it('parses "resets in 2 hours" as relative time', () => {
const r = parseResetTime('resets in 2 hours');
assert.ok(r.relative);
assert.equal(r.waitMs, 2 * 3_600_000);
});
});
describe('calculateWaitMs', () => {