@odla-ai/chapter 0.58.0 → 0.58.1

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/README.md CHANGED
@@ -1850,6 +1850,15 @@ These bite silently — a smoke test won't catch them:
1850
1850
  named and whether that person joined without folding the seat status machine
1851
1851
  itself; `NamedSeatRecipientLine` renders it.
1852
1852
 
1853
+ **Availability saves land on the seeded group (0.58.1).** A group's `id` is
1854
+ its public key, not its entity id: the CLI seeds the row under a fresh entity
1855
+ id and writes `id` as an attribute, which is how every live chapter's group is
1856
+ stored. `PUT /api/admin/scheduling` keyed its write by the `id` string, so
1857
+ odla-db targeted a phantom entity and the strict schema refused it
1858
+ (`required_attribute`) — a 500 on 0.57.0, a 503 with that `cause` on 0.58.0.
1859
+ The write now goes through the `groups.id` lookup like every other group
1860
+ write, and the test double seeds the group the way the CLI does.
1861
+
1853
1862
  **Availability saves keep what the editor does not show (0.58.0).**
1854
1863
  `PUT /api/admin/scheduling` now merges the fields it receives onto the
1855
1864
  stored config before validating, so an editor that sends only hours, days,
@@ -11149,7 +11149,7 @@ var handleAdminScheduling = async (req, url, env, ctx) => {
11149
11149
  const checked = validateScheduling({ ...stored, ...body });
11150
11150
  if (!checked.ok) return json({ error: "invalid scheduling config", errors: checked.errors }, 400);
11151
11151
  try {
11152
- await db.transact([{ t: "update", ns: "groups", id: String(group.id), attrs: { schedulingJson: checked.value } }]);
11152
+ await db.transact([{ t: "update", ns: "groups", id: { ns: "groups", attr: "id", value: String(group.id) }, attrs: { schedulingJson: checked.value } }]);
11153
11153
  } catch (error) {
11154
11154
  const code = error.code;
11155
11155
  console.error("admin_scheduling_write_failed", { code: typeof code === "string" ? code : "unknown" });