Commit Graph

13 Commits

Author SHA1 Message Date
Daveswo 3c4947ee65 Fix CRLF corruption in fx.sh, add .gitattributes to prevent recurrence
The previous commit's fx.sh was silently checked out with CRLF line
endings because this clone's core.autocrlf was true -- git converted
LF to CRLF on checkout, and every subsequent edit/copy carried that
corruption forward. Undetected by `sh` on the dev host (tolerant of
CRLF), but busybox ash on the actual AdaptiveOS target is not: booting
the resulting apkovl produced real syntax errors and ": not found" on
every corrupted line, confirmed by testing the rebuilt ISO in QEMU.

Fix: stripped all CR bytes, set core.autocrlf=false locally, and added
.gitattributes (* text=auto eol=lf) so this can't recur for any future
clone regardless of the cloning user's global git config.
2026-08-22 02:16:47 -04:00
Daveswo e9f51827d6 fx: preserve fix-source provenance in a separate p.trace file
Previously fx() stripped the "[source-label]" prefix before handing a
chosen fix to f(), so once a fix landed in p, a manually-typed fix, a
locally-known fix, and an LLM-guessed fix (70-local-llm.sh,
80-remote-api.sh) were byte-for-byte indistinguishable. That silently
undermines 80-remote-api.sh's own documented trust boundary, which
requires LLM-sourced fixes to stay visually distinguishable from
verified ones -- and the distinction was permanently lost once p is
disk-persisted across a reboot (adaptive-loop.sh).

fx() now records "cmd=source-file" to FX_TRACE_FILE (default ./p.trace)
alongside every fix it hands to f(), using the same "record intent, not
confirmed success" timing f() already uses for p itself. Verified
end-to-end against a stub 80-remote-api.sh-style source: p and p.trace
both populate correctly, and the retried command actually succeeds.
2026-08-22 02:16:47 -04:00
Daveswo 602e2ee4bd Fix f.sh: echo -> printf when writing a taught fix to p, first change to f.sh all session -- see HF commit for full detail 2026-08-18 03:44:34 -04:00
Daveswo 1fc1f87be5 Fix 80-remote-api.sh: stop auto-appending /chat/completions, take FX_REMOTE_API_URL exactly as given -- found by testing live against a real third-party API (a local FastAPI service) whose endpoint path did not match the guessed OpenAI convention 2026-08-18 03:07:40 -04:00
Daveswo f4b6b85bec Document the argument-value fix gap and the loopback-only-bind non-gap, both found testing against a real live system; also fix stale sources table missing 70/80 2026-08-18 02:53:53 -04:00
Daveswo 25ce1ca680 Fix remaining two code-review findings, both verified live: 30-selfdiag.sh regex-metachar breakage (g++), fx.sh dedup collision on ] in candidate text 2026-08-18 02:32:20 -04:00
Daveswo d27d9a0819 Fix code-review findings: 10-known.sh value-match bug (proven live), bootstrap.sh symlink race + missing sources + accidental exit-on-eval, fx.sh misleading picker text + FX_AUTO short-circuit 2026-08-18 01:48:53 -04:00
Daveswo 7c7a1c2529 Fix 50-thefuck.sh: wrap in timeout, found by 1000-case fuzz test hanging on unmatched inputs 2026-08-18 01:10:40 -04:00
Daveswo 6a93e3db3c Add 80-remote-api.sh: opt-in remote LLM API fallback source (OpenAI-compatible) 2026-08-18 00:37:28 -04:00
Daveswo 1c53778a36 Add 70-local-llm.sh: last-resort fix source querying a local Ollama/LM Studio server 2026-08-18 00:09:54 -04:00
Daveswo df3c328424 Fix real hardware/busybox breakage: dead compgen dependency, unreliable sourced-path detection, and fork-heavy pipelines in fx sources; verified against busybox ash+awk directly 2026-08-17 23:19:07 -04:00
Daveswo b4d619de8a Add fx bootstrap.sh and copy-paste command on the live page 2026-08-17 22:43:32 -04:00
Daveswo 8b30120fba Self-healing autopoietic shell: f(), tests, docs, interactive demo, fx fix-source layer 2026-08-17 22:30:18 -04:00