Skip to content

Fix 25 problems from the log (http, runner, db) - #214

Merged
danielehrhardt merged 5 commits into
mainfrom
godmode/60-fix-25-problems-from-the-log-http-runner
Oct 19, 2026
Merged

danielehrhardt merged 5 commits into
mainfrom
godmode/60-fix-25-problems-from-the-log-http-runner

Conversation

@danielehrhardt

Copy link
Copy Markdown
Contributor

Two of the problems in this log were real code bugs and are fixed on this branch, along with a slow query on every core start. Everything else was network, sleep, a full disk, or bugs that main already fixes but the installed build doesn't have yet. Typecheck passes and the related core test files pass (189 tests). The full core suite has 1 failure out of 2045 tests, and it isn't from this change: the Cua Driver "a --version that hangs" test in updates.test.ts. Its fake script gets killed by the test's 300 ms timeout before it writes its log line, which looks like timing under load; I didn't change that code. Main hasn't moved since the branch was made, so it merges cleanly.

Changes

  • No decision task from a "nothing new" line (runner/openDecision.ts): "Waiting for you: nothing new from this run." followed by more text in the same paragraph became a task called "nothing new from this run." The check only treated a section as empty when its whole first line was short. Now it is also empty when the first sentence says only "nothing" ("nothing new from this run.", "None for now.", "Nichts Neues von mir.") and no later sentence in the section asks something. Real asks still create a task, for example "None of the quotes fits. Pick A or B", or "No new decisions. Go live Friday or Monday?". Run against the actual answers stored on this Mac, the old code had made three such false tasks, and the new code skips all three. The real decisions in the same set still come through.
  • No missing login from a relayed report (runner/stream.ts): sentences like "its login failed … it's already on your list" or "which I already flagged for you" now create no entry. Real failures still do, such as "it reported that the password is invalid" or "the site already reported this account as locked".
    • The specific bump in the log came from the installed 0.2.19. That build is a344c19 plus the version number only, so it lacks the Chat Input Expo App #57 fix that already stops entries without a real page.
  • Migration 98: dismisses (doesn't delete) open "Unknown service" missing logins with an empty address. Only older builds ever created those. That closes the two false entries the ticket names once the build is installed.
  • Faster resume queries (services/resume.ts): the startup query took 114–136 ms because it walked every chat and read all of its runs. It now orders by +r.created_at, so SQLite reads only the recently finished runs from idx_runs_finished. Results and order are the same, and the every-minute "offline" query gets the same change.

A review pass found three regressions in my first versions of these patterns (real decisions and real login failures being dropped). All are fixed and covered by tests.

Not code bugs, left as they are

  • GET /api/calls/:id/audio error: the ElevenLabs request timed out during a network outage. Main already logs this at info level (Implement attachments to the expo app #59); it isn't installed yet.
  • Watchdog "before its first step" (37 runs, 2026-10-17): the Mac sleeping, before Secrets never block a task: take them out of the branch and push it #54.
  • ENOTFOUND failures (27), github.com unreachable, the task clone not updating, setup copy to the runner failing, browser connection closed: network outages and the Mac or runner sleeping. The failed runs were picked up again once the connection came back.
  • 403 "Request not allowed": from 2026-10-18, before Fix what the reviews of questions, tickets and the team found #56.
  • Watchdog stops after 60 minutes: runs waiting on a background server kept alive with sleep 99999. Stopping them is correct.
  • persist in-flight message failed: the disk was full.
  • Other slow queries, event loop blocked, high memory use: already known load from large chat messages. The one block on 0.2.19 (557 ms) had no recorded cause.

For Daniel


Task #60 · done by Self-Healer with Godmode Bot

…nothing

The waiting-for-you section counted as empty only when its whole first
line was short. "nothing new from this run. You may want to ..." ran
past that and became a task titled "nothing new from this run.". Its
first sentence decides now, unless a later one asks or waits.
…t, dismiss the old ones without a site

A sentence like "its login failed; it reported that, and it's already
on your list" relays another report and files nothing. Open entries
that older builds filed as "Unknown service" without an address are
dismissed once (migration 98): nothing can be added for them.
Ordering by created_at let SQLite walk every chat and all of its runs
to find the few cut off ones, about 130 ms on each cold start.
A first sentence settles a section only when it says nothing else
("None of the quotes fits. Pick A or B" still asks), and pleasantries
or offers after it don't count as asking. A login failure that merely
contains "it reported that" or "already flagged" is still one.
…ng still asks

"No new decisions. Still open: go live Friday or Monday?" asks even
without a "should I". A "nothing" sentence may only name where from
("from this run", "von mir"), so "None from the shortlist works" is
no empty section. "already reported this account" is still a failure.
@danielehrhardt
danielehrhardt merged commit 6ec09a2 into main Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant