@abloatai/ablo 0.54.0 → 0.55.0
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/CHANGELOG.md +60 -0
- package/docs/deployment.md +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,65 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.55.0
|
|
4
|
+
|
|
5
|
+
### `ablo doctor` says whether the writes reached anyone
|
|
6
|
+
|
|
7
|
+
Every other check asks whether something is configured. This one asks what
|
|
8
|
+
happened to the last hour of changes, which is the question the rest can all be
|
|
9
|
+
green through: a commit confirms, the row appears in your database, and no
|
|
10
|
+
subscriber is ever told.
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
✓ delivery 41 changes in the last hour, all deliverable
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
and when they did not:
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
✗ delivery 3 of 41 changes in the last hour reached nobody (e.g. reports/rep_8c2)
|
|
20
|
+
→ run `ablo check`. Rows written to Postgres outside Ablo carry no tenancy value, so nothing can route the change.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
A change Ablo cannot route is excluded from delivery and counted at the moment
|
|
24
|
+
it happens, so this is the engine's own record rather than something inferred
|
|
25
|
+
afterwards. When a change is undeliverable the report names one model and row,
|
|
26
|
+
because that is what turns "realtime is broken" into something you can open.
|
|
27
|
+
|
|
28
|
+
A server too old to answer the question reports the check as not determined
|
|
29
|
+
rather than as healthy. That distinction is the point of the check: folding an
|
|
30
|
+
unanswered question into a pass would report health the plane never claimed.
|
|
31
|
+
|
|
32
|
+
### `ablo check` counts rows the sync layer cannot see
|
|
33
|
+
|
|
34
|
+
A model having a tenancy column was treated as the whole question. Ablo stamps
|
|
35
|
+
that value on the writes it makes, but a seed, a migration, or a backfill that
|
|
36
|
+
inserts straight into Postgres does not, and a row without it can never be routed
|
|
37
|
+
to anyone: it lands, it is queryable in Postgres, and the sync layer cannot see
|
|
38
|
+
it.
|
|
39
|
+
|
|
40
|
+
Those rows are counted now, so a report reading "23 models, 23 ok" over a table
|
|
41
|
+
full of them is no longer possible. The count stops at a cap, because the answer
|
|
42
|
+
that changes what you do next is whether there are any, and an uncounted scan of
|
|
43
|
+
a large table is not something a command you run on a whim should cost.
|
|
44
|
+
|
|
45
|
+
### `GET /v1/logs/delivery`
|
|
46
|
+
|
|
47
|
+
The endpoint behind the check, for building your own monitoring:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
{ "object": "log_delivery", "window_seconds": 3600,
|
|
51
|
+
"recorded": 41, "unroutable": 3,
|
|
52
|
+
"sample": { "model": "reports", "id": "rep_8c2", "at": "2026-08-19T09:12:04Z" } }
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Counts and at most one sample, never row data. The window it counted is in the
|
|
56
|
+
response, so nothing has to assume one.
|
|
57
|
+
|
|
58
|
+
### Removed
|
|
59
|
+
|
|
60
|
+
`CapabilityExchangeResponse` is removed, as 0.54.0 announced. Use
|
|
61
|
+
`CapabilityMintResponse`, which it has resolved to throughout.
|
|
62
|
+
|
|
3
63
|
## 0.54.0
|
|
4
64
|
|
|
5
65
|
### A scoped session is scoped everywhere it is read
|
package/docs/deployment.md
CHANGED
|
@@ -25,7 +25,7 @@ ABLO_API_KEY=sk_… npx ablo status
|
|
|
25
25
|
• fulfilments typename=fulfilments
|
|
26
26
|
• reviews typename=reviews
|
|
27
27
|
|
|
28
|
-
✓ write infrastructure is ready
|
|
28
|
+
✓ write infrastructure is ready. Your database constraints and row-level policies still apply.
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
`status` asks the routing authority rather than sampling a read, because reads
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abloatai/ablo",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.55.0",
|
|
4
4
|
"description": "The public Ablo SDK for coordinated reads, commits, claims, observation, and reactive applications.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -137,8 +137,8 @@
|
|
|
137
137
|
"directory": "packages/ablo"
|
|
138
138
|
},
|
|
139
139
|
"dependencies": {
|
|
140
|
-
"@abloatai/humans": "^0.
|
|
141
|
-
"@abloatai/transaction": "^0.
|
|
140
|
+
"@abloatai/humans": "^0.55.0",
|
|
141
|
+
"@abloatai/transaction": "^0.55.0",
|
|
142
142
|
"zod": "^4.4.3"
|
|
143
143
|
},
|
|
144
144
|
"peerDependencies": {
|