Releases: kibertoad/cat-factory
Release list
@cat-factory/workspaces@0.28.52
Patch Changes
- Updated dependencies [3b11b10]
- @cat-factory/contracts@0.343.0
- @cat-factory/kernel@0.332.0
@cat-factory/workspaces@0.28.51
Patch Changes
- Updated dependencies [9dfd40b]
- @cat-factory/contracts@0.342.0
- @cat-factory/kernel@0.331.0
@cat-factory/workspaces@0.28.50
Patch Changes
- Updated dependencies [1c79070]
- @cat-factory/contracts@0.341.0
- @cat-factory/kernel@0.330.0
@cat-factory/workspaces@0.28.49
Patch Changes
- Updated dependencies [8b015a3]
- @cat-factory/contracts@0.340.0
- @cat-factory/kernel@0.329.0
@cat-factory/workspaces@0.28.48
Patch Changes
- Updated dependencies [ec0aba1]
- @cat-factory/contracts@0.339.0
- @cat-factory/kernel@0.328.0
@cat-factory/workspaces@0.28.47
Patch Changes
- Updated dependencies [436f373]
- @cat-factory/contracts@0.338.0
- @cat-factory/kernel@0.327.0
@cat-factory/workspaces@0.28.46
Patch Changes
- Updated dependencies [a745ee2]
- @cat-factory/contracts@0.337.0
- @cat-factory/kernel@0.326.0
@cat-factory/worker@0.208.2
Patch Changes
- Updated dependencies [3b11b10]
- @cat-factory/contracts@0.343.0
- @cat-factory/kernel@0.332.0
- @cat-factory/agents@0.153.1
- @cat-factory/binary-generators@0.3.30
- @cat-factory/consensus@0.17.30
- @cat-factory/eks@0.1.369
- @cat-factory/gates@0.11.30
- @cat-factory/gitlab@0.22.30
- @cat-factory/integrations@0.171.2
- @cat-factory/observability-otel@0.23.23
- @cat-factory/orchestration@0.298.1
- @cat-factory/prompt-fragments@1.1.26
- @cat-factory/server@0.311.3
- @cat-factory/spend@0.17.8
- @cat-factory/caching@0.20.64
- @cat-factory/observability-langfuse@0.11.30
- @cat-factory/provider-cloudflare@0.7.522
@cat-factory/worker@0.208.1
Patch Changes
- Updated dependencies [9dfd40b]
- @cat-factory/contracts@0.342.0
- @cat-factory/kernel@0.331.0
- @cat-factory/agents@0.153.0
- @cat-factory/orchestration@0.298.0
- @cat-factory/binary-generators@0.3.29
- @cat-factory/consensus@0.17.29
- @cat-factory/eks@0.1.368
- @cat-factory/gates@0.11.29
- @cat-factory/gitlab@0.22.29
- @cat-factory/integrations@0.171.1
- @cat-factory/observability-otel@0.23.22
- @cat-factory/prompt-fragments@1.1.25
- @cat-factory/server@0.311.2
- @cat-factory/spend@0.17.7
- @cat-factory/caching@0.20.63
- @cat-factory/observability-langfuse@0.11.29
- @cat-factory/provider-cloudflare@0.7.521
@cat-factory/worker@0.208.0
Minor Changes
-
1c79070: An environment provider can state a balancer by NAME, and the platform resolves it when it dials
A route candidate had to be an IP literal, on the reasoning that "a name would just be the lookup
that already failed". That is true of the environment's own hostname and false of the name the
deployments this feature exists for actually have: a per-PR environment whose record lives in an
internal view is fronted by load balancers that are ordinary public names, and those names resolve
from anywhere. A provider had to resolve them itself and state the result, which pins a snapshot of
a set that rotates as the balancer scales, forces DNS into a pure response mapping, and asks every
such provider to get bounded resolution and partial failure right on its own.A candidate may now state
hostinstead ofaddress, and a manifest declares one through the new
response.hostsPathbesideaddressesPath. The platform resolves each stated name at the moment
it dials, expands it in place into the addresses it answered with (so the provider's preference
order still means what it says), and grades every one of those addresses by exactly the rule that
governs a stated address, so an address a bridge may not name is still refused and the destination
a container is bridged to is still a literal the platform itself proved. The proof publishes the
address that carried plus the name it came from, and the stored candidate stays the stable identity
rather than today's answer, which is also what lets a proof survive the balancer changing addresses.Which kind a candidate names is stated, never inferred from the value. The address rule refuses
2130706433precisely because it is loopback in a disguise, and a resolver handed the same string
answers loopback without complaint, so a bare string means an address underaddressesPathand a
name underhostsPath.Every way a name fails to become an address is recorded as its own attempt rather than dropped: a
name that resolves nowhere rules that candidate out and the proof moves to the next, a lookup that
failed (or a resolver that rejected, which the port forbids and nothing can enforce) carries the
resolver's own words, and a deployment with nothing wired to resolve records the new
resolver_unavailablereason, which settles nothing either way and can never fail a frame. Both
facades wire a resolver (Node throughdns.lookup, the Worker over DNS-over-HTTPS, which is the
view its own outbound connections already resolve through).The platform also says when it stopped reading: the plan bounds how many names it looks up and how
many addresses it dials, and a list longer than that now ends in onenot_attemptedattempt naming
how many were passed over. That is a second new reason, and it leaves the route unruled-out for the
same reason the first does. A verdict that nothing reaches an environment may not be graded against
candidates nobody looked at, and the deployer fails a frame on that verdict.Two proofs that used to stand forever are now re-taken by the status poll: one recording that this
deployment could not resolve a name (once one is wired), and areachedproof whose address was
RESOLVED rather than stated. The second is the price of surviving a balancer rescale, which is what
viaHostis for: the name stays good while the literal beside it, the one a container host bridge
is built from, can be released by the same scale event.Internal breaks, no migration:
EnvironmentAddress/environmentAddressSchemaare renamed to
EnvironmentRouteCandidate/environmentRouteCandidateSchemawithaddressnow optional;
planRouteProbestakes an options object in place of its bare timeout argument;
RouteProbeTarget'srefusedmember is generalized toundialledandrecordRefusedAttemptto
recordUndialledAttempt; andreduceRouteProoftakes the carrying target rather than its address.
A stored candidate or proof written before this parses and behaves exactly as it did.
Patch Changes
- Updated dependencies [1c79070]
- @cat-factory/contracts@0.341.0
- @cat-factory/kernel@0.330.0
- @cat-factory/integrations@0.171.0
- @cat-factory/agents@0.152.0
- @cat-factory/orchestration@0.297.0
- @cat-factory/binary-generators@0.3.28
- @cat-factory/consensus@0.17.28
- @cat-factory/eks@0.1.367
- @cat-factory/gates@0.11.28
- @cat-factory/gitlab@0.22.28
- @cat-factory/observability-otel@0.23.21
- @cat-factory/prompt-fragments@1.1.24
- @cat-factory/server@0.311.1
- @cat-factory/spend@0.17.6
- @cat-factory/caching@0.20.62
- @cat-factory/observability-langfuse@0.11.28
- @cat-factory/provider-cloudflare@0.7.520