Skip to content

v8.0.0

Choose a tag to compare

@jterrazz jterrazz released this 19 Oct 12:38
0a2b2a7

Breaking changes

  • Six rules are renamed, with NO alias: g1-agent-class-shape is now
    agent-class-shape, p3-agent-prompt-sibling is now agent-prompt-sibling,
    m1-model-resolution-in-composition is now model-resolution-in-composition,
    m2w-no-hardcoded-model-id is now no-hardcoded-model-id,
    p1-prose-in-prompt-files is now prose-in-prompt-files, and
    p2-prompt-file-exports is now prompt-file-exports. A consumer's override or
    suppression naming an old code must be renamed.
  • no-hardcoded-model-id goes from warn to error, since the toolchain has no
    warn tier. It no longer exempts a legacy fixtures/ folder, only the
    toolchain's ground folders, __tests__/, __setup__/ and specs/.
  • model-resolution-in-composition judges a factory by its import from the
    package: an aliased or namespace call is now reported, and a same-named
    local function no longer is. A test or spec composing its subject is
    exempt.
  • ./config and ./oxlint ship ESM only.
  • createFallbackModel follows APICallError#isRetryable: it now also falls
    back on 408 and 409, and a timeout or an abort no longer falls back, so it
    reaches the caller.
  • A gateway declared without apiKey sends an empty bearer instead of the
    process's OPENAI_API_KEY. A consumer that relied on that variable as its
    gateway key now gets 401 and must pass apiKey. (Security: before, every
    keyless gateway in a process holding OPENAI_API_KEY was sent that key.)

Fixes

  • A streamed generation is now costed (it never was).