You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Aug 12 mass-REVOKE (task #586, ~63+ nova tables, 5 other agents still broken) was a two-defect compound failure, root-caused by read-only forensics on 2026-08-13:
Generator defect:pgschema dump --user nova computes privileges as a diff against pg_default_acl treated as a universal baseline and skips the table owner's own ACL entry. Result: schema.sql contains 94 spurious REVOKE <default privs> FROM <owner> statements covering ALL 70 nova-owned tables (present since 995279c, 2026-05-07). A fresh dump today — with nova's live ACL fully restored — still emits all 94. Bonus: duplicate contradictory PRIVILEGE sections (e.g. agent_domains FROM newhart emitted twice).
Dormant Jul 10–Aug 11 (apply never ran). SE run #643's production deploy (~16:44 UTC Aug 12, nova-mind @ e202692 after the agent_chat extraction created real schema drift) finally ran apply → reconciliation → full REVOKE storm, silently.
Current live damage (verified 2026-08-13 00:30 UTC)
scout: zero DML on 8 research_* tables
athena: zero DML on 6 library_* tables
iris: zero DML on artwork, music_analysis, music_library — Daily Art/Music pipelines fail on next write
coder: zero DML on git_issue_queue
newhart: degraded on 10 owned tables (functions partially via role membership)
Next deploy with any non-privilege schema diff replays the storm — re-breaking all owners AND reverting the #589 fix and hermes's social_interactions grant. The pg-notify listener re-dumps schema.sql on DDL changes, so hand-editing the file is futile — the generator regenerates the artifact.
Recommended remediation
Immediate (Newhart/Graybeard): restore owner DML for scout(8)/athena(6)/iris(3)/coder(1)/newhart(10)
Summary
The Aug 12 mass-REVOKE (task #586, ~63+ nova tables, 5 other agents still broken) was a two-defect compound failure, root-caused by read-only forensics on 2026-08-13:
pgschema dump --user novacomputes privileges as a diff againstpg_default_acltreated as a universal baseline and skips the table owner's own ACL entry. Result: schema.sql contains 94 spuriousREVOKE <default privs> FROM <owner>statements covering ALL 70 nova-owned tables (present since995279c, 2026-05-07). A fresh dump today — with nova's live ACL fully restored — still emits all 94. Bonus: duplicate contradictory PRIVILEGE sections (e.g. agent_domains FROM newhart emitted twice).70642e3, PR D100 refinements + grant reconciliation + CTE alias fix (#444, #452, #453) #455) greps every^GRANT|^REVOKEfrom schema.sql and pipes them into psql as superuser with output muted (>/dev/null 2>&1). pgschema apply also executes the REVOKE-half of privilege steps, so there are two overlapping paths executing the same spurious statements.Trigger
Dormant Jul 10–Aug 11 (apply never ran). SE run #643's production deploy (~16:44 UTC Aug 12, nova-mind @
e202692after the agent_chat extraction created real schema drift) finally ran apply → reconciliation → full REVOKE storm, silently.Current live damage (verified 2026-08-13 00:30 UTC)
Recurrence: certain
Next deploy with any non-privilege schema diff replays the storm — re-breaking all owners AND reverting the #589 fix and hermes's social_interactions grant. The pg-notify listener re-dumps schema.sql on DDL changes, so hand-editing the file is futile — the generator regenerates the artifact.
Recommended remediation
REVOKE ... FROM <table-owner>lines + dedupe duplicate PRIVILEGE sections; file upstream pgschema bugRelated