@odla-ai/chapter 0.57.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,26 @@ 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
+
1862
+ **Availability saves keep what the editor does not show (0.58.0).**
1863
+ `PUT /api/admin/scheduling` now merges the fields it receives onto the
1864
+ stored config before validating, so an editor that sends only hours, days,
1865
+ slot length, timezone, notice and window no longer resets the branded
1866
+ `summaryTemplate` to the generic default. A stored config the rules reject
1867
+ answers `409` on `GET` with the field errors (the next save repairs it), and a
1868
+ failed database write answers `503` with `code: "scheduling_write_failed"`
1869
+ and the database's own code as `cause`, never a bare 500. The default
1870
+ booking window is now 21 days (three weeks of offered times); a group row
1871
+ that already stores `windowDays` keeps it.
1872
+
1853
1873
  **Decisions after the conversation (0.57.0).** Four operations close the
1854
1874
  gaps a chapter hits once applicants are real people (BNF bugs fa96b11c,
1855
1875
  f7bc92ee, 38000934, c3c1d338, 79590edc):
package/dist/index.cjs CHANGED
@@ -1379,7 +1379,7 @@ var DEFAULT_SCHEDULING = {
1379
1379
  endHour: 17,
1380
1380
  timezone: "America/Los_Angeles",
1381
1381
  minNoticeHours: 24,
1382
- windowDays: 14
1382
+ windowDays: 21
1383
1383
  };
1384
1384
  function defaultEmailTemplates(name) {
1385
1385
  const sign = `
@@ -9157,7 +9157,7 @@ var SCHEDULING_DEFAULTS = {
9157
9157
  endHour: 17,
9158
9158
  timezone: "America/Los_Angeles",
9159
9159
  minNoticeHours: 24,
9160
- windowDays: 14,
9160
+ windowDays: 21,
9161
9161
  summaryTemplate: "Introduction call with {{firstName}} {{lastName}}"
9162
9162
  };
9163
9163
  function isValidTimeZone(tz) {