unoverse 0.1.78 → 0.1.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/unoverse.mjs CHANGED
@@ -114,7 +114,12 @@ switch (cmd) {
114
114
  console.log(`\n ✓ unoverse is now ${v || "up to date"}`);
115
115
  spawnSync("unoverse", ["_postupdate"], { stdio: "inherit" });
116
116
  } else {
117
- console.log(`\n ✗ global install failed (permissions?). Try:\n\n sudo npm install -g unoverse@latest\n npx unoverse@latest # or skip the global install entirely\n`);
117
+ // DO NOT GUESS THE CAUSE. This used to say "(permissions?)" whatever happened, so a
118
+ // registry that had not finished propagating a release — npm resolves `latest` to a
119
+ // version whose tarball is not servable yet, ETARGET — was reported as a permissions
120
+ // problem, sending people to sudo for something sudo cannot fix. npm's own error is
121
+ // already on screen above; name the two real causes and let it speak for itself.
122
+ console.log(`\n ✗ Update failed. npm's reason is above.\n\n "No matching version" — a release is still propagating. Wait a minute and re-run.\n "EACCES" / permission denied — sudo npm install -g unoverse@latest\n\n Or skip the global install entirely: npx unoverse@latest\n`);
118
123
  }
119
124
  process.exit(r.status ?? 0);
120
125
  }
@@ -246,6 +246,21 @@ resource "digitalocean_database_user" "universe" {
246
246
  count = local.pg_managed ? 1 : 0
247
247
  cluster_id = local.pg_cluster_id
248
248
  name = "universe"
249
+
250
+ # NEVER UPDATE THIS USER IN PLACE. Provider 2.96 grew a `settings` block (Kafka and
251
+ # OpenSearch ACLs) and an update path that fires whenever it sees any diff on the
252
+ # resource — including one the provider invented itself on refresh. For a Postgres user,
253
+ # which has no settings, that path PUTs an empty body and DigitalOcean rejects it:
254
+ #
255
+ # 400 request is missing the following required fields: user_settings
256
+ #
257
+ # It killed a deploy mid-apply, after the firewall had already changed, on a resource
258
+ # declaring nothing but a name. We create this user once and never modify it — name and
259
+ # cluster_id both force replacement anyway — so there is no update we want, and the
260
+ # safest number of update paths to leave available is zero.
261
+ lifecycle {
262
+ ignore_changes = all
263
+ }
249
264
  }
250
265
 
251
266
  # Transaction-mode pool: ~hundreds of client connections over `pgbouncer` backend
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unoverse",
3
- "version": "0.1.78",
3
+ "version": "0.1.79",
4
4
  "description": "The Unoverse front door — create a Studio project, a universe, or a client app, and launch Studio.",
5
5
  "license": "SEE LICENSE IN README.md",
6
6
  "type": "module",