Skip to content

[WIP] Persist resolved model outlets with single-value storage - #4079

Closed
JasonW404 wants to merge 8 commits into
feature/model-profile-compositionfrom
feature/model-outlet-storage
Closed

JasonW404 wants to merge 8 commits into
feature/model-profile-compositionfrom
feature/model-outlet-storage

Conversation

@JasonW404

@JasonW404 JasonW404 commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

GitHub native stack

Stack #4080 targets develop, in order: #4072 → #4074 → #4076 → #4078 → #4079. All five PRs remain Draft. The stack is registered with GitHub, not represented only by titles or description links.

#4072 combines the contracts formerly split into #4071 with the TOML catalog/reader. #4071 is closed as superseded; its commits remain in #4072. No product commits were rewritten for this consolidation.

Purpose

Persist resolved model outlet snapshots in existing model_record_t, without recomposing TOML when loading a saved outlet.

Changes

  • Add nullable capability and parameter columns, protocol/schema versions and configuration revision through a new versioned SQL migration. No atomic profile tables.
  • Store each configuration value in one place; preserve zero, false, omitted values and explicit JSON null. Restore integer sampling schemas correctly from PostgreSQL FLOAT columns.
  • Encode and validate the remaining rules, instruction mapping, binding versions and provenance in bounded JSON. Credentials stay in existing credential columns and are represented by references in runtime snapshots.
  • Add tenant-scoped create/read/update operations with atomic optimistic revision checks, soft-delete filtering, caller-owned transactions and sanitized database exceptions.
  • Keep existing model CRUD routes unchanged. New persistence functions are available for the upcoming unified onboarding service.

Verification

  • Local traditional UT: 761 passed across SDK model_service and existing/new backend model database tests.
  • Ruff, diff check and complete formal asset implementation validation passed.
  • MOP-D3-001: 3 real PostgreSQL integration tests passed; committed restoration, transaction ownership, stale writers, tenant/deletion isolation, rollback and sanitized SQL failure.
  • MOS-D5-001: 2 real PostgreSQL deployment tests passed; legacy value preservation, actual types/defaults/comments, idempotence, rollback and recovery.
  • MPC-D1-001: composition regression passed.
  • Clean nexent-test snapshot restored, linked worktree mounted natively; main/web/mcp images built; infrastructure/application/supabase deployed using repository scripts.
  • Installed SDK source hashes, catalog, codecs and FLOAT restoration checked in the built main image. Required test accounts and service health passed. Nexent homepage loaded in the built-in browser.

Scope and remaining work

Draft member of native Stack #4080, based on #4078. This slice does not claim complete legacy outlet data migration, new onboarding/session APIs, provider transport adapters, NativeAgent or new UI. Those remain part of the approved plan. Unit, main, MCP and data-process CI workflows passed. Codecov PR report: 99.67267% patch coverage.

@codecov

codecov Bot commented Oct 13, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 99.67267% with 2 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...t/core/model_service/profiles/outlet_parameters.py 98.27% 0 Missing and 1 partial ⚠️
...nt/core/model_service/profiles/resolved_profile.py 99.29% 0 Missing and 1 partial ⚠️

📢 Thoughts on this report? Let us know!

@JasonW404
JasonW404 removed this pull request from stack #4080 October 13, 2026 09:43
@JasonW404

Copy link
Copy Markdown
Member Author

Superseded by #4082 to reduce review overhead. All commits are already present in that consolidated Draft PR; no code or verification evidence has been discarded. Native GitHub Stack #4086 now contains #4078 → #4082 → #4083.

@JasonW404 JasonW404 closed this Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant