Merge pull request 'fix: fall back from invalid DAVE presence timezone' (#74) from codex/issue-73-presence-timezone-fallback into codex/production-intelligence-terminal
This commit was merged in pull request #74.
This commit is contained in:
@@ -78,8 +78,12 @@ export class DavePresence {
|
|||||||
const profile = this.profileStore?.getAgentProfile();
|
const profile = this.profileStore?.getAgentProfile();
|
||||||
if (!profile) return this._result(false, 'profile_missing');
|
if (!profile) return this._result(false, 'profile_missing');
|
||||||
|
|
||||||
const timezone = profile.timezone || this.fallbackTimezone;
|
let timezone = profile.timezone || this.fallbackTimezone;
|
||||||
const clock = localClock(now, timezone);
|
let clock = localClock(now, timezone);
|
||||||
|
if (!clock && timezone !== this.fallbackTimezone) {
|
||||||
|
timezone = this.fallbackTimezone;
|
||||||
|
clock = localClock(now, timezone);
|
||||||
|
}
|
||||||
if (!clock) return this._result(false, 'invalid_timezone');
|
if (!clock) return this._result(false, 'invalid_timezone');
|
||||||
this._rollDay(clock.day);
|
this._rollDay(clock.day);
|
||||||
if (this.state.sentCount >= this.maxPerDay) return this._result(false, 'daily_limit');
|
if (this.state.sentCount >= this.maxPerDay) return this._result(false, 'daily_limit');
|
||||||
|
|||||||
@@ -89,3 +89,11 @@ test('local clock uses the profile timezone', () => {
|
|||||||
assert.deepEqual(localClock(new Date('2026-07-06T12:30:00Z'), 'Europe/Berlin'), { day: '2026-07-06', time: '14:30' });
|
assert.deepEqual(localClock(new Date('2026-07-06T12:30:00Z'), 'Europe/Berlin'), { day: '2026-07-06', time: '14:30' });
|
||||||
assert.equal(localClock(new Date(), 'Invalid/Timezone'), null);
|
assert.equal(localClock(new Date(), 'Invalid/Timezone'), null);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('invalid profile timezone falls back to configured operational timezone', async () => {
|
||||||
|
const { presence, messages, calls } = setup({ profile: { timezone: 'not-a-timezone' } });
|
||||||
|
const outcome = await presence.tick(new Date('2026-07-06T12:00:00Z'));
|
||||||
|
assert.equal(outcome.reason, 'sent');
|
||||||
|
assert.equal(messages.length, 1);
|
||||||
|
assert.match(calls[0].prompt, /timezone: UTC/);
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user