Skip to content

Releases: netresearch/t3x-nr-browser-ai

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 11 Aug 08:42
v0.6.0
b18dbe5

Changes

  • Merge pull request #38 from netresearch/release/v0.6.0
  • Merge pull request #37 from netresearch/feat/prose-answer
  • Merge pull request #34 from netresearch/chore/accessibility-gate

Installation

composer require netresearch/nr-browser-ai

Publication status

Security

All release artifacts are signed with Sigstore keyless signing.

Verify signatures

cosign verify-blob \
  --bundle nr_browser_ai-0.6.0.zip.sigstore.json \
  --certificate-identity-regexp "https://github.com/netresearch/.*" \
  --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
  nr_browser_ai-0.6.0.zip

Verify checksums

sha256sum -c checksums.txt

Software Bill of Materials (SBOM)

SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 11 Aug 07:11
v0.5.0
1ae4883

Changes

  • Merge pull request #35 from netresearch/release/v0.5.0
  • Merge pull request #32 from netresearch/feat/form-assistant
  • Merge pull request #33 from netresearch/fix/demo-cta-contrast
  • Merge pull request #31 from netresearch/feat/on-device-product-page
  • Merge pull request #30 from netresearch/chore/adopt-renovate
  • Merge pull request #27 from netresearch/chore/sync-template-checks-r2
  • Merge pull request #25 from netresearch/chore/dedupe-shared-dev-deps
  • Merge pull request #26 from netresearch/chore/sync-template-checks-gate
  • Merge pull request #24 from netresearch/docs/commit-signing-policy

Installation

composer require netresearch/nr-browser-ai

Publication status

Security

All release artifacts are signed with Sigstore keyless signing.

Verify signatures

cosign verify-blob \
  --bundle nr_browser_ai-0.5.0.zip.sigstore.json \
  --certificate-identity-regexp "https://github.com/netresearch/.*" \
  --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
  nr_browser_ai-0.5.0.zip

Verify checksums

sha256sum -c checksums.txt

Software Bill of Materials (SBOM)

SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 13:01
v0.4.0
af679ab

Two things a visitor could not do before: check what the assistant sends before using it, and get anywhere useful when the page does not carry the answer.

See what would be sent

A new per-content-element switch, Show configuration, renders a collapsed block naming the system prompt, the editor's supplemental instruction, the page area used as the source and the context limit — plus a sentence for the two things it cannot list verbatim, the page text itself and the automatic answer-language instruction.

The values come from the same normalized settings the assistant uses, not a second copy, so the disclosure cannot drift from the behaviour it describes. It sits outside the block that stays hidden until the browser reports a usable model: what would be sent is worth reading precisely in a browser that cannot run the assistant, which is what most visitors have.

An answer for the questions the page cannot answer

Until now an unanswerable question ended in a refusal, which is correct and useless — the visitor came with a question and left with nothing, while the site usually does have somewhere to send them.

notFoundMode set to Content element shows an editor-selected element in place of the model's refusal; notFoundContent picks it under the same rules as fallbackContent (same page, enabled, no cycles). Put a link to the search, a contact address, a related page — whatever actually helps.

Only the model knows whether the page answered, so it is asked to signal an unanswerable question with a marker, and the interface swaps in the prepared element. Two properties make that safe:

  • A model that ignores the marker answers as before. The failure mode is the previous behaviour, not a broken page.
  • The bare marker can never reach a visitor. The instruction is added only when the selected element actually renders, so a missing, hidden or cyclic reference leaves the prompt untouched.

The beginning of a streamed reply is withheld for as long as it could still become the marker, so the token never flashes on screen before the editor's content replaces it — and is released the instant the reply turns out to be an answer.

Upgrading

No migration, and nothing changes for an existing plugin: both settings are off by default.

Full changelog: https://github.com/netresearch/t3x-nr-browser-ai/blob/main/CHANGELOG.md

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 02 Aug 20:16
v0.3.0
10e76ea

A TYPO3 site assembled from site sets has no sys_template record, so the static TypoScript include this extension shipped never ran and the content element had no rendering definition — TYPO3 rendered its yellow "has no rendering definition" placeholder instead of the assistant. That is the configuration TYPO3 14 steers projects towards, and it is where this extension could not be used at all. 0.3.0 closes that, and fixes a defect it uncovered in the shipped system prompt.

Site set netresearch/browser-ai

Add it to the dependencies of your site package's set, or to the site's own config.yaml:

name: my-vendor/my-site
dependencies:
  - netresearch/browser-ai

TYPO3 12.4 is unaffected: the static template include is unchanged and remains the mechanism there.

Three settings, now editable per site

contextSelector, contextUsageLimit and systemPrompt are typed site settings, editable under Site Management › Sites › Settings and settable in a site's settings.yaml. The last two previously had no interface at all — they could only be reached through TypoScript constants.

Fixed: the system prompt arrived truncated

On a site loading the extension through the set, the shipped prompt reached the model as its first sentence only. The two that carry the grounding rule and the prompt-injection guard were dropped without any warning — the opposite of what the prompt exists to do.

TYPO3 hands site settings to TypoScript by serialising them into constants text, one key = value line per setting, so a value containing a newline breaks across lines and everything after the first is lost. No setting type avoids this, text included. The prompt is therefore one line now, and the setting is declared string rather than text so a multiline editing field does not invite an override that would be truncated the same way. If you override systemPrompt, keep it on one line.

Upgrading

No migration. On 13.4 and 14.3, add the set as shown above; a site still using sys_template needs no change at all.

Full changelog: https://github.com/netresearch/t3x-nr-browser-ai/blob/main/CHANGELOG.md

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 01 Aug 12:33
v0.2.0
859aa1f

First published release. Version 0.1.0 was declared but never released, so this covers the extension as a whole.

What it does

A frontend plugin that answers visitor questions from the content of the page they are reading. Chrome's built-in Prompt API runs the model on the visitor's device. The extension defines no chat endpoint, database table, cookie, local storage or telemetry — there is no server component to operate.

Answers are grounded in a configurable region of the current page, default main. The default system prompt tells the model to answer only from that source, to say so when an answer is absent, and to treat instructions found in page content as untrusted data.

In this release

  • Two prompt layers. Administrators own the system prompt in TypoScript; editors may append a supplemental instruction per plugin without replacing it.
  • Answers in the language of the question, falling back to the page language from <html lang>. The Prompt API's expectedOutputs capability alone does not constrain the response, so the requirement is stated in the instruction.
  • Model output rendered with DOM APIs only, covering a restricted Markdown subset: emphasis, inline and fenced code, lists, headings, block quotes and thematic breaks. No markup string is assembled and no HTML is parsed. Links are limited to validated HTTP(S) URLs, in bare or Markdown syntax.
  • Fallback modes none and contentElement for browsers without an on-device model. Hidden, deleted and cyclic references produce no output; access restrictions and time-based publishing continue to apply.
  • Context-budget handling: the page source is reduced to fit the configured usage target, and a new question is refused once that target is reached.
  • Keyboard-complete lifecycle with controls that stay focusable rather than disabled, and a polite live region that announces the finished answer once instead of streaming partial output to assistive technology.
  • German translations for the frontend and the backend labels.

Requirements

TYPO3 12.4, 13.4 or 14.3 on PHP 8.2 through 8.5. TYPO3 12.4 is a compatibility target and requires a maintained security-patched distribution.

The assistant itself needs Chrome 148 or newer, roughly 22 GB free storage before the model downloads, and a one-time model download started by an explicit user action. Visitors who do not meet this receive the configured fallback, which is a supported path rather than an error state.

Status

This is a proof of concept, marked beta. Its context scope is the current page and nothing else.

Live demo: https://netresearch.github.io/t3x-nr-browser-ai/

Installation

composer require netresearch/nr-browser-ai
vendor/bin/typo3 extension:setup

Publication status

Security

All release artifacts are signed with Sigstore keyless signing.

Verify signatures

cosign verify-blob \
  --bundle nr_browser_ai-0.2.0.zip.sigstore.json \
  --certificate-identity-regexp "https://github.com/netresearch/.*" \
  --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
  nr_browser_ai-0.2.0.zip

Verify checksums

sha256sum -c checksums.txt

Software Bill of Materials (SBOM)

SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.