Repository navigation
v1.1.3
npm 1.1.3 (full lockstep across all 14 @metaobjectsdev/* publish candidates), PyPI 1.1.3, NuGet 1.1.3 and Maven Central 8.1.3.
Changed
-
A report list route answers every row up to one cap, and is refused above it, in all five
ports. With nolimita servedobject.reportreturns all of its rows; one row past the
cap, or an explicitlimitabove it, is400 { "error": "report_too_large", "maxRows": N },
before any body is written. The cap is 10,000 by default and a generator option:
routesFile({ reportMaxRows })/routesFileHono(TypeScript),RoutesGenerator.ReportMaxRows
(C#), thereportMaxRowsgenerator arg (Java, Kotlin),router_generator(report_max_rows=)
(Python). This changes served output in Java, Kotlin and Python, whose report lists used to
stop at 50 rows with no limit; and in every port a report longer than the cap that used to answer
now answersreport_too_large. Entity and projection lists keep their paging. A report page
bound that is not usable (limitbelow 1, a negativeoffset, not an integer) is
400 pagination.invalid_valuein every port. Gated by the newReadingLogreport and the
cap-all-rows,cap-refusedandbad-page-boundscenarios of the api-contractreport/corpus. -
Requirements guidance: a feature commit updates its requirement. The agent context
(the authoring and verify skills and the always-on filemeta initwrites) now tells an
agent that a commit adding, changing or removing behaviour updates the ledger in the same
commit, or says why not.verifychecks that the ledger's links resolve, not that it is
current, so nothing else enforces it. -
The adoption docs recommend the strict requirements check (
--require-implementers, or
its per-port form) in the project's verify script or pre-push hook once the ledger is clean.
Fixed
-
meta verify --dbno longer reports false drift on a regex CHECK over a varchar/text
column. Postgres stores"key" ~ '^[a-z]+$'as((key)::text ~ '^[a-z]+$'::text); the
literal's::textwas already folded away but the column's was not, so a databasemigrate
had just built showed the same constraint as both added and dropped. The comparison now
drops a(col)::textcast before a regex-match operator (~,~*,!~,!~*) only when
the database column istext,varcharorbpchar; on any other column,citextincluded,
the cast changes the operator and still reads as drift, as does a changed pattern or any
other cast. Schema comparison is TypeScript-owned, so no other port
carries this comparison. -
A report list in Java, Kotlin and Python no longer silently drops rows past the 50th. A
90-day daily report showed 50 days with no error whenlimitwas omitted. C# also ignored a
limitof 0 or below on a report instead of refusing it. See the report row cap under
Changed. -
The api reference now follows a routes generator's
filteras well as itsexpose.
routesFile({ filter })androutesFileHono({ filter })mount nothing for an entity the filter
rejects, but the API pages still listed all five verbs for it. The pages now document the
routes the generators mount and nothing else, from the one resolved answer the run reads off
them (runRoutesExpose). Output with neither option is byte-identical. A routes generator
ejected before themountsRoutesmarker existed is now named in ameta genwarning when the run
writes an api reference: itsexposeandfilterare invisible to the pages until it carries
the marker (or is re-ejected withmeta eject routes --force). TypeScript only: no other port
has anexposeoption or a routes-generatorfilter, and the ports' api references document
routes from the model alone. -
C#: the two shared helpers now carry the
// <auto-generated/>marker (#460).
DecimalWire[.<Namespace>].g.csandMetaNetValidation[.<Namespace>].g.cswere the only
emitted files without it, so a runner with noGenStateDirwrote them once and then logged
refusing to overwrite hand-written fileon every later run, leaving a stale copy (and the
@precision/@scaleinput check inside it) behind. A copy already on disk has no marker, so
regenerating alone keeps refusing it: delete the existingDecimalWire*.g.csand
MetaNetValidation*.g.csfiles, then regenerate. The marker is the only change to the
helpers' text. -
The 1.1.0 entry's handler-code figure of 439 lines retired is corrected to about 460, as
measured in one adopter's pull request.