Skip to content

Feat/embedding api spec - #678

Open
iheitlager wants to merge 3 commits into
Lab271:mainfrom
jverhoeks:feat/embedding-api-spec
Open

Feat/embedding api spec#678
iheitlager wants to merge 3 commits into
Lab271:mainfrom
jverhoeks:feat/embedding-api-spec

Conversation

@iheitlager

Copy link
Copy Markdown
Member

Proposal for a public api to support applications to link to sqlite-rs

…(013/Req-7)

010 gains Requirement 8: a write MUST NOT succeed while leaving an index it
could not read unmaintained. Measured at 0.18.5 against stock sqlite3 3.51.0 --
inserting into a stock-created composite-PK table leaves rows out of
sqlite_autoindex_*, after which the oracle undercounts and integrity_check
reports rows missing, while the write returns rc=0. Names both acceptable
fixes (recover the autoindex column list from the declared constraint, or
refuse the write) and scopes autoindex *creation* out to V3/V7.

The embedding-api spec gains Requirement 7: statements must yield rows
incrementally. It also upgrades the composite-PK prerequisite from inferred to
measured, flagging it as the highest-priority item in or around that spec --
it is silent corruption of a valid SQLite file, not an ergonomic gap, and its
Req 6 byte-identity scenario cannot pass while it stands.

That spec is numbered 012 as of this commit and is renumbered to 013 by the
next one, after main landed its own spec 012.

Refs: 010/Req-8, 013/Req-7
Main landed its own spec 012 (`012-query-constraints`) and its own ADR-0033
(constant propagation / OR-to-IN) while this branch was open, so both numbers
collided on rebase. The newcomer moves:

- `.openspec/specs/012-embedding-api/` -> `013-embedding-api/`, heading updated
- `adr/0033-embedding-api-owns-the-connection-driver-out-of-tree.md` -> `0034-`,
  heading updated, and its five `spec 012` prose references retargeted to 013
- `adr/index.md` gains the 0034 row, which 0ee936b omitted entirely

Renumbering ADR-0034 does not violate the immutability convention: it has
never been on main and is still `Status: Proposed`.

Also fixes four `**Implementation:**` lines in spec 013 that were already
marked `(planned)` but written in a form `tools/assurance.py:474` does not
match -- its regex only accepts `(planned)` immediately after a *single*
backticked path, so `` `a`, `b` (planned) `` scored as active and its
not-yet-written test links counted as dead. With that fixed, the dashboard is
byte-identical to main: 86 active requirements, Completeness 85/86 (99%),
Coverage 270/270 (99%), zero dead links, planned 2 -> 10.

Refs: 013/Req-1, 013/Req-7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants