rhygpu.devAll entries
- 003Walking 9,209 Pixels to Prove the ExitBetween DawnsThe procedural district rewrite replaced the old base, proved real gateway travel, closed the M1 starting gaps, and survived a belated commit audit.→
- 002The Backend Was Not the GameBetween DawnsA v0.3 audit found unusually faithful simulation code, disconnected multiplayer, dead systems, and almost no playable survival game at the surface.→
- 001Deleting the First GameBetween DawnsHow Between Dawns discarded a browser prototype, became a native Godot project, and learned to separate a playable foundation from a finished system.→
- 000The Game I Was Looking For Did Not ExistBetween DawnsHow the search for a better Dead Town became Between Dawns: a shared survival world designed around authority, territory, and the next sunrise.→
- 025Pulse Swallowed the ClockOmniPlannerPulse v4.2 expanded from alarms into a five-tab clock and focus suite with shared Pomodoro state and selectable alarm audio. Its UI breadth was real, but countdown and stopwatch lifecycles remained renderer-bound rather than joining Electron's persistent scheduler.→
- 024Dismissing an Alarm Became WorkOmniPlannerOmniPlanner v4.1 added custom weekly alarms, three interactive dismissal missions, synthesized fade-in chimes, and Smart Snooze calendar shifts. The integration was ambitious, but pausing could erase a recurring alarm and snoozing stripped the mission from the next ring.→
- 023The Background Process Was Not a TrayOmniPlannerA direct Windows smoke test exposed an invisible tray, no usable alarm-time control, and an exit path that bypassed confirmation. The repair made those paths testable, but the surviving record does not prove that the second smoke test passed.→
- 022A New Week Was Not Allowed to Inherit EverythingOmniPlannerv4 repaired six Dashboard mutations that used the wrong week key, then added a once-per-week carry-forward decision for unfinished goal-linked tasks without abandoning OmniPlanner's week-isolation rule.→
- site-001Turning the Devlog Archive into a Portfolio Systemrhygpu.devHow rhygpu.dev moved from a Mnemosyne-heavy devlog archive into a portfolio system with project pages, proof media, profile pages, and cleaner reader paths.→
- 021Closing the Window Could Not Kill the AlarmOmniPlannerOmniPlanner v4 replaced Electron's no-op notification adapter with persisted main-process timers, wake recovery, a system tray, close-to-tray behavior, and opt-in launch at login — finally allowing reminders to outlive the renderer window.→
- 020The Pomodoro Chimed, but the Week Stayed EmptyOmniPlannerv3.2 added a focus timer, morning briefing, event checklists, and plan-vs-actual overlays, but its new Dashboard mutations addressed weeks by a plain Monday date instead of OmniPlanner's prefixed storage key, so important actions could silently fail to persist.→
- 019Rich Email Was Not the Same as Safe EmailOmniPlannerOmniPlanner's inbox moved from plain IMAP body extraction to mailparser-backed text and HTML parts, then rendered rich messages inside a sandboxed srcDoc iframe with an explicit plaintext fallback — while leaving remote-content and sanitization policy unfinished.→
- 018The Local Model Was Not Part of the RepositoryOmniPlannerOmniPlanner v3 replaced Electron's localStorage backend with per-key files, added lifecycle control for local llamafile servers, and exposed provider usage metrics — after an aborted model add left 5.8 GB of unreachable Git objects.→
- 000Building the Labrhygpu.devHow rhygpu.dev went from a single imported homepage mockup to a full site: one design system, typed content, and a devlog engine that documents itself.→
- 017The Dashboard Arrived Before It Could RenderOmniPlannerOmniPlanner replaced its weekly-grid entry point with a today dashboard, actual-event logging, Pulse alarms, and plan-vs-actual review — but the large integration passed Vite while failing TypeScript and crashing at render until a direct July 2 repair.→
- 010Prompt Cleanup V2MnemosyneHow Mnemosyne moved from adding more prompt rules to cleaning the narrator brief, preserving character agency, and separating player paper UI from terminal dev machinery.→
- 009Starting Fresh Without Erasing the SoulMnemosyneFresh scenario state, stale world cleanup, and the first reset boundary.→
- 008Making the Session InspectableMnemosyneVisible chat export, payload history, and the first real state diagnosis.→
- 007Making Bad Outputs RecoverableMnemosyneUX comfort, regenerate/fix response, and the road to real branching.→
- 006Opening the Black BoxMnemosyneLLM Payload Inspector, Latest Exchange, and the tail excerpt bug.→
- 005Keeping the Scene From ReplayingMnemosyneImmediate continuity, attribution guard, and the first context priority stack.→
- 004Feeding the Model a Session PacketMnemosyneContext Compiler V2, clean recent chat, and state injection for provider payloads.→
- 003Hiding the MachineMnemosyneMock provider, encoded hidden state, real model testing, and the first output-side Mnemosyne loop.→
- 002Splitting Memory in TwoMnemosyneHow Mnemosyne split character memory from world continuity.→
- 001Turning the Code Block Into a Soul UpdateMnemosyneHow the crude code block started becoming an update packet for a human-like Soul system.→
- 000Before the RepositoryMnemosyneThe origin of Mnemosyne, before the repo, the roadmap, and the app.→
- 016The Process Was Running, but the Planner Was HiddenOmniPlannerA broken Windows launcher, an unreliable shortcut, forced elevation, stale Electron processes, and a hidden window produced a convincing false positive: every technical check passed while the planner still appeared not to launch.→
- 015The License Named the Wrong ProjectOmniPlannerBefore public repository work, OmniPlanner's working tree and reachable history were scanned for common secret patterns, then AGPL-3.0-or-later was added — and a copied Mnemosyne notice was caught immediately after push.→
- 014OAuth Worked on a BranchOmniPlannerA feature branch hardened IMAP timeouts, added Gmail and Outlook OAuth with PKCE, and implemented one-refresh/one-retry token recovery while preserving app-password accounts. It remained unmerged.→
- 013The First Release Gate Had 138 TestsOmniPlannerOmniPlanner normalized IDs through a migration, extracted its calendar editor, enforced TypeScript, added 138 focused tests, and replaced ambiguous email failures with stable codes and operation IDs.→
- 012Nothing Writes Until ConfirmOmniPlannerOmniPlanner taught a blank workspace how to explain itself, disabled actions that could not run, and added read-only previews before backup restore or email-to-calendar writes.→
- 011The Planner Outgrew ElectronOmniPlannerOmniPlanner moved Electron calls behind platform services, then reused the core in an IndexedDB PWA and Capacitor shell with native credentials, local reminders, storage health, and honest mobile UX.→
- 010A Goal Had Tasks but No TimeOmniPlannerGoal-linked todos could prove intention without reserving any time. Calendar events gained execution semantics, deterministic focus suggestions, and derived weekly and four-week coverage analytics.→
- 009The Password Left localStorageOmniPlannerElectron safeStorage moved API keys and IMAP passwords out of planner data, but the first migration could discard credentials when encryption was unavailable. Security improved while its failure paths became visible.→
- 008A Goal Stopped Being a Text BoxOmniPlannerOmniPlanner replaced long-range goal text blobs with migrated GoalItem records, then linked weekly work in one direction through Todo.parentGoalId so progress could be derived without duplicated state.→
- 007The Network Fix Was Too PowerfulOmniPlannerAI and email connections failed inside Electron, native dialogs froze input, and the first repair elevated the whole app while proxying network traffic through the main process — effective, but broader than the product should require.→
- 006An Email Became a Time BlockOmniPlannerReal IMAP retrieval replaced the placeholder inbox, AI could turn a message into a calendar event, and an ICS importer merged external calendars into OmniPlanner's week-isolated model.→
- 005Deleting a Habit Should Not Delete the PastOmniPlannerHabit deletion first affected one week, then every week, then only future weeks — until inheritance resurrected it again. The fix required identity, history, and tombstones to agree.→
- 004Five Checkmarks, Two FlamesOmniPlannerA habit completed five times could display a streak of two. Fixing the label led into a broader adaptability pass: wider planning columns, zoom controls, and local or provider-neutral AI.→
- 003The App Was Still a FolderOmniPlannerOmniPlanner could build as an Electron app, but opening it still required repository knowledge. Double-click launchers and a shortcut creator turned the development folder into something re-enterable.→
- 002The Last Week of February DisappearedOmniPlannerA seven-day iterator skipped the final partial week, exposing a deeper problem: OmniPlanner's monthly calendar could display planning data but could not reliably create or edit it.→
- 001The Web Planner Became a Desktop AppOmniPlannerOmniPlanner's first repository captured an already substantial weekly planner, then replaced its browser assumptions with a local Electron shell, provider-neutral AI, and reproducible desktop builds.→
- 000Before OmniPlanner Had a RepositoryOmniPlannerOmniPlanner began as one sentence joining personal planning, iCalendar, todos, self-improvement goals, and email — followed immediately by a request to inspect what was already broken.→