# oq-api 0.1: What’s New

Changes relevant to downstream consumers of the oq-api 0.1.x line. Newest releases appear first.

## 0.1.9 — Copula -u is exact on angutaavoq

2026-09-15 · fix · deconstruction

N_u_Vb after an alveolar schwa-stem fuses ə+u to aa (AITWG Def 2.5 / the entry’s own angutaavoq). Vowel-final hosts stay exact by truncative no-op (illuuvoq). Other hosts remain approximate — q-/k-final copula sandhi is still an honesty gap. N_u_Vb stays in OUT_OF_SCOPE_IDS; hasApproximateMorpheme classifies by host.

[oq-api#138](https://github.com/jandahl/oq-api/issues/138)

## 0.1.9 — Headline prefers the dictionary reading of a headword span

2026-09-15 · fix · deconstruction

presentAnalysis headlines from the winning lexical span, not from etymology. A hidden exact dict_* root still supplies the headline (illu → house). A citation-backed prefix of two or more extra morphemes collapses to that headword’s gloss so later affixes compose on the reading (administration + great + plural), not on write + place + use + act. One-affix pedagogy and worked-example gold stay composed. #138 slice 5, adjacent to #121.

[oq-api#138](https://github.com/jandahl/oq-api/issues/138), [oq-api#121](https://github.com/jandahl/oq-api/issues/121)

## 0.1.9 — Preserve noun meanings before enclitics

2026-09-14 · fix · glosses, deconstruction

Bilingual gloss composition now treats a zero-form noun ending as semantically transparent, so following enclitics retain the lexical noun in outputs such as ‘this coming summer’ and ‘O person!’. Transitive headlines also avoid duplicated generic object placeholders and omit internal clause-linking notes. Misiliineq now loads its default, latest, and revision data from grammarian.oq.gl after the legacy GitHub Pages publication was disabled.

## 0.1.9 — Deconstruct reports why a long word stopped, without raising the depth cap

2026-09-14 · fix · deconstruction

analyzeWord now returns budget { maxMorphemes, maxNodes, beamWidth, hitMorphemeCap, hitNodeCap, hitBeamCap, stopReason }. A miss at the default depth of 8 is no longer indistinguishable from a catalog gap: stopReason max_morphemes means open prefixes were refused at the cap, max_nodes means the eval budget ran out, frontier_empty means the catalog had no continuation. Default maxMorphemes stays 8; callers raise opts.maxMorphemes up to MAX_MORPHEMES (16) when the audit says so. Misiliineq surfaces the note on an empty result.

[oq-api#138](https://github.com/jandahl/oq-api/issues/138)

## 0.1.9 — Drop affixes that overwrite a vowel then get truncated away

2026-09-14 · fix · deconstruction

Deconstruct no longer returns analyses whose mid-chain affix only copies the host-final vowel and then loses its own consonant to the next truncative join. That was how dummy pi + -iq/-it + -vik rebuilt the unattested string “piivik” as the exclamation “Really depriving someone of thing!”. Real uses such as sikuerpoq and sikuippoq still parse, because -iq/-it leave distinctive letters in the surface. The attested dummy-pi neighbor is pivik (“true; real”).

## 0.1.9 — Vacuous intercalation is any stuffed VC, not just -iq/-it

2026-09-14 · fix · deconstruction

Deconstruct drops any mid-chain VC affix whose leftover is only a copy of the host vowel after the next deleting join eats its consonant — not an -iq/-it denylist. The same gate now uses the incoming join rule (truncative, aq-truncative, schwa-buffered, replacive, vc-deletion). Vowel-only affixes such as copula -u stay: they have no citation C to drop. Keeps sikuerpoq, sikuippoq, pivik, and illuuvoq.

[oq-api#138](https://github.com/jandahl/oq-api/issues/138)

## 0.1.9 — Lexical stem span outranks a long composition of the same word

2026-09-14 · fix · deconstruction

When a dictionary or grammarian stem shares an ending with a longer live composition and that composition absorbs two or more extra prefix morphemes, Deconstruct demotes the composition to SOFT_EXACT. That is the allaffissorneq-vs-allap+fik+sor+neq shape: the headword is the reading, the long chain is etymology. A one-affix split such as atorfik vs atoq+-fik stays pedagogical. Matches now carry band (gold / hard_exact / soft_exact / approximate); confidence stays “exact” for SOFT_EXACT so existing consumers do not break. Translator-facing code should read band.

[oq-api#138](https://github.com/jandahl/oq-api/issues/138)

## 0.1.8 — Preserve composed meaning through empty mood endings

2026-09-14 · fix · glosses, deconstruction

Gloss composition no longer replaces an accumulated derivation with the descriptive label of an empty inflectional ending such as the exclamatory Ø ending. The ending's mood metadata remains available while the complete semantic chain is preserved for headlines and downstream consumers.

## 0.1.7 — Person endings realize infinitive composition templates

2026-09-13 · fix · glosses, deconstruction

Structured person endings now realize authoritative infinitive-shaped composition metadata before applying agreement. This restores qimmeqarpunga to ‘I have a dog’ / ‘Jeg har en hund’ instead of embedding ‘to have’ / ‘at have’ after the subject, while retaining third-singular forms such as ‘has’.

## 0.1.6 — Prefer lexical stems over ungated nonproductive affixes

2026-09-13 · fix · analysis, morphology

Deconstruct soft-demotes chains that use an ungated nonproductive affix (e.g. V_iq_Vb) into SOFT_EXACT, so a lexical stem such as misiliineq (experiment; test) ranks above the oversegmented misilip + -iq + -neq parse. Gated enclitic host_ok/violated scoring is unchanged. No new ip+neq lengthening sandhi.

[oq-api#122](https://github.com/jandahl/oq-api/issues/122)

## 0.1.6 — Stem threading prefers plainGloss.composition

2026-09-12 · fix · gloss, api

glossSummaryItems uses plainGloss.composition[lang] for stem composition when published (nominal-modifier stacking templates), falling back to verb_phrase / da_verb_phrase. Fixes article stacking like “one a rather big house” when composition is “rather big ___”.

[oq-api#119](https://github.com/jandahl/oq-api/issues/119)

## 0.1.6 — Deconstruct matches ranked by certainty score

2026-09-12 · feature · analysis

analyzeWord now scores each match with a named-band certainty integer (0–65535), rankReasons, and certaintyFactors. Worked-example chains can snap to gold via opts.workedExampleChainKeys. Optional opts.katersatLexicalClasses supplies soft Katersat time-class evidence from a live session cache without vendoring GPLv3 data.

[oq-api#107](https://github.com/jandahl/oq-api/issues/107), [oq-api#105](https://github.com/jandahl/oq-api/issues/105), [oq-api#112](https://github.com/jandahl/oq-api/issues/112)

## 0.1.6 — ENCL_gu host gating from published grammarian tags

2026-09-12 · feature · analysis, morphology

Nonproductive ENCL_gu attaches in free Deconstruct when the chain already carries a published time semantic_tag (classic catalog 1.21+). The temporary hard-coded stem-id allowlist is gone. Gold surfaces such as ukioru and aasaru stay findable; non-time hosts like pigalugu do not pick up +gu.

[oq-api#107](https://github.com/jandahl/oq-api/issues/107), [oq-api#102](https://github.com/jandahl/oq-api/issues/102), [oq-api#110](https://github.com/jandahl/oq-api/issues/110), [oq-api#111](https://github.com/jandahl/oq-api/issues/111)

## 0.1.6 — misiliineq lab: gloss selectors, certainty, sample words

2026-09-12 · improvement · examples, analysis

The technical Deconstruct lab shows certainty band pills and rankReasons, hides the learner-facing Ø glyph while keeping zero endings in the chain, offers gloss-reading selectors when plain_gloss has alternatives, and adds sample chips for ukioru, aasaru, and pigalugu.

[oq-api#103](https://github.com/jandahl/oq-api/issues/103), [oq-api#109](https://github.com/jandahl/oq-api/issues/109)

## 0.1.6 — misiliineq.oq.gl served from oq-api Pages

2026-09-12 · infrastructure · examples, infrastructure

The misiliineq lab apex host is a custom domain on the oq-api Cloudflare Pages project. A Pages Function rewrites that hostname onto /misiliineq/, and redirects api.oq.gl/misiliineq and api.oq.gl/test to https://misiliineq.oq.gl/. Edit the lab only in examples/misiliineq/; the separate misiliineq-oq Worker alias is retired.

## 0.1.6 — Close morphology confidence and reverse-search gaps

2026-09-08 · fix · morphology, analysis, sandhi

Cited denominal verb forms now retain exact, unflagged confidence when a published sandhi declaration applies only to a different ending. Reverse search also preserves shorter fuzzy roots when a longer literal root is morphotactically incompatible, restoring the attested analysis of takornarpaa.

## 0.1.5 — Expose Danish articleless noun variants

2026-09-06 · feature · glossing, noun selectors

Danish noun presentation now distinguishes indefinite forms with an article from valid articleless forms such as 'en hund' and 'hund'.

## 0.1.4 — Noun selectors produce grammatical English alternatives

2026-09-06 · fix · glossing, noun selectors

English gloss composition now applies singular/plural and definite/indefinite noun selections to have and existential alternatives, including agreement between there is and there are.

## 0.1.3 — Preserve presentation variants through truncated stems

2026-09-06 · fix

Presentation metadata now survives analyzed stems whose surface form is restored after truncation, such as qitsuk in Qitsuuteqarpunga.

## 0.1.2 — Canonical noun presentation variants

2026-09-06 · feature · glosses, morpheme-metadata

Noun presets can now expose language-specific presentation forms keyed by number and determination, with countability, animacy, and gender metadata. Consumers can select a presentation without guessing from an ambiguous Kalaallisut root.

## 0.1.1 — Natural compositional negation

2026-09-05 · fix · analysis, glosses

Gloss composition now understands the grammarian's language-neutral negate operator, producing natural phrases such as ‘I do not have a dog’ instead of concatenating a negation label and ‘not’ around the stem.

## 0.1.0 — Reusable Deconstruct output normalization

2026-09-05 · feature · deconstruct, builder, public-api

Downstream consumers can now produce the same structured interactive-conjugation matches and Builder-handoff sequences as oq without copying PWA-local policy.
