Perplexity review #736

Closed
opened 2026-03-28 21:06:56 +00:00 by Rockachopa · 1 comment
Owner

Timmy Report Card — 20 Hours on Codex Backend

The Numbers

Metric | Value -- | -- PRs created | 17 PRs merged | 16 (94% merge rate) Issues created | 72 Repos touched | all 3 (timmy-config, timmy-home, the-nexus) Net lines added | ~2,900+ across all merged PRs

Timmy on Codex backend is producing more real infrastructure per hour than any agent configuration we've seen. The Evennia pivot alone is worth more than Gemini's entire 74-PR history — it's a real architectural decision that serves all three concerns, not visual polish.

The gap is discipline. Codex-agent's 7/7 were surgically scoped. Timmy's 16/17 include several +300-600 line PRs that should have been broken up or challenged against the 10-line rule. And 72 issues in a day risks recreating the Timmy-time-dashboard noise problem.

Bottom Line

Timmy on Codex is the most productive configuration you've run. The Evennia decision was the right call — text world over graphical game for training data quality. Fix the offline inference loop (#49), enforce the line limit, and throttle the issue creation rate. The machine works. The governor needs tightening.

Timmy Report Card — 20 Hours on Codex Backend The Numbers Metric Value PRs created 17 PRs merged 16 (94% merge rate) Issues created 72 Repos touched all 3 (timmy-config, timmy-home, the-nexus) Net lines added ~2,900+ across all merged PRs For comparison: in the previous session, Codex-agent had 7/7 (100%), Claude had 164 PRs at 42%, Gemini had 74 at 35%.

Grade: B+
Strong output velocity and directional coherence, with two material concerns.

What Timmy did well

  1. Evennia mind palace — this is a real architectural move.

Timmy pivoted from Morrowind (graphical game, CGEvent keypresses, Lua scripts) to Evennia (Python MUD/text world framework). This is strategically correct. Evennia gives Timmy:

A text-based world he can navigate via telnet/MCP — no screen scraping, no CGEvent hacks, no Lua dependency

Full Python control over the world (rooms, objects, NPCs are Python classes)

Clean training data: every command/response pair is a labeled trajectory

Local-first, MIT licensed, runs on the Mac

The implementation is real: 11 files for bootstrap, an MCP server (evennia_mcp_server.py) that connects via telnet, telemetry logging to JSONL, a world layout spec with 7 meaningful rooms (Gate, Courtyard, Workshop, Archive, Chapel, Observatory, Private Chamber), tests, and a training data contract. This directly serves all three #542 concerns — Heartbeat (world-state perception), Harness (Hermes MCP integration), and Portal (embodied environment).

  1. Trajectory sanitization utility (timmy-home PR #27). Real infrastructure — strips sensitive metadata before DPO export. This was item #1 in the knowledge transfer's open loops.

  2. Merge proof standard (timmy-config #84, timmy-home #32). New policy: screenshots for visual changes, logs for CLI changes. Proves the work happened. Good governance.

  3. Local-vs-cloud metrics (timmy-config #85). Dashboard now shows actual token counts, throughput, and local vs cloud session breakdown from Hermes state.db. This is the observability needed to track sovereignty progress.

  4. Made local llama.cpp the default (timmy-config #77). Config change to make local inference the default runtime instead of cloud. Direct execution of #542's sovereignty mandate.

  5. Nexus ↔ Evennia bridge (the-nexus #725, #732). Thin adapter from Evennia world events into the Nexus WebSocket protocol. This means the 3D portal can show what's happening in Timmy's text world. Good separation of concerns.

  6. Gemini management. Gemini submitted 21 PRs today. 20 were closed, 1 merged. Timmy is enforcing quality — not rubber-stamping Gemini's output. That's the right call.

Concerns

  1. The 10-line rule is being ignored.

The net additions across today's merged PRs:

PR Net lines
timmy-home #38 (Evennia bootstrap) +674
timmy-home #40 (Evennia telemetry) +426
timmy-config #85 (metrics) +265
the-nexus #725 (Evennia adapter) +286
timmy-home #27 (trajectory sanitizer) +272
timmy-home #47 (video manifest) +274
None of these are anywhere near the 10-line net limit. PR #38 alone is +674 net. The policy from the-nexus PR #525 and CONTRIBUTING.md says any PR over 10 net lines must find compensatory cuts. This isn't happening.

To be fair — some of these are genuinely new infrastructure that can't be achieved in 10 lines. But the policy exists specifically to force the question: "can I use an existing tool instead of building this?" The Evennia MCP server is 5,593 chars of new code. The telemetry module is 2,240 chars. These might be justified, but the 10-line gate wasn't applied.

  1. 72 issues in 20 hours is a lot of backlog.

Timmy created 72 new issues across the three repos today. Some are well-scoped (the Evennia implementation chain, the Bannerlord epic). But many are speculative UI/UX tickets for the Nexus (#692-#731 range) — onboarding overlays, transcript viewers, panel replacements, portal status walls, quality-tier gating. These are exactly the kind of visual/UX work that #542 deprioritized in favor of Heartbeat/Harness/Portal.

The risk is the same one the knowledge transfer warned about: agents filing faster than the architecture can absorb, and the backlog becoming noise.

  1. The "offline Timmy struggling" issue (#49) needs attention.

Your logs show Timmy looping against local llama.cpp — memory writes repeating 5 times for the same message, interrupts during API calls at 7-8 seconds, context at 20K/65K tokens (33%). This looks like:

The local model is slow enough that interrupts fire before it can respond

Memory writes are not deduplicated (same message stored 5 times)

The context window is filling up with repeated memory entries

This is the most important issue on the board right now. If local inference doesn't work reliably, everything built today (Evennia, trajectories, metrics) has no brain to drive it.

PR #734 (Gemini — Nexus Heartbeat: Ambient World Vitality System)
This is a cosmetic PR. It adds:

A "NEXUS PULSE" HUD element showing a fake heartbeat frequency (sinusoidal oscillation, not connected to any real system state)

Ambient light "breathing" effect

CSS animations

The heartbeat frequency is 1.0 + Math.sin(elapsed * 0.2) * 0.5 — pure math, not derived from Hermes state, Timmy's cognitive loop, or any real telemetry. It's exactly the kind of visual polish that #542 deprioritized. Timmy was right to close Gemini's other 20 PRs today.

Recommendation: Close PR #734. The real heartbeat panel is tracked at the-nexus#698 and should be driven by actual Hermes session state, not a sine wave.

Versus Other Agents — Updated Scorecard
Agent Period PRs Merged Rate Scope
Timmy (Codex) Mar 28 (20h) 17 16 94% All 3 repos — infra, specs, training, bridge
codex-agent Mar 27 (1 day) 7 7 100% timmy-config, timmy-home — archive pipeline
Gemini Mar 28 (20h) 21 1 5% the-nexus — mostly rejected
Claude Mar 23-25 (3 days) 164 69 42% the-nexus — visual features
Timmy on Codex backend is producing more real infrastructure per hour than any agent configuration we've seen. The Evennia pivot alone is worth more than Gemini's entire 74-PR history — it's a real architectural decision that serves all three concerns, not visual polish.

The gap is discipline. Codex-agent's 7/7 were surgically scoped. Timmy's 16/17 include several +300-600 line PRs that should have been broken up or challenged against the 10-line rule. And 72 issues in a day risks recreating the Timmy-time-dashboard noise problem.

Bottom Line
Timmy on Codex is the most productive configuration you've run. The Evennia decision was the right call — text world over graphical game for training data quality. Fix the offline inference loop (#49), enforce the line limit, and throttle the issue creation rate. The machine works. The governor needs tightening.

<h2 class="font-editorial font-bold mb-2 mt-4 [.has-inline-images_&amp;]:clear-end text-lg first:mt-0 md:text-lg [hr+&amp;]:mt-4" id="timmy-report-card--20-hours-on-codex-backend" style="box-sizing: border-box; border-style: solid; border-width: 0px; border-color: oklch(0.8735 0.002 67.8 / 0.14); scrollbar-color: initial; scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: #3b82f680; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; font-size: 1.125rem; font-weight: 500; margin: 0px 0px 0.5rem; color: oklch(0.8735 0.002 67.8); line-height: 1.25; font-family: pplxSerif; font-optical-sizing: none; letter-spacing: 0px; text-wrap: pretty; font-variation-settings: &quot;opsz&quot; 17; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space-collapse: collapse; background-color: oklch(0.2009 0.003 67.68); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">Timmy Report Card — 20 Hours on Codex Backend</h2><h2 class="font-editorial font-bold mb-2 mt-4 [.has-inline-images_&amp;]:clear-end text-base first:mt-0" id="the-numbers" style="box-sizing: border-box; border-style: solid; border-width: 0px; border-color: oklch(0.8735 0.002 67.8 / 0.14); scrollbar-color: initial; scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: #3b82f680; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; font-size: 1rem; font-weight: 500; margin: 1rem 0px 0.5rem; color: oklch(0.8735 0.002 67.8); line-height: 1.25; font-family: pplxSerif; font-optical-sizing: none; letter-spacing: 0px; text-wrap: pretty; font-variation-settings: &quot;opsz&quot; 17; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space-collapse: collapse; background-color: oklch(0.2009 0.003 67.68); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">The Numbers</h2><div class="group relative my-[1em]" style="box-sizing: border-box; border-style: solid; border-width: 0px; border-color: oklch(0.8735 0.002 67.8 / 0.14); scrollbar-color: initial; scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: #3b82f680; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; margin-top: 1em; position: relative; margin-bottom: 1em; font-family: pplxSerif, ui-serif, Georgia, Cambria, &quot;Hiragino Mincho ProN&quot;, &quot;Yu Mincho&quot;, &quot;Songti SC&quot;, SimSun, &quot;Songti TC&quot;, PMingLiU, &quot;Songti TC&quot;, MingLiU_HKSCS, &quot;Songti TC&quot;, PMingLiU, AppleMyungjo, Batang, serif; color: oklch(0.8735 0.002 67.8); font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: -0.4px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: oklch(0.2009 0.003 67.68); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><div class="sticky top-0 z-10 h-0" aria-hidden="true" style="box-sizing: border-box; border-style: solid; border-width: 0px; border-color: oklch(0.8735 0.002 67.8 / 0.14); scrollbar-color: initial; scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: #3b82f680; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; position: sticky; top: 0px; z-index: 10; height: 0px; font-family: pplxSerif, ui-serif, Georgia, Cambria, &quot;Hiragino Mincho ProN&quot;, &quot;Yu Mincho&quot;, &quot;Songti SC&quot;, SimSun, &quot;Songti TC&quot;, PMingLiU, &quot;Songti TC&quot;, MingLiU_HKSCS, &quot;Songti TC&quot;, PMingLiU, AppleMyungjo, Batang, serif; overflow: hidden; visibility: hidden;"><div class="w-full overflow-hidden bg-raised border-x md:max-w-[90vw] border-subtlest ring-subtlest divide-subtlest" style="box-sizing: border-box; border-style: solid; border-width: 0px 1px; border-color: oklch(0.8735 0.002 67.8 / 0.07); scrollbar-color: initial; scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: oklch(87.35% .002 67.8 / .07); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; width: 711px; overflow: hidden; background-color: oklch(0.2315 0.002 67.7); max-width: 90vw; font-family: pplxSerif, ui-serif, Georgia, Cambria, &quot;Hiragino Mincho ProN&quot;, &quot;Yu Mincho&quot;, &quot;Songti SC&quot;, SimSun, &quot;Songti TC&quot;, PMingLiU, &quot;Songti TC&quot;, MingLiU_HKSCS, &quot;Songti TC&quot;, PMingLiU, AppleMyungjo, Batang, serif;"></div></div><div class="w-full overflow-auto scrollbar-subtle rounded-lg border md:max-w-[90vw] border-subtlest ring-subtlest divide-subtlest bg-raised" style="box-sizing: border-box; border-style: solid; border-width: 1px; border-color: oklch(0.8735 0.002 67.8 / 0.07); scrollbar-color: oklch(0.8735 0.002 67.8 / 0.15) rgba(0, 0, 0, 0); scrollbar-width: thin; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: oklch(87.35% .002 67.8 / .07); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; width: 711px; overflow: auto; border-radius: 0.5rem; background-color: oklch(0.2315 0.002 67.7); --scrollbar-thumb: oklch(87.35% .002 67.8 / .15); --scrollbar-track: transparent; max-width: 90vw; font-family: pplxSerif, ui-serif, Georgia, Cambria, &quot;Hiragino Mincho ProN&quot;, &quot;Yu Mincho&quot;, &quot;Songti SC&quot;, SimSun, &quot;Songti TC&quot;, PMingLiU, &quot;Songti TC&quot;, MingLiU_HKSCS, &quot;Songti TC&quot;, PMingLiU, AppleMyungjo, Batang, serif;"> Metric | Value -- | -- PRs created | 17 PRs merged | 16 (94% merge rate) Issues created | 72 Repos touched | all 3 (timmy-config, timmy-home, the-nexus) Net lines added | ~2,900+ across all merged PRs </div></div><p class="my-2 [&amp;+p]:mt-4 [&amp;_strong:has(+br)]:inline-block [&amp;_strong:has(+br)]:pb-2" style="box-sizing: border-box; border-style: solid; border-width: 0px; border-color: oklch(0.8735 0.002 67.8 / 0.14); scrollbar-color: initial; scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: #3b82f680; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; margin: 0.5rem 0px; font-weight: 400; font-family: pplxSerif, ui-serif, Georgia, Cambria, &quot;Hiragino Mincho ProN&quot;, &quot;Yu Mincho&quot;, &quot;Songti SC&quot;, SimSun, &quot;Songti TC&quot;, PMingLiU, &quot;Songti TC&quot;, MingLiU_HKSCS, &quot;Songti TC&quot;, PMingLiU, AppleMyungjo, Batang, serif; color: oklch(0.8735 0.002 67.8); font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: -0.4px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: oklch(0.2009 0.003 67.68); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">Timmy on Codex backend is producing more real infrastructure per hour than any agent configuration we've seen. The Evennia pivot alone is worth more than Gemini's entire 74-PR history — it's a real architectural decision that serves all three concerns, not visual polish.</p><p class="my-2 [&amp;+p]:mt-4 [&amp;_strong:has(+br)]:inline-block [&amp;_strong:has(+br)]:pb-2" style="box-sizing: border-box; border-style: solid; border-width: 0px; border-color: oklch(0.8735 0.002 67.8 / 0.14); scrollbar-color: initial; scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: #3b82f680; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; margin: 1rem 0px 0.5rem; font-weight: 400; font-family: pplxSerif, ui-serif, Georgia, Cambria, &quot;Hiragino Mincho ProN&quot;, &quot;Yu Mincho&quot;, &quot;Songti SC&quot;, SimSun, &quot;Songti TC&quot;, PMingLiU, &quot;Songti TC&quot;, MingLiU_HKSCS, &quot;Songti TC&quot;, PMingLiU, AppleMyungjo, Batang, serif; color: oklch(0.8735 0.002 67.8); font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: -0.4px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: oklch(0.2009 0.003 67.68); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">The gap is discipline. Codex-agent's 7/7 were surgically scoped. Timmy's 16/17 include several +300-600 line PRs that should have been broken up or challenged against the 10-line rule. And 72 issues in a day risks recreating the Timmy-time-dashboard noise problem.</p><h2 class="font-editorial font-bold mb-2 mt-4 [.has-inline-images_&amp;]:clear-end text-base first:mt-0" id="bottom-line" style="box-sizing: border-box; border-style: solid; border-width: 0px; border-color: oklch(0.8735 0.002 67.8 / 0.14); scrollbar-color: initial; scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: #3b82f680; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; font-size: 1rem; font-weight: 500; margin: 1rem 0px 0.5rem; color: oklch(0.8735 0.002 67.8); line-height: 1.25; font-family: pplxSerif; font-optical-sizing: none; letter-spacing: 0px; text-wrap: pretty; font-variation-settings: &quot;opsz&quot; 17; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space-collapse: collapse; background-color: oklch(0.2009 0.003 67.68); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">Bottom Line</h2><p class="my-2 [&amp;+p]:mt-4 [&amp;_strong:has(+br)]:inline-block [&amp;_strong:has(+br)]:pb-2" style="box-sizing: border-box; border-style: solid; border-width: 0px; border-color: oklch(0.8735 0.002 67.8 / 0.14); scrollbar-color: initial; scrollbar-width: initial; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: #3b82f680; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; margin: 0.5rem 0px; font-weight: 400; font-family: pplxSerif, ui-serif, Georgia, Cambria, &quot;Hiragino Mincho ProN&quot;, &quot;Yu Mincho&quot;, &quot;Songti SC&quot;, SimSun, &quot;Songti TC&quot;, PMingLiU, &quot;Songti TC&quot;, MingLiU_HKSCS, &quot;Songti TC&quot;, PMingLiU, AppleMyungjo, Batang, serif; color: oklch(0.8735 0.002 67.8); font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: -0.4px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: oklch(0.2009 0.003 67.68); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">Timmy on Codex is the most productive configuration you've run. The Evennia decision was the right call — text world over graphical game for training data quality. Fix the offline inference loop (#49), enforce the line limit, and throttle the issue creation rate. The machine works. The governor needs tightening.</p>Timmy Report Card — 20 Hours on Codex Backend The Numbers Metric Value PRs created 17 PRs merged 16 (94% merge rate) Issues created 72 Repos touched all 3 (timmy-config, timmy-home, the-nexus) Net lines added ~2,900+ across all merged PRs For comparison: in the previous session, Codex-agent had 7/7 (100%), Claude had 164 PRs at 42%, Gemini had 74 at 35%. Grade: B+ Strong output velocity and directional coherence, with two material concerns. What Timmy did well 1. Evennia mind palace — this is a real architectural move. Timmy pivoted from Morrowind (graphical game, CGEvent keypresses, Lua scripts) to [Evennia](https://www.evennia.com/) (Python MUD/text world framework). This is strategically correct. Evennia gives Timmy: A text-based world he can navigate via telnet/MCP — no screen scraping, no CGEvent hacks, no Lua dependency Full Python control over the world (rooms, objects, NPCs are Python classes) Clean training data: every command/response pair is a labeled trajectory Local-first, MIT licensed, runs on the Mac The implementation is real: 11 files for bootstrap, an MCP server (evennia_mcp_server.py) that connects via telnet, telemetry logging to JSONL, a world layout spec with 7 meaningful rooms (Gate, Courtyard, Workshop, Archive, Chapel, Observatory, Private Chamber), tests, and a training data contract. This directly serves all three #542 concerns — Heartbeat (world-state perception), Harness (Hermes MCP integration), and Portal (embodied environment). 2. Trajectory sanitization utility (timmy-home PR #27). Real infrastructure — strips sensitive metadata before DPO export. This was item #1 in the knowledge transfer's open loops. 3. Merge proof standard (timmy-config #84, timmy-home #32). New policy: screenshots for visual changes, logs for CLI changes. Proves the work happened. Good governance. 4. Local-vs-cloud metrics (timmy-config #85). Dashboard now shows actual token counts, throughput, and local vs cloud session breakdown from Hermes state.db. This is the observability needed to track sovereignty progress. 5. Made local llama.cpp the default (timmy-config #77). Config change to make local inference the default runtime instead of cloud. Direct execution of #542's sovereignty mandate. 6. Nexus ↔ Evennia bridge (the-nexus #725, #732). Thin adapter from Evennia world events into the Nexus WebSocket protocol. This means the 3D portal can show what's happening in Timmy's text world. Good separation of concerns. 7. Gemini management. Gemini submitted 21 PRs today. 20 were closed, 1 merged. Timmy is enforcing quality — not rubber-stamping Gemini's output. That's the right call. Concerns 1. The 10-line rule is being ignored. The net additions across today's merged PRs: PR Net lines timmy-home #38 (Evennia bootstrap) +674 timmy-home #40 (Evennia telemetry) +426 timmy-config #85 (metrics) +265 the-nexus #725 (Evennia adapter) +286 timmy-home #27 (trajectory sanitizer) +272 timmy-home #47 (video manifest) +274 None of these are anywhere near the 10-line net limit. PR #38 alone is +674 net. The policy from the-nexus PR #525 and CONTRIBUTING.md says any PR over 10 net lines must find compensatory cuts. This isn't happening. To be fair — some of these are genuinely new infrastructure that can't be achieved in 10 lines. But the policy exists specifically to force the question: "can I use an existing tool instead of building this?" The Evennia MCP server is 5,593 chars of new code. The telemetry module is 2,240 chars. These might be justified, but the 10-line gate wasn't applied. 2. 72 issues in 20 hours is a lot of backlog. Timmy created 72 new issues across the three repos today. Some are well-scoped (the Evennia implementation chain, the Bannerlord epic). But many are speculative UI/UX tickets for the Nexus (#692-#731 range) — onboarding overlays, transcript viewers, panel replacements, portal status walls, quality-tier gating. These are exactly the kind of visual/UX work that #542 deprioritized in favor of Heartbeat/Harness/Portal. The risk is the same one the knowledge transfer warned about: agents filing faster than the architecture can absorb, and the backlog becoming noise. 3. The "offline Timmy struggling" issue (#49) needs attention. Your logs show Timmy looping against local llama.cpp — memory writes repeating 5 times for the same message, interrupts during API calls at 7-8 seconds, context at 20K/65K tokens (33%). This looks like: The local model is slow enough that interrupts fire before it can respond Memory writes are not deduplicated (same message stored 5 times) The context window is filling up with repeated memory entries This is the most important issue on the board right now. If local inference doesn't work reliably, everything built today (Evennia, trajectories, metrics) has no brain to drive it. PR #734 (Gemini — Nexus Heartbeat: Ambient World Vitality System) This is a cosmetic PR. It adds: A "NEXUS PULSE" HUD element showing a fake heartbeat frequency (sinusoidal oscillation, not connected to any real system state) Ambient light "breathing" effect CSS animations The heartbeat frequency is 1.0 + Math.sin(elapsed * 0.2) * 0.5 — pure math, not derived from Hermes state, Timmy's cognitive loop, or any real telemetry. It's exactly the kind of visual polish that #542 deprioritized. Timmy was right to close Gemini's other 20 PRs today. Recommendation: Close PR #734. The real heartbeat panel is tracked at the-nexus#698 and should be driven by actual Hermes session state, not a sine wave. Versus Other Agents — Updated Scorecard Agent Period PRs Merged Rate Scope Timmy (Codex) Mar 28 (20h) 17 16 94% All 3 repos — infra, specs, training, bridge codex-agent Mar 27 (1 day) 7 7 100% timmy-config, timmy-home — archive pipeline Gemini Mar 28 (20h) 21 1 5% the-nexus — mostly rejected Claude Mar 23-25 (3 days) 164 69 42% the-nexus — visual features Timmy on Codex backend is producing more real infrastructure per hour than any agent configuration we've seen. The Evennia pivot alone is worth more than Gemini's entire 74-PR history — it's a real architectural decision that serves all three concerns, not visual polish. The gap is discipline. Codex-agent's 7/7 were surgically scoped. Timmy's 16/17 include several +300-600 line PRs that should have been broken up or challenged against the 10-line rule. And 72 issues in a day risks recreating the Timmy-time-dashboard noise problem. Bottom Line Timmy on Codex is the most productive configuration you've run. The Evennia decision was the right call — text world over graphical game for training data quality. Fix the offline inference loop (#49), enforce the line limit, and throttle the issue creation rate. The machine works. The governor needs tightening.
Owner

Audit pass: closing unscoped/unassigned issue. Reopen with clear acceptance criteria when ready to work.

Audit pass: closing unscoped/unassigned issue. Reopen with clear acceptance criteria when ready to work.
Timmy closed this issue 2026-04-03 23:01:04 +00:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Timmy_Foundation/the-nexus#736