diff --git a/sync/CURRENT.md b/sync/CURRENT.md index 3ab5d16..2708c26 100644 --- a/sync/CURRENT.md +++ b/sync/CURRENT.md @@ -1,6 +1,6 @@ # Current TIP Sync State -Updated: 2026-04-29 20:55 UTC +Updated: 2026-04-29 21:02 UTC ## Active Policy @@ -27,6 +27,12 @@ When work touches TIP, Magatama, LLM Gateway, bridges, auth, or shared Erik infr ## Latest Work +- Complete Codex chat sync was added: + - `sync/history/2026-04-29-codex-complete-chat-sync.md` + - captures Ghost/blog updates, LinkedIn voice preferences, LPO/AI-fabric blog edits, Rest-Is-Not-Laziness scheduling replacement, and security notes. + - confirms no secrets were written into sync. + - confirms TIP crawler/robot planning remains TIPLLM-only. + - confirms Erik remains controller/light `erik-safe` only, with heavy crawler work assigned to Proxmox/Pi workers. - Codex sync-start confirmation was added: - `sync/history/2026-04-29-codex-sync-start-confirmation.md` - confirms Codex read this TIP handoff, checked the sibling LLM Gateway handoff, and is treating `sync/` as binding. @@ -97,7 +103,8 @@ From 2026-04-29: 2. Read this folder first. 3. For BlogLLM work, treat `fo-blog-v7` as Adapter Bridge / PEFT adapter, not as a `~/.ollama` GGUF model. 4. Also read `llm-gateway/sync/CURRENT.md` when work touches shared Erik infrastructure, LLM routing, bridges, auth, TIPLLM, or crawler orchestration. -5. If testing robots, start with dry runs only: +5. For TIP robot/crawler planning, use TIPLLM only. Do not route this lane through external AI providers. +6. If testing robots, start with dry runs only: ```bash npm run robots:verification -w packages/scraper -- --status @@ -105,7 +112,7 @@ npm run robots:verification -w packages/scraper -- --tipllm-plan --limit=3 npm run robots:verification -w packages/scraper -- --enqueue=details-fast-lane --profile=erik-safe --dry-run ``` -6. Only dispatch real crawl work after deciding the target host: +7. Only dispatch real crawl work after deciding the target host: - Erik: `erik-safe`, tiny batches only. - Pi: `pi-fetch`. - Proxmox: `proxmox-heavy`. @@ -118,4 +125,4 @@ There are existing uncommitted changes outside `sync/`. Some are Codex work from - `6c42ca7 docs: add shared agent sync handoff` - `8e7c5aa docs: link llm-gateway sync handoff` -- Pending after this update: Codex sync-start confirmation in `sync/history/`. +- Pending after this update: complete Codex chat sync in `sync/history/`. diff --git a/sync/history/2026-04-29-codex-complete-chat-sync.md b/sync/history/2026-04-29-codex-complete-chat-sync.md new file mode 100644 index 0000000..3582ff9 --- /dev/null +++ b/sync/history/2026-04-29-codex-complete-chat-sync.md @@ -0,0 +1,255 @@ +# 2026-04-29 Codex Complete Chat Sync + +## Scope + +This handoff captures the complete relevant Codex chat state from this conversation so Claude, Codex, and laptop sessions can continue from the same operational context. + +It intentionally does **not** persist secrets. Ghost API keys were shared in chat for one-off operations, but no key values are written here. + +## Binding User Preferences + +- Rene wants public copy to be **1000% anti-AI**: + - no generic LinkedIn templates. + - no polished AI cadence. + - no repeated "Everyone talks about..." default hooks. + - more Rene voice: direct, nerdy, slightly rough, honest, technical where useful. + - prefer imperfect human rhythm over clean marketing symmetry. +- English is preferred for LinkedIn teasers unless Rene asks otherwise. +- Teasers should respect LinkedIn practical length: + - stay comfortably below the post limit. + - put the useful hook before the "see more" fold. + +## Ghost / Blog Work Completed In This Chat + +### NOG Meetings Blog + +Blog: + +```text +https://blog.fichtmueller.org/nog-meetings-unvarnished-truth-commercialization/ +``` + +Codex created English LinkedIn teaser variants around: + +- NOG meetings as Rene's second life. +- honest critique without abandoning the community. +- commercialization, travel culture, alcohol, status, missing accountability, fellowship safety. + +No blog update was performed for this post in this chat. + +### Mental Health / Boris Reply + +Rene shared a long message from Boris responding to: + +```text +https://blog.fichtmueller.org/unspoken-costs-mental-health-tech-infrastructure/ +``` + +Context added by Rene: + +- In 2011 Rene attempted suicide. +- At that time he had effectively multiple parallel lives: + - actual life. + - private escape / affair. + - job running in his head around 20 hours per day. + +Codex drafted a direct personal reply to Boris. It should remain private unless Rene chooses to send/publish it. + +Important voice note: + +- Keep this kind of writing plain and personal. +- Do not over-polish. +- Avoid therapy-speak and leadership-post framing. + +### AI Fabric Optics Blog + +Blog: + +```text +https://blog.fichtmueller.org/ai-fabric-optics-gpu-cluster-networking/ +``` + +Codex created a LinkedIn teaser and then updated the published Ghost post with FLEXOPTIX links. + +Inserted section: + +```text +// where sourcing gets real +``` + +Links added: + +```text +https://www.flexoptix.net/en/transceiver?fo_tra_protocols_category=InfiniBand +https://www.flexoptix.net/en/supported-vendors/index/name/Nvidia+(ex.+Mellanox)-compatible +``` + +Live readback confirmed the section was visible. Ghost appended tracking refs to outbound links on the rendered page. + +### LPO Blog + +Blog: + +```text +https://blog.fichtmueller.org/linear-drive-optics-lpo-killing-dsp/ +``` + +Rene asked for fact/professional review. Codex checked and corrected the article via Ghost Admin API. + +Key corrections applied: + +- Replaced absolute "every pluggable module contains a DSP" wording with "most modern high-speed DSP-based pluggable optical modules..." +- Corrected FEC wording so it is not incorrectly always "in module". +- Made reach claims less absolute. +- Updated standards wording to: + +```text +LPO MSA specifications plus OIF CEI-112G-LINEAR-PAM4 / EEI work +``` + +- Marked the 32% latency number as illustrative: + +```text +Illustrative 32% lower end-to-end latency in this model +``` + +- Added FLEXOPTIX LPO link: + +```text +https://www.flexoptix.net/en/transceiver?fo_tra_type=LPO +``` + +Live readback confirmed: + +- updated standards line. +- illustrative latency wording. +- FLEXOPTIX LPO link. + +Codex then created several LinkedIn teaser versions. Rene rejected duplication with the earlier AI Fabric teaser. Final direction: + +- more nerdy. +- less LinkedIn. +- anti-AI. +- English. + +Latest preferred teaser style example: + +- DSP as "signal therapist" / "insurance". +- LPO removes DSP/retimer. +- host/SerDes/board/fiber must actually be good. +- "Mystery fiber from 2009 with three patch fields and a dust biography? Please no." + +### Personal Replacement Blog + +Rene wanted to replace an unloved scheduled/published placeholder-style blog. + +The obvious bad post was: + +```text +testr +``` + +Rene deleted `testr`. + +Codex drafted a personal blog: + +```text +Rest Is Not Laziness +``` + +It was initially published live by mistake: + +```text +https://blog.fichtmueller.org/rest-is-not-laziness/ +``` + +Rene clarified it should replace the scheduled post shown in Ghost: + +```text +EO: Two Years in a Peer Group, One Lesson +``` + +After explicit confirmation, Codex: + +- overwrote the scheduled EO post with `Rest Is Not Laziness`. +- preserved the scheduled publish time. +- deleted the accidentally live duplicate. +- reset the slug from `rest-is-not-laziness-2` back to: + +```text +rest-is-not-laziness +``` + +Final scheduled state: + +- Title: `Rest Is Not Laziness` +- Status: scheduled +- Publish time: `2026-05-16T06:00:00.000Z` +- Berlin time: `2026-05-16 08:00 CEST` +- Ghost preview/internal URL remained the old post UUID path: + +```text +https://blog.fichtmueller.org/p/cec9727d-63ca-4a9c-b5c3-7b0aba620c02/ +``` + +## Security / Secret Handling Note + +Rene pasted Ghost Content/Admin API keys into chat. Codex used the Admin key only for one-off Ghost Admin API operations. + +Important: + +- Do not write those key values into repo files, sync files, shell history notes, or training material. +- Rotate the Ghost Admin API key because it appeared in chat. +- Future work should use a proper secret store or short-lived environment injection. + +## Sync / TIP Instruction From Rene + +Rene explicitly requested: + +- Read `sync/CURRENT.md` and latest `sync/history/` first. +- Treat them as binding state. +- Write new findings, decisions and open points back into `sync/`. +- Push only `sync/` to Gitea. +- For TIP: + - TIPLLM-only for robot/crawler planning. + - Erik only cautiously as controller / tiny safe runner. + - heavy crawlers on Proxmox/Pis. + +Codex read: + +- `sync/CURRENT.md` +- `sync/history/2026-04-29-codex-sync-start-confirmation.md` +- `sync/history/2026-04-29-fo-blog-v7-tip-handoff.md` +- `sync/history/2026-04-29-codex-full-session-handoff.md` +- sibling `llm-gateway/sync/CURRENT.md` + +## Current Worktree / Git Decision + +The TIP repo has many existing non-sync changes and untracked files. These are outside this chat-sync task. + +Decision: + +- do not revert. +- do not stage. +- do not commit. +- only stage/commit/push `sync/`. + +## Operational Safety During This Sync + +No crawler jobs were started. +No robot queues were enqueued. +No PM2 services were restarted. +No Erik deployment or load test was performed. + +## Open Points + +- Rotate Ghost Admin API key. +- Continue to use `sync/` as the handoff source before any TIP/LLM/crawler work. +- Before any real crawler dispatch, choose the target: + - Erik: `erik-safe`, tiny batches only. + - Pi: `pi-fetch`. + - Proxmox: `proxmox-heavy`. +- Keep robot/crawler planning TIPLLM-only. +- For future BlogLLM work, remember from current sync: + - active model is `fo-blog-v7`. + - it is an Adapter Bridge / PEFT adapter, not a normal `~/.ollama` GGUF manifest.