diff --git a/worklog.md b/worklog.md index e9e54fd..dd3e3fc 100755 --- a/worklog.md +++ b/worklog.md @@ -2530,3 +2530,29 @@ BROWSER E2E (agent-browser, ALL PASS): Stage Summary: - v7.15.2 shipped: the footer's right-hand group carries the project's Facebook page link (facebook.com/openvisengine, icon-only, new tab) beside the version stamp; the light/dark tick switch moved from the header to the Settings tab's Appearance section (first row, above the base-theme cards) with identical mechanics -- checked = white theme, unchecked = the visitor's stored dark base, both persist. Browser E2E green across link, relocation, flip behavior, stored-base tracking, What's New, responsiveness and the sticky footer. + +--- +Task ID: 46 +Agent: main (Z.ai Code) +Task: v7.15.2 ops restore (user report): "Why is the Directory Tab showing 'OVE-Directory is not configured on this server.' We have set this up in a previous version, did it get corrupted or lost?" + credentials cards supplied (Google Drive: API Reference + Connection Card). + +Diagnosis (nothing was corrupted in the repo -- the SANDBOX was reprovisioned): +- The directory config lives in .env (OVE_DIRECTORY_URL + OVE_DIRECTORY_API_KEY), which has been deliberately UNTRACKED (gitignored) since the GitLab sync. The sandbox disk was reset when this session booted (05:11): the bootstrap rewrote .env to just DATABASE_URL, and the previous untracked .env with the key was lost with the old disk. Same wipe took the untracked db/ (custom.db) and secrets/ (house-account music-service cookies). +- The app kept working after the wipe because the running next-server held OPEN file handles to the deleted db inode -- every API call queried a file that no longer existed on disk. Any restart would have broken the database too. +- The directory VPS itself was never down: upstream GET /status answered 200 (service ok, uptime ~25 h, 2 scripts stored). Only the local proxy config was missing. + +Recovery: +- .env restored from the credentials cards: OVE_DIRECTORY_URL=https://s3374dir.openvisengine.com + OVE_DIRECTORY_API_KEY (from the card; value intentionally not recorded here -- .env stays untracked/gitignored, never in the repo). +- Database RECOVERED from the deleted inode: cat /proc//fd/ > db/custom.db off the running next-server's handles (single-file journal mode, no WAL sidecars) -- 307,200 bytes, SQLite header valid, PRAGMA integrity_check ok, contents intact: 106 presets, 8 folders, 1 settings row. The recovered snapshot now lives on disk, so restarts are safe. +- secrets/ house-account cookies: NOT recoverable (no open handles; they were files read per-request). Graceful degradation as designed -- the house cookie is only a FALLBACK for stream-a-link; everything else works. Needs the operator's cookie files restored by hand if the house account is wanted again. +- Dev server restarted via the platform's .zscripts/dev.sh (setsid-detached so the tree survives command boundaries): first manual attempt died with a corrupted Turbopack cache (the platform's git checkouts poisoned .next task data -- cleared with rm -rf .next) and a second attempt died with the tool session's teardown (pipe children not session-detached). Clean dev.sh start: health check passed. dev.pid refreshed. + +BROWSER E2E (agent-browser, ALL PASS): +- GET /api/presets: full 106-preset library from the RECOVERED on-disk db (fresh process, not the deleted inode). +- GET /api/ove-directory/status: upstream envelope verbatim (service ok, 2 scripts, uptime ~25 h) -- NOT_CONFIGURED is gone. +- GET /api/ove-directory/scripts: authenticated proxy returns both community scripts ("Spectrum Bars" avg 3.3 / 4 votes, "Thick Spectrum Bars" avg 5.0 / 2 votes). +- Directory tab in the browser: active, no configuration error, both script names visible. +- Console: 0 errors / 0 warnings; canvas renders; footer version 7.15.2. Test browser closed. + +Stage Summary: +- Directory tab restored: the sandbox reprovision (not corruption) had wiped the untracked .env holding OVE_DIRECTORY_URL/OVE_DIRECTORY_API_KEY; credentials re-entered from the project's cards, the deleted custom.db was recovered live from the running process's file handles before restart (106 presets/folders/settings intact), Turbopack cache cleared after the platform's git-checkout poisoning, dev server restarted via dev.sh. House-account cookies (secrets/) remain lost by design's graceful fallback -- flagged to the operator for manual restore if wanted.