Skip to content

Commit e137ec1

Browse files
author
semantic-release
committed
chore(release): naas-abi-core@2.18.0`
Automatically generated by python-semantic-release
1 parent ed38d06 commit e137ec1

3 files changed

Lines changed: 315 additions & 2 deletions

File tree

libs/naas-abi-core/CHANGELOG.md

Lines changed: 313 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,319 @@
22

33
<!-- version list -->
44

5+
## v2.18.0 (2026-07-07)
6+
7+
### Bug Fixes
8+
9+
- **coder**: Activate dormant users + strip internal app-proxy port
10+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
11+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
12+
13+
- **coder**: Native-arch workspace agent + gate readiness on app health
14+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
15+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
16+
17+
- **coder**: Raise admin token max lifetime so the Nexus admin token doesn't expire weekly
18+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
19+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
20+
21+
- **coder**: Sanitize Coder username + map invalid/missing workspace id to not-found
22+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
23+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
24+
25+
- **coder-adapter**: Unique per-mint token name so get_access is repeatable
26+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
27+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
28+
29+
- **coder-template**: Clear /tmp/template before push so it can't ship stale content
30+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
31+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
32+
33+
- **coder-template**: Ensure $HOME/project exists for code-server
34+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
35+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
36+
37+
- **coding-env**: Disable built-in Chat; drop unworkable state.vscdb layout seed
38+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
39+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
40+
41+
- **coding-env**: Hide deleting workspaces from the list
42+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
43+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
44+
45+
- **coding-env**: Move VS Code's built-in Chat off the right bar so Continue shows
46+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
47+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
48+
49+
- **coding-env**: Pin Continue to 1.3.40 so injected agents show
50+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
51+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
52+
53+
- **coding-env**: Reliable workspace delete (keep shared image; recover stuck)
54+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
55+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
56+
57+
- **coding-env**: Show Continue chat on the right by default in new workspaces
58+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
59+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
60+
61+
- **deploy**: Dagster also waits on coding-init
62+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
63+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
64+
65+
- **engine**: Wire coding_environment + source_control into engine.services
66+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
67+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
68+
69+
- **nexus/code**: Complete the empty-repo push instructions (commit + auth)
70+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
71+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
72+
73+
- **nexus/code**: Grant push access when generating a token (fixes 'repo not found')
74+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
75+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
76+
77+
- **openai-shim**: Carry chat id in the reply instead of hashing the first message
78+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
79+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
80+
81+
- **openai-shim**: Stable per-conversation thread id so chat has memory
82+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
83+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
84+
85+
- **platform**: Gate root (unscoped) datastore access to superadmins
86+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
87+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
88+
89+
- **source-control**: Populate PR diff patches from the raw .diff endpoint
90+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
91+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
92+
93+
- **source-control,nexus**: Address adversarial-review findings
94+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
95+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
96+
97+
### Chores
98+
99+
- **coder-prototype**: Don't ship a default admin password
100+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
101+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
102+
103+
- **stack**: Disable headscale (unused, crash-looping)
104+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
105+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
106+
107+
### Features
108+
109+
- In-app coding workspaces (Nexus IDE) — Phases 1–4
110+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
111+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
112+
113+
- **agent-core**: Only expose workspace tools when a workspace is bound
114+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
115+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
116+
117+
- **agents**: Add PlatformServicesAgent with access to platform data services
118+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
119+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
120+
121+
- **code-review**: Actions tab — CI workflow runs in the repo view
122+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
123+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
124+
125+
- **code-review**: GitHub-style file tree + full-width diffs in PR Files tab
126+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
127+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
128+
129+
- **code-review**: GitHub-style per-project pull-request UI
130+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
131+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
132+
133+
- **coder-template**: Continue + branch-per-workspace in the workspace template (Phase 2)
134+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
135+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
136+
137+
- **coding-env**: Auto-clone the monorepo on a chosen branch
138+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
139+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
140+
141+
- **coding-env**: Auto-wire the workspace exec sidecar at provision time
142+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
143+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
144+
145+
- **coding-env**: Clear clone credentials via a Clone dropdown
146+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
147+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
148+
149+
- **coding-env**: Clone box copies a ready-to-paste git clone command
150+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
151+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
152+
153+
- **coding-env**: Commits view, latest-commit bar, line numbers, slimmer tab headers
154+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
155+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
156+
157+
- **coding-env**: Continue lists every registered agent, built at provision time
158+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
159+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
160+
161+
- **coding-env**: In-workspace dev-server preview + Continue as the only AI chat
162+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
163+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
164+
165+
- **coding-env**: List a user's coding workspaces in Nexus
166+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
167+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
168+
169+
- **coding-env**: Make workspace tools generic + confirm tool-only turns
170+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
171+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
172+
173+
- **coding-env**: Option B agent->workspace bridge (write_file slice)
174+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
175+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
176+
177+
- **coding-env**: Phase 2 — run_terminal tool + auto-show Continue
178+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
179+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
180+
181+
- **coding-env**: PR review UI — file diffs + publish reviews
182+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
183+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
184+
185+
- **coding-env**: Scope the workspaces list per repo
186+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
187+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
188+
189+
- **coding-env**: Stream provisioning + startup logs while a workspace prepares
190+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
191+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
192+
193+
- **coding-env**: Suggest a random workspace name instead of always 'dev'
194+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
195+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
196+
197+
- **coding-env**: Wire in-IDE agents — inject token + API base for Continue
198+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
199+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
200+
201+
- **coding-environment**: Add coding environment core service + in-app IDE RFC
202+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
203+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
204+
205+
- **coding-environment**: Per-user environments API + Coder deployment (Phase 1)
206+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
207+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
208+
209+
- **core/source-control**: Add source_control hexagonal service (Phase 3)
210+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
211+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
212+
213+
- **deploy**: Add `abi deploy local --coding` for the coding-workspaces stack
214+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
215+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
216+
217+
- **deploy**: Auto-mint coding tokens via a coding-init one-shot
218+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
219+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
220+
221+
- **new**: Default embedding model to text-embedding-3-large (chatgpt module)
222+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
223+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
224+
225+
- **new**: Default the model registry to Opus 4.8 via OpenRouter
226+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
227+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
228+
229+
- **new**: Enable password login by default (no SMTP needed on first run)
230+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
231+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
232+
233+
- **new**: Enable the 'code' feature flag for workspace admins with --with-coding
234+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
235+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
236+
237+
- **new**: Thread --with-coding through `abi new project`
238+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
239+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
240+
241+
- **nexus**: Gate the coding workspaces behind a 'code' feature flag (off by default)
242+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
243+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
244+
245+
- **nexus/code**: GitHub-style repository UI (index, repo page, file browser)
246+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
247+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
248+
249+
- **nexus/code**: Multi-repository support + left-panel navigation
250+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
251+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
252+
253+
- **nexus/code**: Push panel — self-signed TLS skip + copyable tokenized remote
254+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
255+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
256+
257+
- **nexus/code**: Repo onboarding — empty repo + push instructions + team default
258+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
259+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
260+
261+
- **nexus/code**: Restore the shared top bar (API status, etc.) in Code
262+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
263+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
264+
265+
- **nexus/code**: Unify IDE + Review into one Code sub-app with branch management
266+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
267+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
268+
269+
- **nexus/code-review**: In-app review API + Forgejo deployment (Phase 3)
270+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
271+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
272+
273+
- **nexus/ide**: Coding workspace IDE page + sidebar nav (Phase 1 frontend)
274+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
275+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
276+
277+
- **nexus/openai-gateway**: OpenAI-compatible shim over abi agents (Phase 2)
278+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
279+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
280+
281+
- **nexus/review**: In-app code review UI page + nav (Phase 3 frontend)
282+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
283+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
284+
285+
- **nexus/verticals**: Vertical framework scaffold (Phase 4)
286+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
287+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
288+
289+
- **openai-shim**: Stream tool calls + results to the client
290+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
291+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
292+
293+
- **platform**: Add --root (whole-datastore) mode to storage API + CLI
294+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
295+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
296+
297+
- **platform**: Add the thin abi-platform workspace CLI
298+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
299+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
300+
301+
- **platform**: Serve + install the abi-platform CLI in workspaces
302+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
303+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
304+
305+
- **platform**: Streaming object-storage upload (put_object_stream)
306+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
307+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
308+
309+
- **platform**: Workspace-facing object-storage read API
310+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
311+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
312+
313+
- **source-control**: Repo browsing API (contents, file, commits, metadata)
314+
([#1039](https://github.com/jupyter-naas/abi/pull/1039),
315+
[`ed38d06`](https://github.com/jupyter-naas/abi/commit/ed38d063dcffb1eb4ccc5c64a65e3cebfb33c09c))
316+
317+
5318
## v2.17.0 (2026-07-07)
6319

7320
### Features

libs/naas-abi-core/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "naas-abi-core"
3-
version = "2.17.0"
3+
version = "2.18.0"
44
description = "Abi framework allowing you to build your AI system."
55
authors = [{ name = "Maxime Jublou", email = "maxime@naas.ai" },{ name = "Florent Ravenel", email = "florent@naas.ai" }, { name = "Jeremy Ravenel", email = "jeremy@naas.ai" }]
66
requires-python = ">=3.11,<4"

libs/naas-abi-core/uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)