| ▲ | epicepicurean a day ago | |||||||||||||||||||||||||
Much better than Opus 5. prompt: > hi, can you explain how the scheduler works. keep it brief, but include important correctness details some excerpts: >Flow: 1. Data arrives. The appender calls prepare/commit around the krolik write. The prepare step leaves a phantom row, so a write that is still in flight is tracked. The commit publishes STREAM_INPUT. 2. Poll. It first reclaims expired leases. Then it sweeps sdirty (a candidate index) in a rotating order, oldest since first, which prevents starvation. It re-derives the exact period and rewind for each candidate from snode_out/snode_in, then claims it: writes the sassign lease plus a per-edge sassign_edge snapshot. 3. Complete. Each edge's watermark is set to the snapshot taken at dispatch. Anything published after that gen stays dirty automatically. A failed or partial job writes nothing, so its dirt persists. > - Folds are monotone single statements. gen only goes up, extents only grow, processed periods only union, rw_start only moves earlier. So replays, out-of-order writes, and concurrent writes can at worst hold a watermark back. The worst outcome is a spurious rerun, never lost work. There's no read-modify-write and no truncation of the dirty period, so a write that lands during a job can't be swallowed. > - Rewrites are declared by the publisher, never inferred from overlap. An unflagged write that overlaps already-processed data means "unchanged", which makes retries and redelivered tasks free. Each publisher has its own reason for being sound (see the table in scheduler/CLAUDE.md). A new publisher needs a row in that table. > - NULL means dirty, and DELETE is the fence. Every node and edge has a row from the moment it's created. A lost parent or a settings-only edit can't be derived, so both go through one forced-rerun path: capture_rewinds reads the processed span before the DELETE, and apply_rewinds publishes it as a rewrite on a config root. All the non-standard programming jargon is stuff from the repo. I can actually read it and understand what it's talking about. I used Fable to handle Opus 5 as I just couldn't stand it. With this I'll probably go back to Opus. | ||||||||||||||||||||||||||
| ▲ | croemer a day ago | parent | next [-] | |||||||||||||||||||||||||
That's the standard annoying pattern though: "Rewrites are declared by the publisher, never inferred from overlap." and "NULL means dirty, and DELETE is the fence." - still the same LLMisms. I didn't expect them to disappear, but it's not a radical improvement either. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | californical a day ago | parent | prev | next [-] | |||||||||||||||||||||||||
Oof thanks for sharing, that seems just as bad if not even worse than Opus 5 to me. Just about every sentence is painful. Particular standouts that a human would never write: > Rewrites are declared by the publisher, never inferred from overlap > NULL means dirty, and DELETE is the fence | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | rfgplk a day ago | parent | prev [-] | |||||||||||||||||||||||||
So still effectively nonsense. > Rewrites are declared by the publisher, never inferred from overlap. This style of writing is idiotic because it conveys no additional information. It's no different from stating > Rewrites are declared by the publisher, never when moons collide. The two sentences are actually logically identical. No idea why these models keep writing like this. > Folds are monotone single statements. gen only goes up, extents only grow, processed periods only union, rw_start only moves earlier. This is even more ridiculous. | ||||||||||||||||||||||||||