()
| 1069 | } |
| 1070 | |
| 1071 | async function getLatestCodexThread() { |
| 1072 | const rows = await querySqliteRows(codexStateDbPath, [ |
| 1073 | "select id, title, cwd, updated_at", |
| 1074 | "from threads", |
| 1075 | "where archived = 0", |
| 1076 | "order by updated_at desc, id desc", |
| 1077 | "limit 1;" |
| 1078 | ].join(" ")); |
| 1079 | return rows[0] || null; |
| 1080 | } |
| 1081 | |
| 1082 | function parseCodexRateLimitsLog(body) { |
| 1083 | const text = String(body || ""); |
no test coverage detected