Skip to content

fix: allow pydantic-settings 2.14 - #75

Merged
sampsre merged 3 commits into
mainfrom
samp/fix/relax-pydantic-settings
Oct 30, 2026
Merged

sampsre merged 3 commits into
mainfrom
samp/fix/relax-pydantic-settings

Conversation

@sampsre

@sampsre sampsre commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

what

Relax pydantic-settings from >=2.13,<2.14 to >=2.13,<2.15 and update the lockfile to 2.14.2. Retain support for 2.13 and the direct nested-command dispatch introduced in #49. Keep 2.15 and later excluded pending validation.

Update the Python and uv tool pins to 3.12.16 and 0.13.6.

why

Chainlit 2.12 requires pydantic-settings >=2.14.2, so the current cap prevents it from sharing an environment with stacklet-mcp. The existing CLI workaround remains compatible with 2.14.2. This allows stacklet/platform#5404 to replace its temporary dependency override after this change merges.

CI's shared bootstrap fails before lint or tests because Python 3.12.10 has no build for the current Ubuntu 26.04 runner. Python 3.12.16 has a supported build; uv 0.13.6 also knows how to provision that release.

testing

  • just test-coverage: 258 passed on Python 3.12.16, with 98.40% coverage, including nested CLI commands and settings.
  • just lint, uv lock --check and git diff --check passed.
  • uv pip compile resolved the candidate package alongside Chainlit 2.12.0 and pydantic-settings 2.14.2 without overrides.

docs

Added a compatibility note under Next Release in NEWS.md.

@sampsre
sampsre requested a review from a team as a code owner October 30, 2026 17:51

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

No issues found across 3 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.
Architecture diagram
sequenceDiagram
    participant App as Application Env
    participant MCPServer as stacklet-mcp
    participant PydSettings as pydantic-settings
    participant Chainlit as Chainlit App
    participant Lock as uv Lockfile

    Note over App,Lock: Runtime Dependency Compatibility

    App->>MCPServer: Install/import stacklet-mcp
    MCPServer->>PydSettings: Load settings (v2.13 or v2.14)
    PydSettings-->>MCPServer: Settings instance
    MCPServer->>MCPServer: Nested-command dispatch (CLI)

    alt Shared environment with Chainlit 2.12
        App->>Chainlit: Install/import Chainlit
        Chainlit->>PydSettings: Require pydantic-settings >=2.14.2
        App->>Lock: Resolve dependency graph
        Lock->>PydSettings: Satisfy both constraints (>=2.13,<2.15)
        PydSettings-->>Lock: 2.14.2 selected
        Lock-->>App: Single shared env
    else No Chainlit present
        App->>Lock: Resolve stacklet-mcp only
        Lock->>PydSettings: Accept 2.13 or 2.14
        PydSettings-->>Lock: Compatible version
    end

    Note over MCSP,Chainlit: Future versions excluded pending validation

    MCPServer->>PydSettings: Constraint excludes >=2.15
    Chainlit->>PydSettings: Constraint includes 2.14.x
    PydSettings-->>MCPServer: 2.14.2 works (validated)
    PydSettings-->>Chainlit: 2.14.2 works (required)
Loading

Re-trigger cubic

@jtroup jtroup 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.

Thanks @sampsre

@sampsre
sampsre merged commit 0a97cc3 into main Oct 30, 2026
6 checks passed
@sampsre
sampsre deleted the samp/fix/relax-pydantic-settings branch October 30, 2026 19:00
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.

2 participants