Repository navigation
docs: pass the database docs to the docs standard - #67
Conversation
W5 review: FAIL at b9ef608Fresh W5 reviewer. I did not write this PR. I pushed nothing. Blocking
Checked and confirmed
Notes (non-blocking)
Could not confirmThe PostgreSQL detail in atomic mutations, compound-index prefix lookups, that |
W5 review: #67, round 2PASS+NOTES at head dd2b996 (base campaign/integration 178776a). Fresh W5 reviewer. I did not write this PR. I pushed nothing. Goal (Antony, 2026-10-30): finish the AntelopeJS docs rewrite on Round-1 blocker: fixed and true
My own tsc probe against
The new sentence "A schema defined again under the same ID replaces the earlier one" matches the TSDoc and Round-1 notes: all fixed
Notes (non-blocking)
Gates
gate-verdict: PASS+NOTES dd2b996 |
Why
Goal: finish the AntelopeJS docs rewrite. Every TypeScript example compiles against its repo's own source, hand-written version prose is gone, and the W1-W5 docs standard ships. This is the W4 pass for interface-database (outer-loop#35, decision 11 item 5). It brings
README.mdanddocs/to the Docs standard, in the shape of AntelopeJS/dmspackages/dms/docs, and turns standard mode on so CI keeps them there.Summary
package.json "antelopeJs": { "test": ..., "skills": [...], + "docs": { "standard": true } } README.md, docs/**/*.md (25 files) + frontmatter title, description, mode (body H1 moved into title) ~ sentence-case headings, no dashes, unslop + technical-writing applied ~ class listings and claims checked against src/staged-query and its TSDoc + update() overloads as on this branch (interface-database#65) - every `Schema.get(...)!` non-null assertion (17), now an `if (!schema) throw` guard - "remains unpublished ... development package version" (version prose, and false) + README badges and the query execution SVG marked illustrationNo page was split, merged, renamed or moved, and no section, table row or example was dropped. Each docs page lost only its body H1, which moved into
title. Fences are unchanged except3.results/2.write_results.md, which gains one checkedReturnTypeexample (examples 44 to 45). No screenshots, so nodocs/captures.ts.Modes: the docs index and the operations pages except atomic mutations are how-to. The query type pages, the results pages, the operations index and atomic mutations are reference.
Current contract (interface-database#65)
update()lists the updater overload first, as the source does (src/staged-query/selection.ts:40-49,104-113). A function argument givesQuery<number>when the object it builds fitsDeepPartial<T>, andneverotherwise. A partial document givesQuery<number>. A value typedanymatches the updater overload, so the call is typedneverand has no.run().ReturnType<typeof table.update>readsQuery<number>, and a new checked example showsrun()resolving to anumber. The selection, single selection, CRUD and write results pages all say this.Claims corrected against the source
Table,Stream,Datum,Query,SchemaandSchemaInstancenow matchsrc/staged-query/.atomicMutation(key, ...);inserttakesDeepPartial<T> & object;getAlltakesIndexKeys;betweenand aggregates takekeyof T & string;pluck/withoutreturnPick/Omit;lookuptakes aStream<U>and returnsOmit<T, TK> & Record<TK, ...>;defaulttakesU extends QueryValue; the missingdistinct(field: undefined)overload is listed; the stagedSchema<T, Definition>and itsget.epoch()takes notimezone; bothsplitparameters are optional; theduringandslicebounds are stated.StringFieldType | IoTsCodec, and the codec shape needs_A,_O,_I,name,is,encodeanddecode(schema.ts:41-65).IoTsCodecis not exported.CHANGELOG.md:150). The page said they were unpublished. It now says adapter support is shown by the adapter's implementation and tests. Rejected field names are those that contain.or start with$(atomic.tsvalidateField).replace()returns the number of modified documents, per its TSDoc. Added from the TSDoc: a changed schema ID leaves old data out of reach;createInstance()resolves to its ID;Schema.get()does not check its type arguments;between()excludes its upper bound; a refused duplicate stores nothing of that row;getAll()without an index matches the primary key.Heading slugs
{#id}anchors are not used. Five headings changed words, and no link in this repo, in antelope-web or in the AntelopeJS code search points at any of them:index#advanced-build-queries-without-executing-themto#build-queries-without-executing-themquery_types/stream#join---left-jointo#join-for-a-left-joinquery_types/stream#joininner---inner-jointo#joininner-for-an-inner-joinquery_types/valueproxy#eqvalue--nevalueto#eqvalue-and-nevaluequery_types/valueproxy#andvalue--orvalue--notto#andvalue-orvalue-and-notEvidence
checkDocsin standard mode, Vale 3.26.0):files=25 examples=44 failures=279.files=25 examples=45 failures=0.VALE_BINset: exit 0.pnpm run checkson b9ef608 withGITHUB_BASE_REF=campaign/integration:Checks: 8 passed, 0 failed.nuxt devinsites/interfaceswithINTERFACES_DOCS_LOCAL=database=<clone>. Every page answers 200,pages=24 links=68 anchored=1 broken=0(links resolved from each file, as the docs check does), no page renders{#, and the renamed heading ids render.AntelopeJS/tooling-configs/actions/docs@dab0aea28840981138795aca32381e7fa8ac8d1binstalled Vale (standard mode on) and printedDocs: 25 files, 77 local links, 1 compatibility tables, 45 checked examples, 0 API pages; 0 failures.The PR is not docs-only in thedocs-onlyjob's sense, because thepackage.jsonopt-in is part of it. The docs delta allows that file for this change.Round 2 (W5 r1 FAIL at b9ef608)
3.results/5.database_changes.mdlisted the staged-querySchema<T, Definition>as the root class. It now lists the rootSchema<T = any>(src/schema.ts:13-30):static list(),constructor(id, definition: SchemaDefinition), and the members it inherits from the staged class, which the page names as thestaged-queryentry'sSchema. A tsc probe against the docs project compilesnew Schema<Db>(...),Schema.list()andSchema.get<Db>(), andnew Schema<Db, SchemaDefinition>(...)fails with TS2558 (Expected 0-1 type arguments, but got 2).nullorundefined(table, single selection, table operations).instance(CROSS_INSTANCE)returns aSchemaInstance. The selection page lists the inheritedkey,default,union,castandchanges.orderBy()takes an index name, per its TSDoc.default()coversnull, per its TSDoc.1.index.mdpages link siblings with./2.table.md, and antelope-web resolves those against the folder route, so the rendered links 404 (/docs/database/table). The links are unchanged from the base and the production site shows the same 404s, so this needs an antelope-web fix.VALE_BINset exits 0, the standard lever givesfailures=0, andpnpm run checkswithGITHUB_BASE_REF=campaign/integrationgivesChecks: 8 passed, 0 failed.actions/docs@dab0aeainstalled Vale and printedDocs: 25 files, 77 local links, 1 compatibility tables, 45 checked examples, 0 API pages; 0 failures.Merge danger
Door: two-way. Docs and one package.json key. A revert restores the old pages and turns standard mode off.
Blast radius: docs. From here on, every interface-database PR that touches README.md or
docs/must pass Vale and the standard checks in CI.Attention
castsections of1.query_types/8.datum.mdand9.valueproxy.mdkeep their one-linecast<U>()examples. They document that published method, and the text says nothing checks the new type. Every other fence is cast-free.3.results/2.write_results.mdis now titled "Write results", since it covers update, replace and delete too.date.sub(date)returns seconds (no TSDoc or test states the unit), thatinsert()returns provided IDs as well as generated ones, the PostgreSQL detail in atomic mutations, compound index prefix lookups and the index performance advice. These kept their original wording.