Skip to content

fix(code): use SDK pin as effective editable version - #4949

Merged
Mason Daugherty (mdrxy) merged 7 commits into
mainfrom
mdrxy/code/effective-sdk-pin-version
Jul 22, 2026
Merged

fix(code): use SDK pin as effective editable version#4949
Mason Daugherty (mdrxy) merged 7 commits into
mainfrom
mdrxy/code/effective-sdk-pin-version

Conversation

@mdrxy

@mdrxy Mason Daugherty (mdrxy) commented Jul 22, 2026

Copy link
Copy Markdown
Member

Editable deepagents-code installs in the monorepo can run the SDK workspace at HEAD even though the SDK's source version marker still names the latest stable release and dcode's live pyproject.toml pins a newer SDK alpha. /version, /doctor, and trace metadata previously treated that normal checkout as an incompatible old SDK.

Diagnostics now represent this specific checkout as an editable form of the pinned published baseline. The user-facing and trace version gains a PEP 440 local suffix, while the raw source marker remains visible:

deepagents-code version: 0.1.45
deepagents (SDK) version: 0.7.0a8+editable (workspace HEAD; source marker: 0.6.12)
dcode_client_deepagents_version: 0.7.0a8+editable

The published 0.7.0a8 baseline is still used for SDK release-age checks. For editable dcode installs, the requirement comes from the checkout's current pyproject.toml rather than potentially stale installed metadata.

This inference is deliberately narrow: both packages must be editable sibling package roots in the same monorepo, the SDK source marker must be parseable, the dcode requirement must be one exact pin, and that pin must be newer than both observed SDK markers. Unrelated or genuinely stale editable SDK checkouts, ranged requirements, older or equal pins, and missing or malformed source markers keep the observed version and surface a mismatch; /doctor also marks an invalid source marker unhealthy. PEP 610 paths are normalized so the sibling check behaves consistently for Windows drive-path forms.

Test plan
  • python -m pytest libs/code/tests/unit_tests/test_extras_info.py libs/code/tests/unit_tests/test_version.py libs/code/tests/unit_tests/test_doctor.py libs/code/tests/unit_tests/tui/test_textual_adapter.py (424 passed)
  • make -C libs/code lint_diff
  • make -C libs/code type
  • deepagents-code pre-commit hooks

@github-actions github-actions Bot added dcode Related to `deepagents-code` fix A bug fix (PATCH) internal User is a member of the `langchain-ai` GitHub organization size: M 200-499 LOC labels Jul 22, 2026

@open-swe open-swe 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.

Open SWE Review found 1 potential issue.

Open in WebView Open SWE trace

Comment thread libs/code/deepagents_code/extras_info.py

@open-swe open-swe 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.

Open SWE Review found 1 potential issue.

Open in WebView Open SWE trace

Comment thread libs/code/deepagents_code/extras_info.py Outdated
@github-actions github-actions Bot added size: L 500-999 LOC and removed size: M 200-499 LOC labels Jul 22, 2026
@mdrxy
Mason Daugherty (mdrxy) merged commit 1b270c8 into main Jul 22, 2026
54 checks passed
@mdrxy
Mason Daugherty (mdrxy) deleted the mdrxy/code/effective-sdk-pin-version branch July 22, 2026 20:17
Mason Daugherty (mdrxy) pushed a commit that referenced this pull request Jul 24, 2026
> [!CAUTION]
> Merging this PR will automatically publish to **PyPI** and create a
**GitHub release**.

For the full release process, see
[`.github/RELEASING.md`](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md).

---

_Release notes preview: keep this section in sync with the package
`CHANGELOG.md`. The published GitHub release body is extracted from the
merged `CHANGELOG.md` by `release.yml`, not from this PR description._

---


##
[0.1.46](deepagents-code==0.1.45...deepagents-code==0.1.46)
(2026-07-24)

### Highlights

- Auto mode is now generally available.
[#4957](#4957)
- Added configurable Auto goal-criteria acceptance.
[#4940](#4940)
- Improved Auto behavior by authorizing actions from active goal/rubric
directives, avoiding redundant approval prompts, showing the enable
notice only on first global enable, deduplicating classifier-unavailable
transcript spam, logging underlying classifier failures, and reporting
classifier timeout budgets.
[#5017](#5017)
[#4993](#4993)
[#5012](#5012)
[#5013](#5013)
[#5011](#5011)
[#5025](#5025)
- Added Hooks v2 capability snapshots and session transcripts, and
hardened Hooks v2 command execution.
[#4916](#4916)
[#4918](#4918)
[#4917](#4917)
- Raised the agent recursion limit to 2000 and made it configurable.
[#4994](#4994)

### Improvements and fixes

- Let the rubric grader inspect working-directory files, show rubric
grader defaults, and improved `/rubric` help and empty-state messaging.
[#4835](#4835)
[#4966](#4966)
[#5015](#5015)
- Unified goal activation signaling.
[#4980](#4980)
- Made Version, Model, and CWD copyable in the Debug Console.
[#4975](#4975)
- Improved `config get` output when a key is missing.
[#4976](#4976)
- Aborted YOLO launch on `Ctrl+C`/`Ctrl+D` and made the YOLO warning
friendlier for new users.
[#4953](#4953)
[#4950](#4950)
- Updated LangSmith handling: secret redaction is disabled by default,
`/trace` now flags empty env overrides that shadow the LangSmith key,
and the default US endpoint is no longer treated as a custom target.
[#4970](#4970)
[#4996](#4996)
[#5022](#5022)
- Injected OpenAI `prompt_cache_key` for any OpenAI-provider endpoint.
[#4995](#4995)
- Improved tool and schema presentation: finished calls stay on the live
tool-group line, first-party tool schemas now include field
descriptions, and `web_search`/`fetch_url` tool descriptions were
trimmed. [#4927](#4927)
[#5019](#5019)
[#5016](#5016)
- Omitted `plugins/` and `conversation_history/` from the `/agent`
picker. [#4991](#4991)
- Made selector modal backdrop dimming consistent.
[#4990](#4990)
- Restored the `"Server log preserved at:"` notice on exit.
[#4999](#4999)
- Used the SDK pin as the effective editable version.
[#4949](#4949)

_End release notes preview._

---

> [!NOTE]
> A **New Contributors** section is appended to the GitHub release notes
automatically at publish time (see [Release
Pipeline](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md#release-pipeline),
step 2).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: langchain-oss-automated-triage[bot] <248757908+langchain-oss-automated-triage[bot]@users.noreply.github.com>
Marcelo5444 pushed a commit to Marcelo5444/deepagents that referenced this pull request Jul 30, 2026
Editable `deepagents-code` installs in the monorepo can run the SDK
workspace at HEAD even though the SDK's source version marker still
names the latest stable release and dcode's live `pyproject.toml` pins a
newer SDK alpha. `/version`, `/doctor`, and trace metadata previously
treated that normal checkout as an incompatible old SDK.

Diagnostics now represent this specific checkout as an editable form of
the pinned published baseline. The user-facing and trace version gains a
PEP 440 local suffix, while the raw source marker remains visible:

```text
deepagents-code version: 0.1.45
deepagents (SDK) version: 0.7.0a8+editable (workspace HEAD; source marker: 0.6.12)
dcode_client_deepagents_version: 0.7.0a8+editable
```

The published `0.7.0a8` baseline is still used for SDK release-age
checks. For editable dcode installs, the requirement comes from the
checkout's current `pyproject.toml` rather than potentially stale
installed metadata.

This inference is deliberately narrow: both packages must be editable
sibling package roots in the same monorepo, the SDK source marker must
be parseable, the dcode requirement must be one exact pin, and that pin
must be newer than both observed SDK markers. Unrelated or genuinely
stale editable SDK checkouts, ranged requirements, older or equal pins,
and missing or malformed source markers keep the observed version and
surface a mismatch; `/doctor` also marks an invalid source marker
unhealthy. PEP 610 paths are normalized so the sibling check behaves
consistently for Windows drive-path forms.

<details>
<summary>Test plan</summary>

- `python -m pytest libs/code/tests/unit_tests/test_extras_info.py
libs/code/tests/unit_tests/test_version.py
libs/code/tests/unit_tests/test_doctor.py
libs/code/tests/unit_tests/tui/test_textual_adapter.py` (424 passed)
- `make -C libs/code lint_diff`
- `make -C libs/code type`
- `deepagents-code` pre-commit hooks

</details>
Marcelo5444 pushed a commit to Marcelo5444/deepagents that referenced this pull request Jul 30, 2026
> [!CAUTION]
> Merging this PR will automatically publish to **PyPI** and create a
**GitHub release**.

For the full release process, see
[`.github/RELEASING.md`](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md).

---

_Release notes preview: keep this section in sync with the package
`CHANGELOG.md`. The published GitHub release body is extracted from the
merged `CHANGELOG.md` by `release.yml`, not from this PR description._

---


##
[0.1.46](langchain-ai/deepagents@deepagents-code==0.1.45...deepagents-code==0.1.46)
(2026-07-24)

### Highlights

- Auto mode is now generally available.
[langchain-ai#4957](langchain-ai#4957)
- Added configurable Auto goal-criteria acceptance.
[langchain-ai#4940](langchain-ai#4940)
- Improved Auto behavior by authorizing actions from active goal/rubric
directives, avoiding redundant approval prompts, showing the enable
notice only on first global enable, deduplicating classifier-unavailable
transcript spam, logging underlying classifier failures, and reporting
classifier timeout budgets.
[langchain-ai#5017](langchain-ai#5017)
[langchain-ai#4993](langchain-ai#4993)
[langchain-ai#5012](langchain-ai#5012)
[langchain-ai#5013](langchain-ai#5013)
[langchain-ai#5011](langchain-ai#5011)
[langchain-ai#5025](langchain-ai#5025)
- Added Hooks v2 capability snapshots and session transcripts, and
hardened Hooks v2 command execution.
[langchain-ai#4916](langchain-ai#4916)
[langchain-ai#4918](langchain-ai#4918)
[langchain-ai#4917](langchain-ai#4917)
- Raised the agent recursion limit to 2000 and made it configurable.
[langchain-ai#4994](langchain-ai#4994)

### Improvements and fixes

- Let the rubric grader inspect working-directory files, show rubric
grader defaults, and improved `/rubric` help and empty-state messaging.
[langchain-ai#4835](langchain-ai#4835)
[langchain-ai#4966](langchain-ai#4966)
[langchain-ai#5015](langchain-ai#5015)
- Unified goal activation signaling.
[langchain-ai#4980](langchain-ai#4980)
- Made Version, Model, and CWD copyable in the Debug Console.
[langchain-ai#4975](langchain-ai#4975)
- Improved `config get` output when a key is missing.
[langchain-ai#4976](langchain-ai#4976)
- Aborted YOLO launch on `Ctrl+C`/`Ctrl+D` and made the YOLO warning
friendlier for new users.
[langchain-ai#4953](langchain-ai#4953)
[langchain-ai#4950](langchain-ai#4950)
- Updated LangSmith handling: secret redaction is disabled by default,
`/trace` now flags empty env overrides that shadow the LangSmith key,
and the default US endpoint is no longer treated as a custom target.
[langchain-ai#4970](langchain-ai#4970)
[langchain-ai#4996](langchain-ai#4996)
[langchain-ai#5022](langchain-ai#5022)
- Injected OpenAI `prompt_cache_key` for any OpenAI-provider endpoint.
[langchain-ai#4995](langchain-ai#4995)
- Improved tool and schema presentation: finished calls stay on the live
tool-group line, first-party tool schemas now include field
descriptions, and `web_search`/`fetch_url` tool descriptions were
trimmed. [langchain-ai#4927](langchain-ai#4927)
[langchain-ai#5019](langchain-ai#5019)
[langchain-ai#5016](langchain-ai#5016)
- Omitted `plugins/` and `conversation_history/` from the `/agent`
picker. [langchain-ai#4991](langchain-ai#4991)
- Made selector modal backdrop dimming consistent.
[langchain-ai#4990](langchain-ai#4990)
- Restored the `"Server log preserved at:"` notice on exit.
[langchain-ai#4999](langchain-ai#4999)
- Used the SDK pin as the effective editable version.
[langchain-ai#4949](langchain-ai#4949)

_End release notes preview._

---

> [!NOTE]
> A **New Contributors** section is appended to the GitHub release notes
automatically at publish time (see [Release
Pipeline](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md#release-pipeline),
step 2).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: langchain-oss-automated-triage[bot] <248757908+langchain-oss-automated-triage[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dcode Related to `deepagents-code` fix A bug fix (PATCH) internal User is a member of the `langchain-ai` GitHub organization size: L 500-999 LOC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant