SIGN IN SIGN UP

feat(repo-auth): repo-as-project attribution plugin + extract @vymalo/opencode-core-otel (#98)

* feat(repo-auth): add repo-as-project attribution plugin via RFC 8693 project_id exchange.

* fix(repo-auth): fail closed in chat.headers on exchange errors.

* test(repo-auth): add wiremock-backed integration suite for the project_id exchange.

* docs(repo-auth): add real-host e2e recipe against the test-env stack.

* docs(adr): ADR-0012 — one credential across gateway + OTEL

Record the decision to ship a single @vymalo/opencode-lightbridge umbrella
plugin over one auth-core TokenRuntime, injecting the same credential into the
gateway (chat.headers) and OTEL (per-export headers factory). MCP is out of
scope; login moves to authz /authorize; and the OTEL engine is factored into a
shared @vymalo/opencode-core-otel package.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* refactor(otel): extract @vymalo/opencode-core-otel shared engine

Move the OTEL engine (providers, recorder, instruments, token-source,
export-logging, propagation, config, vcs, deferred, logging, types) and its
tests into a new publishable @vymalo/opencode-core-otel package. opencode-otel
becomes a thin plugin adapter depending on it via workspace:*; its lib.ts
re-exports the engine so @vymalo/opencode-otel/lib consumers keep every symbol.
Drop the unused @opentelemetry/semantic-conventions dependency.

Prepares the TokenSource seam for the opencode-lightbridge umbrella (ADR-0012).
Behavior unchanged; 190 tests green across both packages.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Stephane Segning Lambou <stephane.segning-lambou@adorsys.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
B
Benie Joy Possi committed
cd77b42427f32f978802bc1e101ccd70d5299236
Parent: a54f3a1
Committed by GitHub <noreply@github.com> on 8/23/2026, 3:04:15 PM