Innovate, disrupt, code the future. 💻🔐🚀

Refuse a System 1 skill that reviews every confident guess

restart came back with a printed probability of 1.0. The conformal set still contained restart, wait, and escalate. session.adopt() then raised ValueError: Candidate did not pass its adoption checks, and session.predict() raised ValueError: Assess and adopt a skill before predicting. The candidate file was on disk. It was not a skill the session would serve.

That is the check. A System 1 teaching session can print a near-certain label and still withhold every row. If you restart a process because the raw guess looked sure, you skipped the gate the 1.2.0 session actually enforces.

2026-10-30

Check a Codex permission profile before the allowlist is trusted

cat secret.env under codex sandbox --permission-profile env-deny exited 1. The error was Permission denied. A write in the same repository under :read-only failed with a different sentence: Read-only file system. Those are not two wordings of one policy. One is a path rule. The other is a read-only mount. A domain allowlist has a third failure, and a raw socket does not produce it.

On Codex CLI 0.163.0, a profile with network.enabled = true and the network proxy feature left off opened a direct TCP connection to example.com port 80. The first bytes back were HTTP/1.1. The same binary, with features.network_proxy = true and an allow entry only for example.com, refused http://info.cern.ch/ through the proxy client. The body was JSON, and the message was Domain not in allowlist. A Python socket connect in that second configuration never reached the allowlist check. Name lookup failed, and a connect to the address resolved outside the sandbox was Network is unreachable.

2026-10-30

hermes profile create copies memory the success line omits

The success line was specific. After hermes profile create labclone --no-alias --clone-from labsource, Hermes printed that it had cloned config, .env, SOUL.md, and skills from labsource. It did not mention memory. memories/MEMORY.md and memories/USER.md were on the clone anyway, and their SHA-256 hashes matched the source byte for byte.

That gap is the check worth running before a second always-on agent is pointed at the new profile. The files that moved are the agent’s identity. The sentence that reported the copy is not the inventory.

2026-10-29

Route a ticket with Jev, and keep a GPT-6 Luna fallback

A support router that asks a chat model to “reply with JSON” still has to parse a string. Jev is built for the other shape. You send the ticket as state, name the questions, and the client returns a choice or a probability. The application, not the model, decides whether to file the ticket, hold it, or page someone.

This host does not have a TypeSafe key, so the Jev call stopped before the network. The OpenAI platform key on the same host can list models, including gpt-6-luna, and then refuses inference because the credit balance is exhausted. The code below is the call that was constructed, the errors that came back, and the gate that still runs on a fixture of the same answer shape.

2026-10-29

grok inspect lists a skill that is not a slash command

grok inspect printed yaml-yes and literal-true on consecutive lines. Both lines ended with the word project. Neither line said that one of those skills is not a slash command. The JSON report for the same directory said userInvocable was false for yaml-yes and true for literal-true. The frontmatter difference was one token: yes versus true.

That is the check a copied Claude skill needs before anyone binds /yaml-yes in a script or tells a teammate the command exists. The human summary that the installed guide offers first does not make the check. On Grok 1.0.67, an untrusted folder makes the same summary say the skill is absent, which is a different mistake.

2026-10-29

curl still prints brotli/1.1.0 after the Debian fix

curl --version printed brotli/1.1.0 while the loaded decoder was Debian’s security update, and it printed the same token while the loaded decoder was the unpatched trixie archive build. Both files are named libbrotlidec.so.1.1.0. Both are 51376 bytes. Both answer BrotliDecoderVersion() with 0x1001000. A rule that treats 1.1.0 as “older than 1.1.1” flags the fixed package. A rule that treats brotli/1.1.0 as proof of the fix accepts the vulnerable package. Neither rule can see the upload that actually closed CVE-2026-111497 on Debian 13.

2026-10-29

OpenSSL 4.1.0 rejects no-ecdsa before the compiler starts

A build line that still says ./Configure linux-x86_64 no-ecdsa does not reach gcc on OpenSSL 4.1.0. Configure exits 255, prints Unsupported options: no-ecdsa, and says the build file was not produced. The same line on the 4.0.3 tree exits 0 and writes a Makefile. That success is not evidence that ECDSA left the library. The generated header defines OPENSSL_NO_ECDSA, and the Makefile still compiles crypto/ec/ecdsa_ossl.c.

OpenSSL 4.1.0, released 23 October 2026, dropped no-ecdsa and no-ecdh from Configure. The release notes say those options did not really disable the implementations, and that no-ec is the option that disables elliptic-curve support. The notes do not show the exit status, the exact error text, or the Makefile rule that remains after a 4.0.3 configure. Those are the checks a build job has to make before it treats a green Configure as a disabled algorithm.

2026-10-28

Read DuckDB agent mode from stderr, not from the table

A script that reads only stdout from duckdb -c "SELECT 42 AS answer;" cannot see the line that says agent mode is on. That line goes to stderr. The stdout it does see is either a box table whose type row says int32, or a Markdown row whose header says answer:INTEGER. Both are exit 0. Both contain 42. A parser that splits on the box-drawing character will miss every row of the second form and still report a clean exit.

2026-10-28

Check three Valkey 9.1.3 results before the client upgrade

Valkey 9.1.3 and 9.1.2 split on three ordinary commands. A hash key named fields could not be written with HSETEX on 9.1.2. The same command wrote the field on 9.1.3. ZADD rejected the score 0x10 on 9.1.2 and stored 16 on 9.1.3. LSET with the index 4294967296 returned success on 9.1.2 and replaced the first list element. On 9.1.3 that index returned an error and the list stayed as it was.

2026-10-27

Find report-1.csv after curl 8.23.0, not report.csv.1

A second download with curl --no-clobber --output report.csv did not create report.csv.1. The first file was still the original copy. The new file was report-1.csv. The same command on curl 8.22.0, and on the Debian 13 client, created report.csv.1 and left report-1.csv absent.

That is the check a download job has to make before it is pointed at 8.23.0. The 14 October 2026 release is the one that published the spare-name change, and it is also the release that dropped SMB and SMBS. The man page shipped with 8.23.0 says an extension is preserved as image-1.jpg, then image-2.jpg, and that numbering continues up to filename.9999. The binary followed the extension rule. It did not create the 9999 name. The highest spare file it wrote was image-9998.jpg.

2026-10-27