ai-nexus-claude - Action Report¶
Project: /home/user/Projects/ai-nexus/nexus/ai-nexus-claude Created: 2026-07-24
Canonical Python char-gen: NeXuS providers + search fix + Fossil (2026-07-24 00:19)¶
Status: ✅ TESTED (compiles) — search fix + providers wired; card-reader/PNG2 PENDING.
What: Made working-incomplete.py the canonical Python char-gen (user: 'this is the one to build up, do not remove features'). Fixed search; added Pollinations/aichat/AI-Horde providers; Fossil repo.
Why: It's the feature-rich reconstructed version (SQLite + per-char RSA4096 + Projects/Snippets + threaded summarizer + strong crypto) — beats the 'Coming soon!' consolidated sibling. User tested it: only failure was search.
How: (1) SEARCH FIX in _global_search: SQL operator-precedence 'name LIKE ? OR description LIKE ? AND is_active=1' -> '(name LIKE ? OR description LIKE ?) AND is_active=1'; NULL-safe '(item[description] or "")[:60]' (the crash — None[:60]). (2) PROVIDERS in API_PROVIDERS + APIClient: pollinations FIRST (=default; OpenAI-compatible gen.pollinations.ai + Bearer key + referrer=nexus-char-gen for doubled credits; image via authenticated GET saved to generated_images/); aichat local bridge (localhost:3131/v1, OpenAI-compat, the NeXuS model bus); AI Horde text+image (async submit-and-poll REST, anon key 0000000000, _call_aihorde_text + _generate_aihorde_image). Empty-model providers get free-text model entry; AI Horde key optional. _prepare_request/_parse_response/generate_image all branch the new providers. Google kept as option but NOT default; OpenAI NOT default (pollinations is). (3) Fossil ~/museum/nexus-char-tui.fossil (ai_nexus.db/log/pycache/backups excluded).
Files: MODIFIED working-incomplete.py (194K). Backups: working-incomplete.py.bak-nexus-, .backup.20260126_.
Testing: ✅ python3 -m py_compile clean after every step. NOT live-run since edits (user runs: python3 working-incomplete.py, master password, then chat). Pollinations needs sk_ key entered per-character; aichat needs 'aichat --serve :3131'.
PENDING (next session): (a) DECIDE default provider — aichat(local bus/vision) vs pollinations(current) vs aihorde(free) — user was mid-deciding. (b) CHARACTER CARD reader/creator/importer (SillyTavern/TavernAI PNG cards w/ embedded JSON + V2 JSON) as the character builder — wire in NeXuS-png2-editor (/home/user/git/NeXuS-png2-editor, port 7420) for PNG chunk read/write. (c) /commands list in chat interface (/image /memory /character /narrator /lore /save /converse etc). (d) incorporate PNG2 editor overall.