Skip to content

Commit 1c0ac68

Browse files
committed
code quality improvements
1 parent 0e82582 commit 1c0ac68

29 files changed

Lines changed: 324 additions & 40 deletions

File tree

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
enable-cache: true
3434

3535
- name: Install Dependencies
36-
run: uv sync --all-extras
36+
run: uv sync --frozen --all-extras
3737

3838
- name: Check Formatting
3939
run: uv run ruff format --check
@@ -65,9 +65,9 @@ jobs:
6565
local pyproject_path="$project_dir/pyproject.toml"
6666
6767
if grep -Eq '^\[project\.optional-dependencies\]' "$pyproject_path"; then
68-
uv sync --project "$project_dir" --all-extras
68+
uv sync --project "$project_dir" --frozen --all-extras
6969
else
70-
uv sync --project "$project_dir"
70+
uv sync --project "$project_dir" --frozen
7171
fi
7272
}
7373

.github/workflows/publish.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ on:
88

99
permissions:
1010
contents: read
11+
id-token: write
1112

1213
concurrency:
1314
group: publish-${{ github.workflow }}-${{ github.ref }}
@@ -17,8 +18,6 @@ jobs:
1718
publish:
1819
name: Build And Publish Workspace
1920
runs-on: ubuntu-latest
20-
env:
21-
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_TOKEN }}
2221
steps:
2322
- name: Check Out Repository
2423
uses: actions/checkout@v6
@@ -35,7 +34,7 @@ jobs:
3534

3635
- name: Validate Release
3736
run: |
38-
uv sync --all-extras
37+
uv sync --frozen --all-extras
3938
make prod
4039
4140
- name: Build And Publish Root, Adapter, Helper, And Transport Projects
@@ -59,9 +58,9 @@ jobs:
5958
local pyproject_path="$project_dir/pyproject.toml"
6059
6160
if grep -Eq '^\[project\.optional-dependencies\]' "$pyproject_path"; then
62-
uv sync --project "$project_dir" --all-extras
61+
uv sync --project "$project_dir" --frozen --all-extras
6362
else
64-
uv sync --project "$project_dir"
63+
uv sync --project "$project_dir" --frozen
6564
fi
6665
}
6766
@@ -70,5 +69,5 @@ jobs:
7069
sync_project "$project_dir"
7170
rm -rf "$project_dir/dist"
7271
uv build --project "$project_dir" --out-dir "$project_dir/dist"
73-
uv publish "$project_dir"/dist/*
72+
uv publish --trusted-publishing always "$project_dir"/dist/*
7473
done < <(project_dirs)

COVERAGE

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
Line coverage: 100.00% (8953 / 8953)
2-
Branch coverage: 100.00% (2996 / 2996)
1+
Line coverage: 100.00% (8999 / 8999)
2+
Branch coverage: 100.00% (3012 / 3012)

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
ACP Kit is the adapter toolkit and monorepo for exposing existing agent runtimes through ACP without inventing runtime features that are not really there.
66

7-
Today the repo ships two production-grade adapter families:
7+
Today the repo ships two maintained adapter families:
88

99
- `pydantic-acp`
1010
- `langchain-acp`
@@ -444,6 +444,7 @@ Top-level docs:
444444
- [LangChain ACP Overview](https://vcoderun.github.io/acpkit/langchain-acp/)
445445
- [Helpers](https://vcoderun.github.io/acpkit/helpers/)
446446
- [acpremote Overview](https://vcoderun.github.io/acpkit/acpremote/)
447+
- [Security Guidance](https://vcoderun.github.io/acpkit/security/)
447448
- [AdapterConfig](https://vcoderun.github.io/acpkit/pydantic-acp/adapter-config/)
448449
- [Plans, Thinking, and Approvals](https://vcoderun.github.io/acpkit/pydantic-acp/plans-thinking-approvals/)
449450
- [Prompt Resources and Context](https://vcoderun.github.io/acpkit/pydantic-acp/prompt-resources/)

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.9.4
1+
0.9.5

docs/about/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ Today it ships:
2525
The repository currently contains two adapter packages, a root CLI package, and two helper packages:
2626

2727
- `pydantic-acp`
28-
production-grade ACP adapter for `pydantic_ai.Agent`
28+
maintained ACP adapter for `pydantic_ai.Agent`
2929
- `langchain-acp`
30-
production-grade ACP adapter for LangChain, LangGraph, and DeepAgents graphs
30+
maintained ACP adapter for LangChain, LangGraph, and DeepAgents graphs
3131
- `acpkit`
3232
root CLI, target resolver, and launch helpers
3333
- `codex-auth-helper`

docs/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ title: ACP Kit
88

99
ACP Kit is the adapter toolkit and monorepo for exposing existing agent runtimes through ACP without inventing runtime behavior the source framework does not actually own.
1010

11-
Today the repo ships two production-grade adapter families:
11+
Today the repo ships two maintained adapter families:
1212

1313
- [`pydantic-acp`](pydantic-acp.md) for `pydantic_ai.Agent`
1414
- [`langchain-acp`](langchain-acp.md) for LangChain, LangGraph, and DeepAgents graphs
@@ -34,7 +34,7 @@ Three ideas drive the SDK:
3434

3535
| Package | Purpose | Start here |
3636
|---|---|---|
37-
| [`pydantic-acp`](pydantic-acp.md) | production-grade ACP adapter for `pydantic_ai.Agent` | If your runtime starts from a `pydantic_ai.Agent` |
37+
| [`pydantic-acp`](pydantic-acp.md) | maintained ACP adapter for `pydantic_ai.Agent` | If your runtime starts from a `pydantic_ai.Agent` |
3838
| [`langchain-acp`](langchain-acp.md) | graph-centric ACP adapter for LangChain, LangGraph, and DeepAgents | If your runtime already produces a compiled graph |
3939
| [`acpkit`](cli.md) | CLI target resolution, launch helpers, adapter dispatch | If you want `acpkit run ...` or `acpkit launch ...` |
4040
| [`helpers`](helpers.md) | supporting packages such as `codex-auth-helper` and `acpremote` | If you need transport or model-construction helpers around an adapter |

docs/langchain-acp/session-state.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ Stored session state includes:
3434
- session-local mode id
3535
- config values
3636
- plan state
37+
38+
`FileSessionStore` persists those values as local JSON files. File-backed session ids are restricted
39+
to ASCII letters, digits, `_`, and `-`, with a 128-character limit, so a client-supplied session id
40+
cannot escape the configured store root.
3741
- MCP server definitions
3842
- transcript updates
3943
- metadata

docs/pydantic-acp.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Pydantic ACP Overview
22

3-
`pydantic-acp` is the production ACP adapter in ACP Kit.
3+
`pydantic-acp` is the primary Pydantic AI adapter in ACP Kit.
44

55
Its job is simple: keep your existing `pydantic_ai.Agent` surface intact, then expose it as an ACP server without inventing runtime state the underlying agent cannot actually honor.
66

docs/pydantic-acp/session-state.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ This is the recommended default for local tools and editor integrations.
7070
Current behavior:
7171

7272
- writes use a temp file, `fsync`, and atomic replace
73+
- session ids are restricted to ASCII letters, digits, `_`, and `-`, with a 128-character limit
7374
- the store takes a process-local lock and a filesystem advisory lock when available
7475
- malformed or partially-written session files are skipped by public load/list flows instead of crashing the whole operation
7576
- stale temp files from interrupted writes are cleaned up on startup

0 commit comments

Comments
 (0)