Skip to content

chore: v1.0 polish — repo restructure, version bump, JS SDK completion#30

Merged
lostmygithubaccount merged 10 commits intomainfrom
cody/ws-toolsv1polish
Mar 18, 2026
Merged

chore: v1.0 polish — repo restructure, version bump, JS SDK completion#30
lostmygithubaccount merged 10 commits intomainfrom
cody/ws-toolsv1polish

Conversation

@lostmygithubaccount
Copy link
Copy Markdown
Contributor

@lostmygithubaccount lostmygithubaccount commented Mar 16, 2026

Summary

  • Repo restructure: Move Rust crates from src/ascend_tools/ to crates/, Python package to py/ascend_tools/. Cleaner separation of Rust, Python, and JS code.
  • Version bump: 0.5.0 → 1.0.0 across all crates and bindings (Cargo workspace, PyO3, napi-rs, pyproject.toml).
  • JS SDK completion: Add missing methods to napi-rs bindings (environment, project, profile, otto, streaming) and napi attributes on model structs.
  • Docs: Update all READMEs to reflect current API surface. Add README.md to each top-level directory (crates/, py/, tests/, bin/).
  • Tests: Add tests/rest.js — self-contained Node.js REST API integration test (zero npm deps, mirrors rest.py). Add Python + shell integration test suites. Expand demo app with Otto chat UI and environment/project pages.
  • Quality: Tighten Config visibility (pub(crate), #[non_exhaustive]), add to_py_err Display bound, fix TUI quit hang on stuck SSE reads, add JS to bin/bump-version and bin/check-version.

🤖 Generated with Claude Code

Bump version 0.5.0 → 1.0.0 across all crates and bindings. Add missing
JS SDK methods (environment, project, profile, otto), napi attributes on
model structs, and update READMEs to reflect the current API surface.

- Version bump in Cargo workspace, PyO3, napi-rs, pyproject.toml
- JS SDK: add environment, project, profile, otto, and streaming methods
- Add napi(object) attributes to Environment, Project, OttoChatResponse,
  OttoProvider, OttoProviderModel model structs
- Config: tighten visibility (pub(crate) fields, #[non_exhaustive])
- TUI: fix quit hang when streaming thread is stuck on network read
- AGENTS.md: document TUI, JS SDK, Otto CLI, and conventions
- READMEs: update core, CLI, MCP, PyO3 to match current API
- Add demo app Otto chat UI and environment/project pages
- Add integration test suite (Python + shell)
- bin/bump-version: add JS Cargo.toml and package.json support
- PyO3: add Display bound on to_py_err for better error messages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
lostmygithubaccount and others added 3 commits March 17, 2026 20:26
Self-contained Node.js port of tests/rest.py — exercises /api/v1
endpoints directly with Ed25519 JWT auth using built-in crypto and
fetch. Zero npm dependencies.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Cleaner repo layout — Rust crates live in crates/, Python package in
py/ascend_tools/, tests and bin scripts at the top level. All inter-crate
path dependencies still resolve via relative sibling paths. Maturin
config updated to use python-source = "py".

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@lostmygithubaccount lostmygithubaccount marked this pull request as ready for review March 18, 2026 00:36
@lostmygithubaccount lostmygithubaccount changed the title feat: ascend-tools v1.0 chore: v1.0 polish — repo restructure, version bump, JS SDK completion Mar 18, 2026
lostmygithubaccount and others added 6 commits March 17, 2026 20:43
- Make auth module pub(crate) — no downstream consumers
- Remove unused is_unauthorized/is_forbidden/is_not_found error methods
- Extract SSE take_event() helper to deduplicate dispatch logic
- Fix PyO3 otto() to serialize OttoChatResponse directly (was fragile manual JSON)
- Add list_profiles validation to JS binding (branch required with project)
- Make skill.rs constants private (only used within module)
- Add hide_env_values to service_account_id CLI arg per convention
- Fix bump-version and check-version: add TUI crate and JS package.json

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add extra-paths = ["py"] to [tool.ty.environment] so ty resolves
ascend_tools imports after the move from src/ to py/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
TUI is part of the CLI, not a separate top-level component.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@lostmygithubaccount lostmygithubaccount enabled auto-merge (squash) March 18, 2026 01:02
@lostmygithubaccount lostmygithubaccount merged commit fe81c4b into main Mar 18, 2026
1 check passed
@lostmygithubaccount lostmygithubaccount deleted the cody/ws-toolsv1polish branch March 18, 2026 01:04
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.

1 participant