Added `once_cell` and `scopeguard` dependencies to implement thread-safe compaction lock mechanism. Modified `compact_prompt_for_bot` to: - Prevent concurrent compaction for the same bot using a global lock - Add proper tracing and error handling - Improve summarization with content filtering - Clean up locks automatically using scopeguard - Remove redundant threshold check and compact entire history The changes ensure thread safety during prompt compaction and provide better observability through tracing.
110 lines
2.9 KiB
TOML
110 lines
2.9 KiB
TOML
[package]
|
|
name = "botserver"
|
|
version = "6.0.7"
|
|
edition = "2021"
|
|
authors = [
|
|
"Pragmatismo.com.br <contact@pragmatismo.com.br>",
|
|
"General Bots Community <https://github.com/GeneralBots>",
|
|
"Alan Perdomo",
|
|
"Ana Paula Gil",
|
|
"Arenas.io",
|
|
"Atylla L",
|
|
"Christopher de Castilho",
|
|
"Dario Junior",
|
|
"David Lerner",
|
|
"Experimentation Garage",
|
|
"Flavio Andrade",
|
|
"Heraldo Almeida",
|
|
"Joao Parana",
|
|
"Jonathas C",
|
|
"J Ramos",
|
|
"Lucas Picanco",
|
|
"Marcos Velasco",
|
|
"Matheus 39x",
|
|
"Oerlabs Henrique",
|
|
"Othon Lima",
|
|
"PH Nascimento",
|
|
"Phpussente",
|
|
"Robson Dantas",
|
|
"Rodrigo Rodriguez <me@rodrigorodriguez.com>",
|
|
"Sarah Lourenco",
|
|
"Thi Patriota",
|
|
"Webgus",
|
|
"Zuilho Se",
|
|
]
|
|
description = "General Bots Server - Open-source bot platform by Pragmatismo.com.br"
|
|
license = "AGPL-3.0"
|
|
repository = "https://github.com/GeneralBots/BotServer"
|
|
|
|
[features]
|
|
default = [ "vectordb"]
|
|
vectordb = ["qdrant-client"]
|
|
email = ["imap"]
|
|
desktop = []
|
|
|
|
[dependencies]
|
|
scopeguard = "1.2.0"
|
|
once_cell = "1.18.0"
|
|
actix-cors = "0.7"
|
|
actix-multipart = "0.7"
|
|
actix-web = "4.9"
|
|
actix-ws = "0.3"
|
|
aes-gcm = "0.10"
|
|
anyhow = "1.0"
|
|
argon2 = "0.5"
|
|
async-stream = "0.3"
|
|
async-trait = "0.1"
|
|
aws-config = "1.8.8"
|
|
aws-sdk-s3 = { version = "1.109.0", features = ["behavior-version-latest"] }
|
|
base64 = "0.22"
|
|
bytes = "1.8"
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
cron = "0.15.0"
|
|
csv = "1.3"
|
|
diesel = { version = "2.1", features = ["postgres", "uuid", "chrono", "serde_json"] }
|
|
dotenvy = "0.15"
|
|
downloader = "0.2"
|
|
env_logger = "0.11"
|
|
futures = "0.3"
|
|
futures-util = "0.3"
|
|
hmac = "0.12.1"
|
|
imap = { version = "3.0.0-alpha.15", optional = true }
|
|
include_dir = "0.7"
|
|
indicatif = "0.18.0"
|
|
lettre = { version = "0.11", features = ["smtp-transport", "builder", "tokio1", "tokio1-native-tls"] }
|
|
livekit = "0.7"
|
|
log = "0.4"
|
|
mailparse = "0.15"
|
|
mockito = "1.7.0"
|
|
native-tls = "0.2"
|
|
num-format = "0.4"
|
|
pdf-extract = "0.10.0"
|
|
qdrant-client = { version = "1.12", optional = true }
|
|
rand = "0.9.2"
|
|
redis = { version = "0.27", features = ["tokio-comp"] }
|
|
regex = "1.11"
|
|
reqwest = { version = "0.12", features = ["json", "stream"] }
|
|
rhai = { git = "https://github.com/therealprof/rhai.git", branch = "features/use-web-time" }
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
sha2 = "0.10.9"
|
|
smartstring = "1.0"
|
|
sysinfo = "0.37.2"
|
|
tempfile = "3"
|
|
time = "0.3.44"
|
|
tokio = { version = "1.41", features = ["full"] }
|
|
tokio-stream = "0.1"
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["fmt"] }
|
|
ureq = "3.1.2"
|
|
urlencoding = "2.1"
|
|
uuid = { version = "1.11", features = ["serde", "v4"] }
|
|
zip = "2.2"
|
|
|
|
|
|
[profile.release]
|
|
lto = true # Enables Link-Time Optimization
|
|
opt-level = "z" # Optimizes for size instead of speed
|
|
strip = true # Strips debug symbols
|
|
panic = "abort" # Reduces size by removing panic unwinding
|
|
codegen-units = 1 # More aggressive optimization
|