Add read-only observer access #249

Merged
kilo merged 2 commits from issue-183-observer-access into develop 2026-11-02 16:10:34 +00:00
Member

Scope

Refs #183. Adds separately scoped, administrator-issued and individually revocable observer keys using the existing hash-only client key store; inference keys retain their existing scope. Adds versioned bounded snapshot and cursor-replay reads on the existing listener, with one shared explicit allowlist for current and historical state. Updates the existing administrator key page for labeled read-only issuance, one-time display and revocation, plus short operator documentation. No new listener, remote exposure, stream, CORS, database, identity platform or consumer implementation.

Migration 6 defaults existing client keys to inference. Restart and gap handling reuse the existing producer; source observations are not reconstructed from journal history. Consumer conformance and downstream installed/browser acceptance remain outstanding. The owner granted a finite D-069A exception for this exact PR (see #20630); historical ordinals #1-10 and review #11 remain consumed.

Base: 14580f629f123bd079e1aa80651a454e9b3e9ce7.
Head: e0be39facb542a23700ed959e6431605e43bfd00.

Local validation

uv sync --only-dev; focused observer permission-transition, replay and redaction tests; make check (3254 tests, 18 skipped, basedpyright clean); make package-check; uv run basedpyright; git diff --check. No live provider calls.

## Scope Refs #183. Adds separately scoped, administrator-issued and individually revocable observer keys using the existing hash-only client key store; inference keys retain their existing scope. Adds versioned bounded snapshot and cursor-replay reads on the existing listener, with one shared explicit allowlist for current and historical state. Updates the existing administrator key page for labeled read-only issuance, one-time display and revocation, plus short operator documentation. No new listener, remote exposure, stream, CORS, database, identity platform or consumer implementation. Migration 6 defaults existing client keys to inference. Restart and gap handling reuse the existing producer; source observations are not reconstructed from journal history. Consumer conformance and downstream installed/browser acceptance remain outstanding. The owner granted a finite D-069A exception for this exact PR (see #20630); historical ordinals #1-10 and review #11 remain consumed. Base: `14580f629f123bd079e1aa80651a454e9b3e9ce7`. Head: `e0be39facb542a23700ed959e6431605e43bfd00`. ## Local validation `uv sync --only-dev`; focused observer permission-transition, replay and redaction tests; `make check` (3254 tests, 18 skipped, basedpyright clean); `make package-check`; `uv run basedpyright`; `git diff --check`. No live provider calls.
Add read-only observer access (#183)
All checks were successful
ci / check (pull_request) Successful in 12m17s
189279b505
Author
Member

D-069A authorization provenance: direct owner user message in native session ses_e681d31b9ffew23NoLS5eLPLhT, part prt_19b500fe3001j0K16QtrIkkCUO, received 2026-11-02 08:11:17 (session environment time). Original UTF-8 text SHA-256 ed20c503f3e7212295a0c37034cc774d32ad533e36aaf97f5ef890a1baec51ab; the following exact attested excerpt has UTF-8 SHA-256 83a32446ffd1378922e577bf12684ec3408117578730ec9840b15a791f95c1d0. The original direct owner message is present in the primary context; this Kilo-authored preservation is not independent owner authority.

**Canonical repository:** `Creatidy/scarcity-router` (repository ID 15)

**Issue:** https://forgejo.creatidy.com/Creatidy/scarcity-router/issues/183

**PR:** https://forgejo.creatidy.com/Creatidy/scarcity-router/pulls/249

**Authorized scope:** The existing read-only observer-access implementation for Console/CLI consumers, including observer credential issuance and revocation, authorization isolation, safe state/event projection, snapshot/replay HTTP access, administrator UX, migrations and associated tests.

**Maximum reviews:** 13 total for issue #183, including the ten already consumed. This authorizes at most three additional review invocations, #11–#13, exclusively for PR #249.

Previous review outcomes and ordinals remain unchanged.

Verified canonical repository ID 15, issue #183/PR #249 linkage, direct owner scope and maximum, current HEAD 189279b505fc01a5125bd9b22eaa4292574225c4, base/merge-base 14580f629f123bd079e1aa80651a454e9b3e9ce7, and D-069A already integrated into freshly fetched develop. Reviews #1–10 remain consumed; this exception is not transferable.

D-069A authorization provenance: direct owner user message in native session `ses_e681d31b9ffew23NoLS5eLPLhT`, part `prt_19b500fe3001j0K16QtrIkkCUO`, received 2026-11-02 08:11:17 (session environment time). Original UTF-8 text SHA-256 `ed20c503f3e7212295a0c37034cc774d32ad533e36aaf97f5ef890a1baec51ab`; the following exact attested excerpt has UTF-8 SHA-256 `83a32446ffd1378922e577bf12684ec3408117578730ec9840b15a791f95c1d0`. The original direct owner message is present in the primary context; this Kilo-authored preservation is not independent owner authority. ```text **Canonical repository:** `Creatidy/scarcity-router` (repository ID 15) **Issue:** https://forgejo.creatidy.com/Creatidy/scarcity-router/issues/183 **PR:** https://forgejo.creatidy.com/Creatidy/scarcity-router/pulls/249 **Authorized scope:** The existing read-only observer-access implementation for Console/CLI consumers, including observer credential issuance and revocation, authorization isolation, safe state/event projection, snapshot/replay HTTP access, administrator UX, migrations and associated tests. **Maximum reviews:** 13 total for issue #183, including the ten already consumed. This authorizes at most three additional review invocations, #11–#13, exclusively for PR #249. Previous review outcomes and ordinals remain unchanged. ``` Verified canonical repository ID 15, issue #183/PR #249 linkage, direct owner scope and maximum, current HEAD `189279b505fc01a5125bd9b22eaa4292574225c4`, base/merge-base `14580f629f123bd079e1aa80651a454e9b3e9ce7`, and D-069A already integrated into freshly fetched develop. Reviews #1–10 remain consumed; this exception is not transferable.
Author
Member

Independent whole-PR security/correctness/data-integrity/UX review #11 reserved under the exact owner exception documented in #20630; maximum 13 for issue #183/PR #249 only, #1-10 already consumed. Frozen HEAD 189279b505fc01a5125bd9b22eaa4292574225c4, base/merge-base 14580f629f123bd079e1aa80651a454e9b3e9ce7. Requested fresh native pr-reviewer session: GPT-6.1 Sol, high. Reservation is not approval; all failed/COMMENT/retried dispatches consume an ordinal.

Independent whole-PR security/correctness/data-integrity/UX review #11 reserved under the exact owner exception documented in [#20630](https://forgejo.creatidy.com/Creatidy/scarcity-router/pulls/249#issuecomment-20630); maximum 13 for issue #183/PR #249 only, #1-10 already consumed. Frozen HEAD `189279b505fc01a5125bd9b22eaa4292574225c4`, base/merge-base `14580f629f123bd079e1aa80651a454e9b3e9ce7`. Requested fresh native `pr-reviewer` session: GPT-6.1 Sol, `high`. Reservation is not approval; all failed/COMMENT/retried dispatches consume an ordinal.
Author
Member

Review #11 dispatched through native Agent Manager local session ses_e64adb0c9ffet0lQ10YMw7qCH1, requested pr-reviewer, openai/GPT-6.1 Sol, high, at the reserved HEAD/base. Native result and actual execution provenance are pending; model resolution metadata is not proof of backend identity or approval.

Review #11 dispatched through native Agent Manager local session `ses_e64adb0c9ffet0lQ10YMw7qCH1`, requested `pr-reviewer`, `openai/GPT-6.1 Sol`, `high`, at the reserved HEAD/base. Native result and actual execution provenance are pending; model resolution metadata is not proof of backend identity or approval.
Author
Member

Independent review #11, native session ses_e64adb0c9ffet0lQ10YMw7qCH1, returned REQUEST_CHANGES at HEAD 189279b505fc01a5125bd9b22eaa4292574225c4 / base 14580f629f123bd079e1aa80651a454e9b3e9ce7. P2: the observer reason allowlist omits legitimate awaiting_inventory_refresh, making snapshot/replay return HTTP 500 after a newly granted model and potentially breaking replay even after refreshed inventory. Required: preserve the safe recovery reason and test snapshot plus retained replay across permission grant and subsequent inventory. Reviewer inspected the complete frozen diff and relevant authority/source, reported no limitations. #11 consumed; #12-13 remain within the exact owner exception.

Independent review #11, native session `ses_e64adb0c9ffet0lQ10YMw7qCH1`, returned REQUEST_CHANGES at HEAD `189279b505fc01a5125bd9b22eaa4292574225c4` / base `14580f629f123bd079e1aa80651a454e9b3e9ce7`. P2: the observer reason allowlist omits legitimate `awaiting_inventory_refresh`, making snapshot/replay return HTTP 500 after a newly granted model and potentially breaking replay even after refreshed inventory. Required: preserve the safe recovery reason and test snapshot plus retained replay across permission grant and subsequent inventory. Reviewer inspected the complete frozen diff and relevant authority/source, reported no limitations. #11 consumed; #12-13 remain within the exact owner exception.
Author
Member

Review #11 native session-scoped metadata records agent pr-reviewer, provider openai, model gpt-6.1-sol, variant high, with no per-session permission override. The selected reviewer profile is read-only; native transcript shows read-only source operations. This verifies native model dispatch/execution records, not independent remote backend identity.

Review #11 native session-scoped metadata records agent `pr-reviewer`, provider `openai`, model `gpt-6.1-sol`, variant `high`, with no per-session permission override. The selected reviewer profile is read-only; native transcript shows read-only source operations. This verifies native model dispatch/execution records, not independent remote backend identity.
Handle observer inventory refresh transition (#183)
All checks were successful
ci / check (pull_request) Successful in 12m32s
e0be39facb
Author
Member

Review #11 finding remediated in e0be39facb542a23700ed959e6431605e43bfd00: allow the existing safe awaiting_inventory_refresh discovery reason; deterministic observer HTTP tests exercise the permission grant, pre-refresh snapshot/replay, retained replay after refresh, and rejection of an unapproved reason. Full make check passed (3254 tests, 18 skipped; package and basedpyright checks), as did make package-check. Reverified repository ID 15, issue #183/PR #249, original direct owner authorization and preserved excerpt #20630, maximum 13, D-069A in fetched develop and clean exact refs. Fresh whole-PR review #12 reserved at HEAD e0be39facb542a23700ed959e6431605e43bfd00, base/merge-base 14580f629f123bd079e1aa80651a454e9b3e9ce7; #1-11 consumed. Reservation is not approval.

Review #11 finding remediated in `e0be39facb542a23700ed959e6431605e43bfd00`: allow the existing safe `awaiting_inventory_refresh` discovery reason; deterministic observer HTTP tests exercise the permission grant, pre-refresh snapshot/replay, retained replay after refresh, and rejection of an unapproved reason. Full `make check` passed (3254 tests, 18 skipped; package and basedpyright checks), as did `make package-check`. Reverified repository ID 15, issue #183/PR #249, original direct owner authorization and preserved excerpt [#20630](https://forgejo.creatidy.com/Creatidy/scarcity-router/pulls/249#issuecomment-20630), maximum 13, D-069A in fetched develop and clean exact refs. Fresh whole-PR review #12 reserved at HEAD `e0be39facb542a23700ed959e6431605e43bfd00`, base/merge-base `14580f629f123bd079e1aa80651a454e9b3e9ce7`; #1-11 consumed. Reservation is not approval.
Author
Member

Review #12 dispatched through native Agent Manager local session ses_e64957aa0ffe8wupgkbeEllqvw, requested pr-reviewer, openai/GPT-6.1 Sol, high, at reserved HEAD/base. Actual native result and runtime provenance are pending; dispatch metadata is not approval.

Review #12 dispatched through native Agent Manager local session `ses_e64957aa0ffe8wupgkbeEllqvw`, requested `pr-reviewer`, `openai/GPT-6.1 Sol`, `high`, at reserved HEAD/base. Actual native result and runtime provenance are pending; dispatch metadata is not approval.
Author
Member

Independent review #12, native session ses_e64957aa0ffe8wupgkbeEllqvw, returned APPROVE with empty findings at HEAD e0be39facb542a23700ed959e6431605e43bfd00, base/merge-base 14580f629f123bd079e1aa80651a454e9b3e9ce7. The reviewer verified complete frozen diff, source, security and UX contracts, reported no limitations, and did not execute tests against the unrelated working tree. No material UX regression found. #12 consumed; final currentness and CI/integration gates still require verification.

Independent review #12, native session `ses_e64957aa0ffe8wupgkbeEllqvw`, returned APPROVE with empty findings at HEAD `e0be39facb542a23700ed959e6431605e43bfd00`, base/merge-base `14580f629f123bd079e1aa80651a454e9b3e9ce7`. The reviewer verified complete frozen diff, source, security and UX contracts, reported no limitations, and did not execute tests against the unrelated working tree. No material UX regression found. #12 consumed; final currentness and CI/integration gates still require verification.
Author
Member

Review #12 native session metadata records pr-reviewer, provider openai, model gpt-6.1-sol, variant high, with no per-session permission override. The selected reviewer profile is read-only and native transcript records read-only source operations. This is native model execution metadata, not independent proof of remote backend identity.

Review #12 native session metadata records `pr-reviewer`, provider `openai`, model `gpt-6.1-sol`, variant `high`, with no per-session permission override. The selected reviewer profile is read-only and native transcript records read-only source operations. This is native model execution metadata, not independent proof of remote backend identity.
Author
Member

Pre-merge currentness: review #12 APPROVE with empty findings at HEAD e0be39facb542a23700ed959e6431605e43bfd00; freshly fetched develop/base/merge-base 14580f629f123bd079e1aa80651a454e9b3e9ce7; clean checkout; issue open and no excluded labels; direct exact-PR owner exception remains within maximum 13. Forgejo workflow #3474 completed SUCCESS on this HEAD and newest ci / check (pull_request) status is success. The combined status resource still includes earlier pending records and reports pending; normal Forgejo merge only, with no force or auto-merge. Actual downstream consumer conformance is not established.

Pre-merge currentness: review #12 APPROVE with empty findings at HEAD `e0be39facb542a23700ed959e6431605e43bfd00`; freshly fetched develop/base/merge-base `14580f629f123bd079e1aa80651a454e9b3e9ce7`; clean checkout; issue open and no excluded labels; direct exact-PR owner exception remains within maximum 13. Forgejo workflow #3474 completed SUCCESS on this HEAD and newest `ci / check (pull_request)` status is success. The combined status resource still includes earlier pending records and reports pending; normal Forgejo merge only, with no force or auto-merge. Actual downstream consumer conformance is not established.
kilo merged commit 10c3ea6392 into develop 2026-11-02 16:10:34 +00:00
Sign in to join this conversation.
No description provided.