Commit Graph

225 Commits

Author SHA1 Message Date
Slavi Pantaleev
3290255bad Pin local Rust toolchain to 1.93.0
Add rust-toolchain.toml so local development and ad-hoc cargo commands use the same known-good compiler version as CI.
This avoids the matrix-sdk query-depth overflow seen on newer stable toolchains.

Related to 9b987395b3

Ref: https://github.com/etkecc/baibot/pull/83#issuecomment-4008463792
2026-03-07 10:40:56 +02:00
Slavi Pantaleev
9b987395b3 Pin GitHub CI Rust toolchain to 1.93.0
Using the floating stable toolchain currently breaks this project. Repro via just build-debug:

```
Compiling matrix-sdk v0.16.0
error: queries overflow the depth limit!
help: consider increasing the recursion limit by adding #![recursion_limit = "256"] to your crate (matrix_sdk)
note: query depth increased by 130 when computing layout of matrix-sdk Client::sync async body
error: could not compile matrix-sdk (lib) due to 1 previous error
```

Pinning CI to 1.93.0 keeps CI on the known-good toolchain until upstream/toolchain compatibility is addressed.
We should have had that to begin with (we're pinning as much as we can anyway), but..

Ref: https://github.com/etkecc/baibot/pull/83#issuecomment-4008463792
2026-03-07 10:38:35 +02:00
Taylor Southwick
4852d1fe92 Add support for access tokens using MAS (#83)
* Add support for access tokens using MAS

* use 1.13.0

* Update dependencies

* Harden auth credential selection in matrix link init

Use the same non-empty access-token criterion for auth mode selection and bind the token directly from the branch condition.
Return explicit configuration errors for missing or empty `device_id`/`password` instead of panicking, so invalid auth config fails gracefully.

* Centralize and harden user auth config handling

Move authentication-mode resolution into typed config parsing with ConfigUserAuth,
so downstream login setup consumes validated credentials instead of re-checking raw optional fields.

Enforce explicit password-vs-token selection, validate token/device/user-id requirements in one place,
and normalize empty auth env overrides to unset values for consistent behavior across YAML and environment input.

* Add auth config unit tests

Move auth_config tests into a dedicated cfg test module file to keep production config code compact while preserving behavior coverage. The tests cover password/token mode selection, missing/both auth method rejection, missing device_id, and empty-value handling.

* Use conventional mxlink version requirement

Replace the unconventional wildcard lower-bound expression with a standard semver lower bound for readability and tooling consistency.

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2026-03-07 10:26:40 +02:00
renovate[bot]
8bd313f0d4 Update docker/build-push-action action to v7 2026-03-06 10:15:37 +02:00
renovate[bot]
711e1099d6 Update docker.io/ollama/ollama Docker tag to v0.17.7 2026-03-06 08:16:12 +02:00
renovate[bot]
91c8dd8f7d Update docker/metadata-action action to v6 2026-03-05 22:22:11 +02:00
renovate[bot]
afc5572d6a Update docker/login-action action to v4 2026-03-04 17:13:28 +02:00
renovate[bot]
73e13dcf2f Update docker.io/ollama/ollama Docker tag to v0.17.6 2026-03-04 07:36:04 +02:00
renovate[bot]
2bebd109b1 Update forgejo.ellis.link/continuwuation/continuwuity Docker tag to v0.5.6 2026-03-04 07:35:22 +02:00
renovate[bot]
7f7c58be1f Update Rust crate tokio to 1.50.* 2026-03-03 16:27:53 +02:00
renovate[bot]
47e5a464a0 Update docker.io/ollama/ollama Docker tag to v0.17.5 2026-03-01 08:09:47 +02:00
renovate[bot]
85f751e514 Update docker.io/ollama/ollama Docker tag to v0.17.4 2026-02-27 07:08:48 +02:00
renovate[bot]
95acad3558 Update docker.io/postgres Docker tag to v18.3 2026-02-27 06:36:26 +02:00
renovate[bot]
304056c59a Update docker.io/ollama/ollama Docker tag to v0.17.2 2026-02-27 06:36:19 +02:00
renovate[bot]
bedc0335f1 Update docker.io/ollama/ollama Docker tag to v0.17.1 2026-02-26 13:33:16 +02:00
renovate[bot]
a8be8c3c1e Update ghcr.io/element-hq/element-web Docker tag to v1.12.11 2026-02-24 16:54:27 +02:00
renovate[bot]
826fa728a9 Update ghcr.io/element-hq/synapse Docker tag to v1.148.0 2026-02-24 16:53:10 +02:00
renovate[bot]
5aef8e8b2f Update Rust crate tempfile to 3.26.* 2026-02-24 08:21:45 +02:00
renovate[bot]
f70f20181e Update Rust crate chrono to v0.4.44 2026-02-24 08:16:54 +02:00
renovate[bot]
fcdd4f39ee Update docker.io/ollama/ollama Docker tag to v0.17.0 2026-02-24 08:16:31 +02:00
renovate[bot]
891adfec49 Update Rust crate anyhow to v1.0.102 2026-02-20 08:49:48 +02:00
renovate[bot]
35ab79844b Update docker.io/ollama/ollama Docker tag to v0.16.3 2026-02-20 08:49:37 +02:00
Slavi Pantaleev
bbc122fbb1 Release 1.14.3
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.14.3
2026-02-18 06:37:11 +02:00
renovate[bot]
2413c8b88b Update actions/checkout action to v6 2026-02-18 06:31:39 +02:00
renovate[bot]
10c3c64469 Update Rust crate async-openai to 0.33.0 2026-02-18 06:25:58 +02:00
renovate[bot]
b3307b404b Update docker.io/rust Docker tag to v1.93.1 2026-02-18 06:25:48 +02:00
Slavi Pantaleev
7a0d1e830d Add Renovate configuration for automated dependency updates
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 06:06:02 +02:00
Slavi Pantaleev
b3bd241823 Release 1.14.2
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.14.2
2026-02-18 05:53:46 +02:00
Slavi Pantaleev
de3d8b054f Update dependencies 2026-02-18 05:44:41 +02:00
Slavi Pantaleev
0a55e276a2 Update dependencies 2026-02-18 05:40:25 +02:00
Slavi Pantaleev
1f2c65d2e6 Refactor dev services to support homeserver choice (Continuwuity or Synapse)
The dev environment previously hardcoded Synapse (bundled with Postgres
and Element Web) in a monolithic etc/services/core/ directory.

With Continuwuity now available as a lighter alternative (no external DB),
this refactors the service layout so developers choose their homeserver
once and everything derives from that choice. Continuwuity is the new
default for its smaller footprint.

Key changes:
- Break etc/services/core/ into etc/services/synapse/ and
  etc/services/element-web/, each with their own compose.yml
- Add `homeserver` variable in justfile (reads var/homeserver,
  defaults to continuwuity)
- Add `homeserver-init` recipe to persist the choice
- Use placeholders (__HOMESERVER_SERVER_NAME__, __HOMESERVER_URL__,
  __HOMESERVER_CLIENT_URL__) in config templates, resolved at
  prepare time based on the chosen homeserver
- Make services-start/stop/prepare/tail-logs delegate to the chosen
  homeserver's recipes + element-web
- Make users-prepare delegate to {homeserver}-users-prepare
- Update docs/development.md for the new homeserver choice flow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 05:28:32 +02:00
Slavi Pantaleev
3b5e4745f2 Add optional Continuwuity homeserver service for development/testing
Adds Continuwuity as an alternative to Synapse for local development,
useful for testing baibot compatibility with different homeserver
implementations. Follows the same optional service pattern as localai/ollama.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 04:47:22 +02:00
Slavi Pantaleev
407bb022d9 Release 1.14.1 v1.14.1 2026-02-10 14:42:20 +02:00
Slavi Pantaleev
faf92cac09 Switch from deprecated serde_yaml to serde_yaml_ng
serde_yaml is deprecated and unmaintained. serde_yaml_ng is the community
fork with a compatible API, so this is a straightforward rename across the
codebase.
2026-02-10 14:34:57 +02:00
Slavi Pantaleev
a82e9a1d1f Add prek pre-commit hooks via mise, fix formatting and clippy warnings
- Add mise.toml (prek 0.3.2) and .pre-commit-config.yaml with hooks for
  trailing whitespace, end-of-file, YAML check, merge conflicts, large files,
  cargo fmt, cargo clippy (-D warnings), and unit tests
- Add prek/mise recipes to justfile
- Run cargo fmt to fix formatting issues
- Fix all clippy warnings: collapse nested if statements, derive Default for Avatar
2026-02-10 14:33:19 +02:00
Slavi Pantaleev
8f87f05a08 Update dependencies to fix security vulnerabilities
- Bump mxlink (>=1.11.0 -> >=1.12.0): pulls in fixes for time and bytes CVEs
- Bump async-openai (0.32.3 -> 0.32.4)
- Bump tempfile (3.24.* -> 3.25.*)
- Run cargo update to bump transitive dependencies, notably:
  - time (0.3.46 -> 0.3.47): fix stack exhaustion DoS
2026-02-10 14:28:38 +02:00
Slavi Pantaleev
61d18b2e13 Release 1.14.0 v1.14.0 2026-02-04 03:19:30 +02:00
Slavi Pantaleev
d831c08306 Add support for OpenAI built-in tools (web_search, code_interpreter)
Document the new tools feature in README, features.md, and providers.md.
Update the `!bai providers` command output to show vision/tools support
consistently for all providers.

Based on #62 by @yeslayla which migrated the OpenAI provider to the
Responses API.

See: https://github.com/etkecc/baibot/pull/62
2026-02-04 03:17:19 +02:00
Slavi Pantaleev
c70387b0c3 Fix sticker generation for newer GPT image models
Sticker generation was failing when using newer GPT image models
(gpt-image-1, gpt-image-1-mini, gpt-image-1.5). The issue occurred
because stickers requested 256x256 size, but these models only support
1024x1024, 1536x1024, 1024x1536, and auto.

To reproduce, send `!bai sticker Something` to an agent configured
with a GPT image model. The error was:

  invalid_request_error: Invalid value: '256x256'. Supported values
  are: '1024x1024', '1024x1536', '1536x1024', and 'auto'. (param: size)
  (code: invalid_value)

The fix replaces the hardcoded 256x256 size override with a
`smallest_size_possible` flag, letting each provider determine the
appropriate sticker size based on the model being used.

The `openai_compat` provider still defaults to requesting 256x256 in all cases
(regardless of model name).
2026-02-04 02:39:51 +02:00
Slavi Pantaleev
38516f2e17 Update services 2026-02-04 02:28:12 +02:00
Slavi Pantaleev
5481b5a763 Update dependencies 2026-02-04 01:54:53 +02:00
Slavi Pantaleev
26bc437678 Add tools config to OpenAI example in config.yml.dist 2026-02-04 01:41:27 +02:00
Layla
ec93f1ee2a Implement OpenAI's response API and add support for built-in tools (web search & code interpreter). 2026-02-04 01:41:27 +02:00
Slavi Pantaleev
b920b6e556 Release 1.13.0 v1.13.0 2026-01-23 00:33:29 +02:00
Slavi Pantaleev
7136d34843 Update dependencies 2026-01-23 00:23:25 +02:00
Slavi Pantaleev
e0b4a40dd8 Configure switching to cheaper models (gpt-image-1-mini) for gpt-image-1 & gpt-image-1.5 2026-01-22 22:31:51 +02:00
Slavi Pantaleev
691aeeb1c7 Upgrade Rust (1.92.0 -> 1.93.0) 2026-01-22 22:23:18 +02:00
Slavi Pantaleev
257ffae9e7 Release 1.12.0 v1.12.0 2025-12-21 23:27:08 +02:00
Slavi Pantaleev
f7bf3d7b60 Upgrade async-openai (0.32.1 -> 0.32.2)
This brings in an important bugfix related to image generation.
Ref:
- https://github.com/64bit/async-openai/issues/507
- https://github.com/64bit/async-openai/pull/508
2025-12-21 23:21:03 +02:00
Slavi Pantaleev
3a88b0d656 Make gpt-image-1.5 the default image model for OpenAI 2025-12-21 12:53:44 +02:00