Skip to content

feat(agent): tinyagents 1.5 migration wave — vendored SDK, dual-write sessions, goals/todos shadows, journals, middleware dedupe#4473

Draft
senamakel wants to merge 9 commits into
tinyhumansai:mainfrom
senamakel:feat/tinyagents-c0-15-baseline
Draft

feat(agent): tinyagents 1.5 migration wave — vendored SDK, dual-write sessions, goals/todos shadows, journals, middleware dedupe#4473
senamakel wants to merge 9 commits into
tinyhumansai:mainfrom
senamakel:feat/tinyagents-c0-15-baseline

Conversation

@senamakel

@senamakel senamakel commented Jul 3, 2026

Copy link
Copy Markdown
Member

Summary

  • TinyAgents migration wave 1+2 — executes docs/tinyagents-full-migration-plan/CONTINUATION-2026-07.md (C0 baseline + parallel adapter-first slices), all landing in this PR.
  • C0: bumps tinyagents 1.3 → 1.5.0, vendors the SDK as a submodule at vendor/tinyagents with [patch.crates-io] in both Cargo worlds; RepeatedToolFailureMiddleware becomes a thin driver over crate NoProgressTracker; crate with_node_retry seam on delegation + spawn-parallel graphs; docker CI carries the submodule.
  • C1 (04.1): live turns dual-write into the tinyagents Store (session.{stem}.messages + descriptor), flag agent.session_dual_write (default ON) with env kill switch; write-side parity test proves legacy JSONL ↔ store render identical transcripts.
  • C2: thread goals mirrored into crate graph.goals (byte-identical keys, idempotent migration helper) and task board mirrored into crate graph.todos with claim_card CAS shadow — both shadow-mode, legacy authoritative, divergence warn-logged.
  • C3 (partial by design): CacheAlignMiddleware deleted (−147 lines; crate cache guard already installed). Microcompact deletion refused — NOT crate-superseded (corrected in plan); unknown-tool sentinel already gone, ReturnToolError kept deliberately (fix(tinyagents): keep attempted tool name in the timeline for unavailable tools #4419 UX).
  • C4 (05.1): restart-stable {run_id}-evt-{offset} journal event ids, durable status store answering list_by_thread, late-attach replay proven from the store alone.
  • Docs: continuation plan, coverage sweep of previously unreferenced harness files, execution corrections, wave-1 handoff.

Problem

The tinyagents migration (#4249) landed on 1.3; the crate has since shipped 1.4/1.5 with primitives that replace in-house code (graph::goals, graph::todos, NoProgressTracker, resumable graph failures, durable journals). Remaining migration work also needs to modify SDK source and test against OpenHuman in one tree.

Solution

  • Submodule pinned at released v1.5.0; path patch keeps manifest requirement and vendored source in lockstep. Agents/devs can change SDK source in-tree and PR upstream from the submodule.
  • Every runtime slice is adapter-first and flag-gated: dual-writes/shadows mirror into crate stores while legacy stays authoritative; divergence is logged, cutover is a later, isolated flip per slice.
  • Behavior-preserving seams (retry max_attempts=1, tracker-driven nudge/halt with identical steering semantics) adopted now; escalation later.

Submission Checklist

  • Tests added or updated (happy path + at least one failure / edge case) per Testing Strategy — per-slice focused tests: middleware nudge/halt/reset, dual-write parity + kill-switch matrix, goals adapter round-trip via crate reader, todos claim CAS shadow, journal late-attach replay + redaction
  • Diff coverage ≥ 80% — enforced by the coverage-gate job on this PR; targeted module suites run locally per slice
  • Coverage matrix updated — N/A: adapter-first mirrors + dependency vendoring; no user-facing feature rows added/removed
  • All affected feature IDs from the matrix are listed in the PR description under ## RelatedN/A: no matrix rows affected
  • No new external network dependencies introduced (mock backend used per Testing Strategy)
  • Manual smoke checklist updated if this touches release-cut surfaces — N/A: shadow/dual-write paths flag-gated with kill switches; legacy paths authoritative
  • Linked issue closed via Closes #NNN in the ## Related section — N/A: follow-up wave to #4249; no dedicated issue

Impact

  • Runtime: legacy behavior authoritative everywhere; new writes are additive (store mirrors, journals) with per-flag kill switches (OPENHUMAN_SESSION_DUAL_WRITE, shadow flags default OFF where risky).
  • Build: both Cargo worlds resolve tinyagents v1.5.0 (path: vendor/tinyagents); fresh clones/worktrees need git submodule update --init vendor/tinyagents; docker core image build handled in release workflows.
  • Wave 2 (in flight, will extend this PR): 04.2 shadow reads, UsageRecorded dedupe + crate BudgetMiddleware (observe-only), microcompact extraction into the SDK, journal replay RPC.

Related

https://claude.ai/code/session_013uVSkcdR2eP7hW4xm54wb4

senamakel added 9 commits July 3, 2026 11:36
…os, no-progress, session cutover)

Ground-truth audit of post-tinyhumansai#4249 main + re-inventory of tinyagents 1.4.0/1.5.0.
Re-evaluates the deletion ledger's 'never delete' list, adds thread goals /
thread tasks migration onto graph::goals / graph::todos, and sequences the
remaining ~29k-line reclaim (C0-C7).

Claude-Session: https://claude.ai/code/session_013uVSkcdR2eP7hW4xm54wb4
…iles

Adds verdicts for extract_tool/handoff, the four task-local context
carriers, turn_checkpoint, memory_protocol, definition loader/builtins,
and subagent_runner residuals; wires the carriers into C6.

Claude-Session: https://claude.ai/code/session_013uVSkcdR2eP7hW4xm54wb4
…ignore

Bumps the tinyagents dependency from 1.3.0 to 1.5.0 across Cargo.toml and Cargo.lock files. Updates related documentation to reflect the new version. Additionally, adds *.diff to .gitignore to exclude diff files from version control.
…to in-tree source

vendor/tinyagents pinned at v1.5.0 (matches the crates.io requirement);
[patch.crates-io] path override in root and app/src-tauri manifests so
migration agents can modify SDK source in-tree and PR upstream from the
submodule. Both worlds resolve tinyagents v1.5.0 (path); crate checks clean.

Claude-Session: https://claude.ai/code/session_013uVSkcdR2eP7hW4xm54wb4
…NoProgressTracker

Rewrite the repeated-tool-failure circuit breaker as a thin driver over
tinyagents 1.5.0 harness::no_progress::NoProgressTracker instead of the
in-house identical/varied/hard-reject failure ladder it replaces.

The middleware now owns only OpenHuman-side policy: capture the per-call
argument fingerprint in before_tool, feed each outcome into
NoProgressTracker::record, and lower the returned NoProgress verdict into
steering — Nudge -> SteeringCommand::Redirect (structured 'no progress since
step X' corrective), Halt -> record root-cause summary in HaltSummarySlot +
SteeringCommand::Pause + tracker.reset(). Continue is a no-op.

Deletes the duplicated crate-side ladder constants/logic
(NO_PROGRESS_FAILURE_THRESHOLD, HARD_REJECT_REPEAT_THRESHOLD, inline
same_count/consecutive counters + summary wording). Unit tests adapted to the
tracker-driven behavior (halt now emits Pause; a nudge Redirect precedes it).

Claude-Session: https://claude.ai/code/session_013uVSkcdR2eP7hW4xm54wb4
The [patch.crates-io] path override made vendor/tinyagents part of the
cargo graph; the Dockerfile now COPYs vendor/ (needed already at the
dep-cache stage) and both docker jobs init just that submodule after
checkout (targeted init skips the large tauri-cef fork the core image
does not need). All other cargo-running CI jobs already checkout with
submodules: recursive/true; the mobile crates do not depend on the core
crate, so their submodules:false stays.

Claude-Session: https://claude.ai/code/session_013uVSkcdR2eP7hW4xm54wb4
…ion + spawn-parallel graphs

Adopt tinyagents 1.5.0 CompiledGraph::with_node_retry(RetryPolicy) on the
delegation graph (build_delegation_graph) and the live spawn-parallel execution
graph (run_spawn_parallel_execution_graph).

Adapter-first and behavior-preserving: neither graph carried bespoke retry glue,
so the policy is RetryPolicy::default().with_max_attempts(1) — a single attempt,
identical to today's semantics — with backoff sleeping left off (the default).
This lands the crate seam so raising the attempt cap or enabling backoff becomes
a one-line gated follow-up rather than a rewrite.

Claude-Session: https://claude.ai/code/session_013uVSkcdR2eP7hW4xm54wb4
@senamakel senamakel requested a review from a team July 3, 2026 20:45
@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR vendors the tinyagents SDK as a git submodule, updates CI workflows and the Dockerfile to initialize it, patches Cargo manifests to resolve tinyagents from the vendored path, bumps the dependency to 1.5.0, adopts new crate retry and no-progress-tracker APIs in graph/middleware code, and updates migration documentation.

Changes

Vendoring, build wiring, and crate upgrade

Layer / File(s) Summary
Submodule registration and pointer
.gitmodules, .gitignore, vendor/tinyagents
Registers vendor/tinyagents as a git submodule, ignores *.diff files, and pins the submodule to a specific commit.
CI/Docker init and Cargo patching
.github/workflows/release-production.yml, .github/workflows/release-staging.yml, Dockerfile, Cargo.toml, app/src-tauri/Cargo.toml
Adds submodule init steps to release workflows, copies vendor/ into the Docker builder stage, patches crates-io to resolve tinyagents from the vendored path, and bumps the version to 1.5.0 with sqlite feature.
Migration plan documentation
docs/tinyagents-full-migration-plan/*, docs/tinyagents-migration-spec.md, docs/tinyagents-session-migration-design.md, gitbooks/developing/architecture/agent-harness.md
Updates version references from 1.3 to 1.5.0 across migration docs, adds a continuation plan and a session handoff document describing remaining migration workstreams.

Crate API adoption in graph/middleware code

Layer / File(s) Summary
Per-node retry policy
src/openhuman/agent_orchestration/spawn_parallel_graph.rs, src/openhuman/tinyagents/delegation.rs
Wires RetryPolicy::default().with_max_attempts(1) via .with_node_retry(...) into compiled graphs, preserving single-attempt semantics.
NoProgressTracker-based failure middleware
src/openhuman/tinyagents/middleware.rs
Replaces internal FailureState logic in RepeatedToolFailureMiddleware with the crate's NoProgressTracker/ToolAttempt escalation ladder, and updates tests to use a drain_pause_count helper.

Estimated code review effort: 3 (Moderate) | ~30 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Tool as Tool Call
  participant Middleware as RepeatedToolFailureMiddleware
  participant Tracker as NoProgressTracker
  participant Steering as SteeringHandle

  Tool->>Middleware: after_tool(result/error)
  Middleware->>Tracker: record(step, ToolAttempt)
  Tracker-->>Middleware: NoProgress::Continue/Nudge/Halt
  alt Nudge
    Middleware->>Steering: SteeringCommand::Redirect
  else Halt
    Middleware->>Middleware: store halt summary
    Middleware->>Steering: SteeringCommand::Pause
    Middleware->>Tracker: reset
  end
Loading

Possibly related issues

Possibly related PRs

  • tinyhumansai/openhuman#4372: Touches the same src/openhuman/tinyagents/middleware.rs RepeatedToolFailureMiddleware and related node-retry codepaths modified in this PR.

Suggested labels: rust-core, feature

Suggested reviewers: M3gA-Mind

Poem

A submodule hops into the burrow's den,
tinyagents 1.5 arrives again,
Retry policies guard each graph node's stride,
NoProgressTracker nudges failures aside.
With docs refreshed and vendored code in tow,
this rabbit thumps its foot — onward we go! 🐰📦

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 reflects the main change: migrating TinyAgents to 1.5 with vendoring and related graph/middleware updates.

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

@coderabbitai coderabbitai Bot added feature Net-new user-facing capability or product behavior. rust-core Core Rust runtime in src/: CLI, core_server, shared infrastructure. labels Jul 3, 2026

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5a1227ddf2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Cargo.toml
# immediately, and PR the diff upstream from the submodule. Keep the submodule
# version in lockstep with the `tinyagents` requirement above. After cloning:
# `git submodule update --init vendor/tinyagents` (worktrees included).
tinyagents = { path = "vendor/tinyagents" }

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Run Rust CI when vendored TinyAgents changes

Because this patch makes both Cargo worlds resolve tinyagents from vendor/tinyagents, SDK changes can now change the compiled product without touching Cargo.toml, Cargo.lock, or src/**. I checked the PR CI path filters in .github/workflows/pr-ci.yml and they do not include vendor/tinyagents or .gitmodules, so a PR that only bumps the submodule pointer would skip the Rust quality/coverage lanes and the Playwright artifact build/cache despite changing a compiled dependency. Add the submodule path (and usually .gitmodules) to the Rust/Tauri/playwright filters and related artifact cache keys so vendored SDK updates are actually built and tested.

Useful? React with 👍 / 👎.

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
Cargo.toml (1)

334-339: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Automate the tinyagents lockstep check

The submodule pin and tinyagents = "1.5.0" requirement are coupled only by comment today; add a CI assertion that compares vendor/tinyagents/Cargo.toml’s version with the root and app/src-tauri/Cargo.toml requirements.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Cargo.toml` around lines 334 - 339, Add a CI assertion for the tinyagents
lockstep contract so it no longer relies on the comment in Cargo.toml. Create a
check that reads the version from vendor/tinyagents/Cargo.toml and compares it
against both the root tinyagents requirement and the app/src-tauri/Cargo.toml
requirement, failing the build when they diverge. Use the existing tinyagents
dependency declarations and the vendored submodule path as the identifiers to
wire this into the current CI/test flow.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/tinyagents-full-migration-plan/00-baseline.md`:
- Around line 3-18: Update the baseline doc to match the current tinyagents
1.5.0 state: the section still references a 1.3.0 delta and an inventory
refreshed against 1.3.0, so rename that delta section in 00-baseline.md and
revise the gap notes for the newer API surface. Make sure the updated plan
explicitly covers the 1.4/1.5 additions referenced by the review, including
CompiledGraph::with_node_retry and NoProgressTracker.

In `@docs/tinyagents-full-migration-plan/CONTINUATION-2026-07.md`:
- Around line 15-19: The plan text is inconsistent with the repo’s pinned
baseline: the 00 baseline row and the C0 wording still reference 1.3.0/1.4/1.5
migration steps. Update the `CONTINUATION-2026-07` markdown so the baseline
section and any surrounding “ground truth” notes reflect the already-pinned
`tinyagents = 1.5.0`, and remove or rephrase the stale bump language to match
the current state. Focus on the baseline table entries and any adjacent
narrative that describes the version target.

---

Nitpick comments:
In `@Cargo.toml`:
- Around line 334-339: Add a CI assertion for the tinyagents lockstep contract
so it no longer relies on the comment in Cargo.toml. Create a check that reads
the version from vendor/tinyagents/Cargo.toml and compares it against both the
root tinyagents requirement and the app/src-tauri/Cargo.toml requirement,
failing the build when they diverge. Use the existing tinyagents dependency
declarations and the vendored submodule path as the identifiers to wire this
into the current CI/test flow.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c011176f-f29e-406f-a23f-cc273e072b5c

📥 Commits

Reviewing files that changed from the base of the PR and between 1de7506 and 5a1227d.

⛔ Files ignored due to path filters (2)
  • Cargo.lock is excluded by !**/*.lock
  • app/src-tauri/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (21)
  • .github/workflows/release-production.yml
  • .github/workflows/release-staging.yml
  • .gitignore
  • .gitmodules
  • Cargo.toml
  • Dockerfile
  • app/src-tauri/Cargo.toml
  • docs/tinyagents-full-migration-plan/00-baseline.md
  • docs/tinyagents-full-migration-plan/01-tooling/README.md
  • docs/tinyagents-full-migration-plan/04-sessions/03-checkpointer.md
  • docs/tinyagents-full-migration-plan/10-registry.md
  • docs/tinyagents-full-migration-plan/CONTINUATION-2026-07.md
  • docs/tinyagents-full-migration-plan/HANDOFF-2026-07-03.md
  • docs/tinyagents-full-migration-plan/README.md
  • docs/tinyagents-migration-spec.md
  • docs/tinyagents-session-migration-design.md
  • gitbooks/developing/architecture/agent-harness.md
  • src/openhuman/agent_orchestration/spawn_parallel_graph.rs
  • src/openhuman/tinyagents/delegation.rs
  • src/openhuman/tinyagents/middleware.rs
  • vendor/tinyagents

Comment on lines +3 to +18
Current status (2026-07-03): baseline dependency alignment is complete in both
Cargo worlds. `tinyagents 1.5.0` is resolved with the `sqlite` feature,
OpenHuman pins `rusqlite = "=0.40.0"`, both worlds patch through
`vendor/rusqlite-0.40.0` and `vendor/libsqlite3-sys-0.38.0`, and the SDK-gaps
inventory has been refreshed against the published 1.3.0 crate source.

## Steps

1. **Bump `tinyagents` to `"1.3"`** (done in both Cargo worlds — root and
1. **Bump `tinyagents` to `"1.5.0"`** (done in both Cargo worlds — root and
`app/src-tauri/`). Known 1.1→1.2 break already handled
(`MessageDelta::text` ctor). Note: the `openai` crate feature was removed
after 1.2.0 (1.2.1+ features are only `sqlite`/`repl`) — we never enabled
it, so no impact. See "1.3.0 delta" below for new API this plan uses.
2. **Align rusqlite to 0.40** in both worlds (`Cargo.toml` root and
`app/src-tauri/Cargo.toml`). OpenHuman pins `rusqlite = "=0.40.0"` and
enables `tinyagents = { version = "1.3", features = ["sqlite"] }`.
enables `tinyagents = { version = "1.5.0", features = ["sqlite"] }`.

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.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
rg -n 'NoProgressTracker|with_node_retry|1\.4\.0|1\.5\.0' docs/tinyagents-full-migration-plan/CONTINUATION-2026-07.md docs/tinyagents-full-migration-plan/HANDOFF-2026-07-03.md 2>/dev/null

Repository: tinyhumansai/openhuman

Length of output: 4144


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== baseline excerpts ==\n'
sed -n '1,120p' docs/tinyagents-full-migration-plan/00-baseline.md | cat -n

printf '\n== continuation excerpts ==\n'
sed -n '1,120p' docs/tinyagents-full-migration-plan/CONTINUATION-2026-07.md | cat -n

printf '\n== handoff excerpts ==\n'
sed -n '1,120p' docs/tinyagents-full-migration-plan/HANDOFF-2026-07-03.md | cat -n

Repository: tinyhumansai/openhuman

Length of output: 31494


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== baseline references to delta/gaps ==\n'
rg -n '1\.3\.0 delta|SDK-gaps|NoProgressTracker|with_node_retry|1\.4\.0|1\.5\.0' docs/tinyagents-full-migration-plan/00-baseline.md docs/tinyagents-full-migration-plan/CONTINUATION-2026-07.md docs/tinyagents-full-migration-plan/HANDOFF-2026-07-03.md

Repository: tinyhumansai/openhuman

Length of output: 5066


Update 00-baseline.md to the 1.4/1.5 delta.
The baseline still points readers to a 1.3.0 delta and says the SDK-gaps inventory was refreshed against 1.3.0, but this plan is already on tinyagents 1.5.0. Rename that section and refresh the gap notes so the newer APIs (CompiledGraph::with_node_retry, NoProgressTracker) are covered.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/tinyagents-full-migration-plan/00-baseline.md` around lines 3 - 18,
Update the baseline doc to match the current tinyagents 1.5.0 state: the section
still references a 1.3.0 delta and an inventory refreshed against 1.3.0, so
rename that delta section in 00-baseline.md and revise the gap notes for the
newer API surface. Make sure the updated plan explicitly covers the 1.4/1.5
additions referenced by the review, including CompiledGraph::with_node_retry and
NoProgressTracker.

Comment on lines +15 to +19
| 00 baseline | Done (1.3.0 + sqlite, rusqlite 0.40) — **needs re-bump to 1.4/1.5** |
| 01 tooling | Mostly done. Live: crate-internal tool side-lookup (01.1), `tool_filter.rs` 299 + `tool_prep.rs` 344 (01.3) |
| 02 models | Mostly done. Live: `reliable.rs` 900 (gated on re-architecture), `ThinkingForwarder` residual seams |
| 03 context/cache | Done. `context/` is 1.3k of product prompt/stats state |
| 04 sessions | **Primary unfinished work.** Live path is 100% legacy: `transcript.rs` 1347, `migration.rs` 373, `session_io.rs` 463, `session_db/` 4.5k, `subagent_sessions/` 653, `session_import/` 1.9k. Crate `Store`/`AppendStore` used only by the write-only importer. 04.3 checkpointer swap IS done in code (`tinyagents/checkpoint.rs` deleted) — the 04.3 doc text is stale |

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.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Update the plan text to match the already-pinned 1.5.0 baseline.

This still describes C0 as a 1.4 bump / later 1.5 bump and labels 00 baseline as 1.3.0, but the repo and handoff already pin tinyagents = 1.5.0. That makes the “ground truth” section self-contradictory for the next reader.

Also applies to: 135-143

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/tinyagents-full-migration-plan/CONTINUATION-2026-07.md` around lines 15
- 19, The plan text is inconsistent with the repo’s pinned baseline: the 00
baseline row and the C0 wording still reference 1.3.0/1.4/1.5 migration steps.
Update the `CONTINUATION-2026-07` markdown so the baseline section and any
surrounding “ground truth” notes reflect the already-pinned `tinyagents =
1.5.0`, and remove or rephrase the stale bump language to match the current
state. Focus on the baseline table entries and any adjacent narrative that
describes the version target.

@senamakel senamakel marked this pull request as draft July 3, 2026 20:57
@senamakel senamakel changed the title feat(core): tinyagents 1.5.0 baseline — vendored submodule, NoProgressTracker, graph node-retry seam (C0) feat(agent): tinyagents 1.5 migration wave — vendored SDK, dual-write sessions, goals/todos shadows, journals, middleware dedupe Jul 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Net-new user-facing capability or product behavior. rust-core Core Rust runtime in src/: CLI, core_server, shared infrastructure.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant