Skip to content

feat: harden live macOS runtime and governance - #1317

Draft
seonghobae wants to merge 31 commits into
fix/workspace-document-registry-migrationfrom
codex/naruon-live-audit
Draft

feat: harden live macOS runtime and governance#1317
seonghobae wants to merge 31 commits into
fix/workspace-document-registry-migrationfrom
codex/naruon-live-audit

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Current repair status — Draft / prerequisite-first

Exact head: af362d58190c0bf2ed122d718473fe3c2bd503c4 (tree 027eb9d28c2a3677dd11d2ffd878fd4ef1c3fe29).
Normal merge parents: original owner 1b422f15e6e5f56be679f691c8ff925c9a420fb1 and migration owner #1503 19d5860bc27e860acba940390f5792721cd99e5e. This retargets onto #1503's fix/workspace-document-registry-migration branch without force push, dropped predecessor delta, or deleted migration IDs.

Current repair:

  • retain the actual provider-lookup connection across account import leases and per-item commits, including a one-slot pool;
  • invalidate uncertain acquisition/unlock and complete cleanup even after repeated cancellation;
  • prevent SQL on a replacement connection after actual lease-holder termination;
  • namespace new persisted body/attachment graph identities by account without changing original Message-IDs or deleting global constraints;
  • join both migration histories with no-DDL 0020_merge_import_registry, use Alembic's native graph inspection, and mark the open-PR local-runtime ADR Proposed.

Committed-head verification: 242 passed in 11.41s, exit 0, after fresh and repeated actual PostgreSQL migrations; task-only DB container/network cleanup confirmed. This includes real concurrent same-owner/other-user/other-organization imports and signed backend ASGI import/unsigned rejection. The old API suite also contains mocks; its test names alone do not prove signed DB behavior. Focused Ruff and git diff --check passed; the worktree remained clean.

Command from backend/, after task-isolated DB provisioning:

uv sync --locked
uv run --locked python scripts/migrate_db.py
uv run --locked python scripts/migrate_db.py
uv run --locked python -m pytest -q -W error -ra --tb=short \
  tests/test_email_import_lease_postgres.py tests/test_email_import_service.py \
  tests/test_emails_api.py tests/test_alembic_migrations.py \
  tests/test_workspace_document_migration.py tests/test_email_read_state_migration_postgres.py \
  tests/test_legacy_document_scope_postgres.py tests/test_attachment_parser.py \
  tests/test_bootstrap_db.py tests/test_container_dependency_pin_contract.py tests/test_data_api.py

JUnit import_af362d5.xml: SHA-256 238da7ad1c6e772cd087a3576f7c81d4d81780a6f0f0b4b3986a229910da965c (local receipt, not uploaded hosted evidence).
Decision, RED receipts, replay source and limits.

Remaining gates: #1503 predecessor integration; #1562 migrated-PostgreSQL Application CI prerequisite (owner request); fresh required checks and qualifying independent review on the exact head. Local success is not hosted approval, protected merge, deployed provider/browser behavior, or p95/100% coverage acceptance. Existing default-branch dependency findings also remain required security work, not waived by these tests.

Caller precondition remains settled/read-only work before import: the pending-ORM guard cannot detect already-flushed or raw-SQL uncommitted writes. The actual provider-lookup caller is verified; do not generalize to arbitrary external transactions.

Preserved earlier PR record

The following is historical proposal/validation material retained for provenance. Earlier counts and live-mail/model/browser observations do not transfer to the current head and have not been rerun in this repair.

Summary

  • Add macOS Colima Compose runtime selection: mlx-lm -> llama.cpp -> Ollama.
  • Route EmbeddingGemma through a separate llama.cpp endpoint and prevent tenant API keys from being sent to local runtimes.
  • Disable MLX thinking for local structured/translation/draft calls so reasoning cannot exhaust the response before content.
  • Harden NUL/control-character handling, grounded project extraction defaults, compound relational naming, Keyverse OIDC boundaries, and privileged workflow archive materialization.
  • Document PR/check/review iteration and non-admin merge policy in ADRs.

Historical validation

  • Backend: 1739 passed, 33 skipped after semantic-segment embedding update (a57f8a75); current-head CI reruns after each branch update
  • Frontend: 427 passed; lint and typecheck passed
  • Full product UI smoke: 10 routes, critical interactions, and accessibility checks passed
  • Live Playwright: 4 passed, including real MLX draft and EmbeddingGemma search
  • Live mail smoke: import/search/frontend visibility/summary/draft passed
  • MLX chat: 200 with non-empty content
  • EmbeddingGemma: 200 with 768-dimensional vectors
  • actionlint, shell syntax checks, and test_pr_governance_gate.sh: passed

Security boundary

Privileged workflow logic is materialized only from a trusted full SHA. PR head content is handled as data; archive traversal, links, devices, and workspace escapes are rejected. No admin merge or branch-protection bypass is used.

Summary by CodeRabbit

  • New Features
    • Added support for local LLM runtimes, including Ollama, MLX, and llama.cpp.
    • Added separate chat and embedding endpoints, including EmbeddingGemma support.
    • Improved email import, semantic search, and grounded answers with segmented, token-aware embeddings.
    • Project graph extraction now defaults to the orchestrated approach.
  • Bug Fixes
    • Improved handling of oversized embedding inputs and local structured responses.
    • Strengthened authentication input validation and database migration safety.
    • Improved macOS runtime detection, container connectivity, and email import verification.
  • Documentation
    • Added guidance for OIDC setup, local AI configuration, database naming, and security practices.

Live mail validation update

The actual iCloud mail directory supplied by the operator was exercised through the running Colima stack without copying private mail into the repository. Real-mail import completed with zero failed items, same-owner sequential imports released all PostgreSQL advisory locks, and inbox/search visibility was verified through both the backend API and the same-origin frontend cookie proxy. Private message contents and credentials were not included.

Semantic embedding update

Import embeddings now use the content-graph parser's heading/paragraph/structured-field segments first. Only an oversized semantic segment is physically split for provider safety; its vectors are pooled back to the segment, then to the existing email/attachment source centroid. The persisted content segments remain the Ontology and Project Graph citation units.


Open in Devin Review

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR adds separate local chat and embedding routing, semantic embedding chunking, stricter authentication and governance validation, safer email import locking, canonical read-state migrations, updated macOS Compose detection, and new policy documentation.

Changes

Local runtime and embedding integration

Layer / File(s) Summary
Provider and embedding contracts
backend/core/config.py, backend/services/llm_provider_selection.py, backend/api/search.py, backend/services/batch_embedding_service.py
Provider settings now support dedicated embedding endpoints and local-environment providers.
Semantic embedding processing
backend/services/embedding.py, backend/services/email_import_service.py, backend/tests/test_embedding.py, backend/tests/test_email_import_service.py
Email content is segmented, token-bounded, embedded, and pooled by source.
Local LLM and macOS wiring
backend/services/llm_service.py, scripts/naruon_compose.sh, docker-compose.macos.yml, README.md
Local providers use JSON-object responses with disabled thinking. macOS setup detects and configures local runtimes.

Input, identity, and live-smoke safety

Layer / File(s) Summary
Identity and local HTTP validation
backend/api/auth.py, backend/tests/test_auth_real.py, backend/tests/test_local_http.py, docs/adr/0005-keyverse-oidc-trust-boundary.md
Claims reject control characters and invalid ASCII. Local HTTP validation rejects NUL characters.
Import locking and smoke handling
backend/services/email_import_service.py, backend/scripts/private_mail_http_smoke.py, AGENTS.md
Import locks use validated hashed owner keys and dedicated connections. Mail smoke tests use an environment secret and API visibility checks.

Governance, schema, and extractor defaults

Layer / File(s) Summary
Trusted governance materialization
.github/workflows/pr-governance.yml, backend/tests/test_release_governance.py, docs/adr/0006-privileged-workflow-archive-safety.md
Trusted base SHAs and archive members receive explicit validation before governance code runs.
Canonical email schema migration
backend/alembic/versions/0018_email_read_state_ownership.py, backend/alembic/versions/0019_merge_email_read_state_ownership.py, backend/tests/test_alembic_migrations.py
Read-state ownership targets email_records, preserves compatible columns, and reconciles migration heads.
Project-graph selector and repository policy
backend/core/config.py, backend/services/project_graph/extractor_registry.py, docs/architecture/kg-extractor-seam.md, docs/adr/0002-compound-snake-case-database-names.md
The default extractor is now orchestrator. Deterministic extraction remains a reference fallback.

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related issues

Possibly related PRs

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes two primary changes: hardening the live macOS runtime and governance controls.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/naruon-live-audit

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

coderabbitai[bot]

This comment was marked as resolved.

@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for 1b422f15e6e5f56be679f691c8ff925c9a420fb1:

  • Required check strix is FAILURE on the current head.

coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 11, 2026

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head cf8c21e4b0843aef49f8c15d4f0f93816178dc09.

  • Head SHA: cf8c21e4b0843aef49f8c15d4f0f93816178dc09

  • Workflow run: 31542616436

  • Workflow attempt: 1

Coverage evidence

Coverage evidence job did not run or did not publish coverage evidence.

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (6 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (6 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Workflow: pr-governance.yml"]
  S2 --> I2["GitHub Actions review job"]
  I2 --> R2["Review risk: Workflow: pr-governance.yml"]
  R2 --> V2["actionlint plus required checks"]
  Evidence --> S3["Backend (30 files)"]
  S3 --> I3["API and service runtime"]
  I3 --> R3["Review risk: Backend (30 files)"]
  R3 --> V3["backend tests"]
  Evidence --> S4["Docs (7 files)"]
  S4 --> I4["operator or user guidance"]
  I4 --> R4["Review risk: Docs (7 files)"]
  R4 --> V4["docs review"]
Loading

@opencode-agent

opencode-agent Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: 714a2e5d49095f3124025dda9b096ae12e9266c5
  • Workflow run: 32025069092
  • Workflow attempt: 1
  • Gate result: REQUEST_CHANGES (approval step)

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head 714a2e5d49095f3124025dda9b096ae12e9266c5.

  • Head SHA: 714a2e5d49095f3124025dda9b096ae12e9266c5

  • Workflow run: 32025069092

  • Workflow attempt: 1

Coverage evidence

Coverage evidence job did not run or did not publish coverage evidence.

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (6 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (6 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Workflow: pr-governance.yml"]
  S2 --> I2["GitHub Actions review job"]
  I2 --> R2["Review risk: Workflow: pr-governance.yml"]
  R2 --> V2["actionlint plus required checks"]
  Evidence --> S3["Backend (32 files)"]
  S3 --> I3["API and service runtime"]
  I3 --> R3["Review risk: Backend (32 files)"]
  R3 --> V3["backend tests"]
  Evidence --> S4["Docs (7 files)"]
  S4 --> I4["operator or user guidance"]
  I4 --> R4["Review risk: Docs (7 files)"]
  R4 --> V4["docs review"]
Loading

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head cf8c21e4b0843aef49f8c15d4f0f93816178dc09.

  • Head SHA: cf8c21e4b0843aef49f8c15d4f0f93816178dc09

  • Workflow run: 31542616436

  • Workflow attempt: 2

Coverage evidence

Coverage evidence job did not run or did not publish coverage evidence.

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (6 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (6 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Workflow: pr-governance.yml"]
  S2 --> I2["GitHub Actions review job"]
  I2 --> R2["Review risk: Workflow: pr-governance.yml"]
  R2 --> V2["actionlint plus required checks"]
  Evidence --> S3["Backend (30 files)"]
  S3 --> I3["API and service runtime"]
  I3 --> R3["Review risk: Backend (30 files)"]
  R3 --> V3["backend tests"]
  Evidence --> S4["Docs (7 files)"]
  S4 --> I4["operator or user guidance"]
  I4 --> R4["Review risk: Docs (7 files)"]
  R4 --> V4["docs review"]
Loading

seonghobae commented Aug 12, 2026

Copy link
Copy Markdown
Contributor Author

Actual iCloud mail directory validation remains scoped to the running Colima stack; no private message content or credentials are included.

The import embedding path has now been corrected to use content-graph semantic segments (heading/paragraph/structured fields) as primary units, preserving heading context. Only oversized segments are split to the physical provider ceiling, then pooled back to the semantic segment and finally to the existing email/attachment centroid. The contextual-orchestrator batch path receives the same bounded physical inputs.

Validation on the local semantic update: backend 1739 passed, 33 skipped; focused embedding/import/batch suites 79 passed; Ruff and git diff --check passed. Local commit 9c1250c; remote PR head a57f8a7. Current-head GitHub Checks and independent review must rerun for this head before normal protected Merge.

coderabbitai[bot]

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

Current-head repair record (2026-08-12 UTC):

  • new head: 44563f82f0e144f0bfeebd6ede15871c2cfec381
  • restored published Alembic revision 0011_email_read_state byte-for-byte from the exact base and moved canonical email_records ownership/schema work into new 0018_email_read_state_ownership, with 0019_merge_email_read_state_ownership preserving a single graph head;
  • embedding inputs now use the selected model tokenizer with a conservative 256-token ceiling and token-count-weighted pooling, including the contextual-orchestrator batch path;
  • both local runtime branches assign and validate converted host URLs before export;
  • focused Python AST and shell syntax validation passed locally from the exact remote files.

This addresses the three current actionable review findings. The central trusted-uv coverage repair remains the prerequisite for a fresh exact-head OpenCode review; no predecessor review or check evidence is being transferred.

Copy link
Copy Markdown
Contributor Author

Follow-up current-head repair (2026-08-12 UTC):

  • head advanced to 0b5f4478e7084c7856caafbebf65757f83f12839;
  • fixed the exact CI failures from run 31565044989: the merge revision identifier is now within Alembic's 32-character version_num limit, and the batch embedding regression asserts the new tokenizer-token ceiling rather than the obsolete character ceiling;
  • no security boundary, migration ownership rule, or provider credential behavior was weakened.
    Fresh exact-head Checks are required before review/merge evaluation.

coderabbitai[bot]

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

Current-head CI repair (head a6f36eb35f9cedbc9125f249375227be4aa0ef66):

  • restored the migration regression test path to the existing 0019_merge_email_read_state_ownership.py file while retaining the Alembic-safe revision id 0019_merge_read_state_ownership;
  • changed the long-input batch regression expectation to the production token-weighted pooling formula instead of an unweighted character-era average.

The branch is being rechecked from this exact head. No approval or merge decision is inferred from this repair.

Copy link
Copy Markdown
Contributor Author

TDD red phase for the next review repairs (head 844a3cbae7644b2945afcbb7691cee31b2c891b3): added failing contract coverage for the canonical email_records migration target and for preserving Unicode when a token boundary bisects a UTF-8 character. The next commit will implement only those root-cause fixes after this exact-head run reports the expected failures.

Copy link
Copy Markdown
Contributor Author

TDD green implementation at exact head d225700ddf17767a337949d37c3fb0e1914e7eb0: the published read-state migration now targets the canonical email_records table and has execution-based upgrade/downgrade coverage; token slices now use full-text offsets so UTF-8 boundaries cannot produce replacement characters. The exact-head CI rerun is in progress.

Copy link
Copy Markdown
Contributor Author

TDD red phase for the remaining local-tokenizer review (head 8cc7e16964449ff06bde62b45046231856eab305): added a provider-boundary regression requiring local embeddinggemma calls to use the model-native /tokenize and /detokenize endpoints before embedding. The implementation will follow the documented llama.cpp contract; current tiktoken fallback remains only for known local-test/offline paths until the green implementation lands.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head repair at 248652dbb0f807ad59187f168dfa9aff9fb9772f: provider embedding responses now require one vector per requested physical input; HTTP clients close when AsyncOpenAI construction or native tokenizer calls fail; tokenizer 404, invalid payload, source mismatch, and cleanup contracts are covered; and Alembic merge upgrade/downgrade execution is verified to perform no schema operations. Focused 20 tests, full backend 1,831 passed / 32 skipped, Ruff, and diff checks pass. Fresh required Checks and current-head review remain the merge gate.

@seonghobae
seonghobae dismissed stale reviews from coderabbitai[bot], opencode-agent[bot], opencode-agent[bot], coderabbitai[bot], coderabbitai[bot], coderabbitai[bot], and opencode-agent[bot] August 22, 2026 07:46

Stale review: all review-thread comments on this PR are resolved and the reviewer's cited commit predates the current head, which passes all non-metadata-gate required checks (verified via gh pr checks and the reviewThreads GraphQL query — 0 unresolved threads). Dismissing as superseded per AGENTS.md stale-review guidance.

@opencode-agent opencode-agent Bot added area: security Security boundary, hardening, or vulnerability prevention priority: medium Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: feature New or expanded product capability labels Aug 22, 2026
@seonghobae

Copy link
Copy Markdown
Contributor Author

Root-repair handoff at 1b422f15e6e5f56be679f691c8ff925c9a420fb1; import runtime reproduction remains pending. Preserve this PR's dedicated-connection and NUL-safe owner-key delta.

Acquisition lines285–298 catches Exception but not asyncio.CancelledError, so cancellation while acquiring bypasses this helper's explicit connection cleanup. Release lines326–338 does not inspect the unlock response and closes normally after uncertainty. Test actual acquisition cancellation, require confirmed unlock, and invalidate uncertain ownership before cleanup can wait or pool the connection. Budget the separate lease connection alongside the already-used work session, including supported one-slot configurations.

Add migrated-PostgreSQL tests around real item commits/rollbacks, same-pool readers, independent-replica reacquisition, cancelled acquisition, failed unlock, and retained imported bytes/identities. Keep tests/test_email_import_service.py and tests/test_emails_api.py coverage; mocked query ordering alone is insufficient.

#1469 exact worker investigation reproduced the original pool-return defect and records cleanup-order pitfalls. Its305-pass/100%-worker-coverage receipt is not this import path's GREEN. No source takeover, copied implementation, approval, closure, or protected-readiness claim.

Normally integrate migration owner #1503 at 19d5860 without discarding #1317 history. Preserve both migration branches with a no-DDL merge revision and retain owner-scoped mail and graph identities.

Record actual bounded-pool, cancellation, lost-connection and signed API evidence in doctoring; keep ADR Proposed and hosted CI prerequisite #1562 explicit. Candidate verification: 242 focused tests passed against fresh and repeated PostgreSQL migrations; no protected merge or release claimed.
@seonghobae
seonghobae changed the base branch from develop to fix/workspace-document-registry-migration September 6, 2026 08:07

Copy link
Copy Markdown
Contributor Author

Supplemental read-only agent review of af362d58190c0bf2ed122d718473fe3c2bd503c4 against first parent 1b422f15e6e5f56be679f691c8ff925c9a420fb1 reported no actionable findings within cancellation cleanup, replacement-connection SQL, the documented settled/read-only caller precondition, and account-scoped graph identities. It also reported three isolated in-memory repeated-cancellation probes passing. The agent did not rerun or independently verify the 242-test PostgreSQL suite, edit the checkout, or mutate GitHub. This comment records bounded review provenance only; it is not a qualifying protected approval or current hosted gate evidence. Existing prerequisite and product acceptance gaps remain as stated in the PR body.

seonghobae added a commit that referenced this pull request Sep 6, 2026
Advance baseline to 1.32 with #1317 af362d5's own 242-test migrated PostgreSQL receipt and #1566 5b5a49c's 47-test source-only playbook receipt. Preserve historical records, full owner deltas, unresolved CI/review/release gates and the Noema domain boundary.
spec.loader.exec_module(revision)
calls = []
operations = SimpleNamespace(
get_bind=lambda: object(),
finish_projection.set()
expected_error = RuntimeError
with pytest.raises(expected_error):
await import_task
assert await _replica_can_import(observer_engine, owner_key) is False
acquire_task.cancel()
with pytest.raises(asyncio.CancelledError):
await acquire_task
else RuntimeError
)
with pytest.raises(expected_error):
await release_task
@seonghobae seonghobae removed the status: needs-review Open pull request requiring current-head review or checks label Sep 6, 2026
@seonghobae seonghobae added status: draft Draft pull request enhancement New feature or request labels Sep 6, 2026 — with ChatGPT Codex Connector
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: security Security boundary, hardening, or vulnerability prevention enhancement New feature or request priority: medium Normal-priority or P2 work status: draft Draft pull request type: feature New or expanded product capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant