Compare commits
6 Commits
add-thinki
...
v1.24.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c8a90049ad | ||
|
|
4f7778e62f | ||
|
|
355b1b299c | ||
|
|
318a8fd91d | ||
|
|
025accdeb0 | ||
|
|
edf5bc9fdb |
28
.github/workflows/ci.yml
vendored
28
.github/workflows/ci.yml
vendored
@@ -14,13 +14,31 @@ concurrency:
|
|||||||
group: ci-${{ github.event.pull_request.number || github.ref }}
|
group: ci-${{ github.event.pull_request.number || github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
jobs:
|
jobs:
|
||||||
test-and-clippy:
|
prek:
|
||||||
name: Unit testing and linting
|
name: Lint, format & test
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v7
|
- uses: actions/checkout@v7
|
||||||
- uses: dtolnay/rust-toolchain@1.93.0
|
|
||||||
|
# Toolchain version + components come from rust-toolchain.toml. rustflags is
|
||||||
|
# cleared so plain builds don't fail on warnings; the clippy hook still does.
|
||||||
|
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||||
|
with:
|
||||||
|
rustflags: ''
|
||||||
|
|
||||||
- name: Install SQLite3
|
- name: Install SQLite3
|
||||||
run: sudo apt-get update && sudo apt-get install -y libsqlite3-dev
|
run: sudo apt-get update && sudo apt-get install -y libsqlite3-dev
|
||||||
- run: cargo test --all-features
|
|
||||||
- run: cargo clippy
|
# just drives the prek recipes; mise provides the pinned prek (mise.toml).
|
||||||
|
- uses: taiki-e/install-action@v2
|
||||||
|
with:
|
||||||
|
tool: just
|
||||||
|
- uses: jdx/mise-action@v2
|
||||||
|
|
||||||
|
# Run the same prek hooks devs run locally; .pre-commit-config.yaml is the
|
||||||
|
# source of truth. Tests are a separate step for visible timing.
|
||||||
|
- name: Lint & format (prek hooks, excluding tests)
|
||||||
|
run: just prek-run-on-all --skip test-unit
|
||||||
|
|
||||||
|
- name: Unit tests
|
||||||
|
run: just test
|
||||||
|
|||||||
8
Cargo.lock
generated
8
Cargo.lock
generated
@@ -95,9 +95,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "anyhow"
|
name = "anyhow"
|
||||||
version = "1.0.102"
|
version = "1.0.103"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
|
checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "anymap2"
|
name = "anymap2"
|
||||||
@@ -2848,9 +2848,9 @@ checksum = "007d8adb5ddab6f8e3f491ac63566a7d5002cc7ed73901f72057943fa71ae1ae"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quick_cache"
|
name = "quick_cache"
|
||||||
version = "0.6.23"
|
version = "0.6.24"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3a3db184a8b66cfe87f0263a1de147a6b554c864d1767c6f7fa4eb0e5497b565"
|
checksum = "b9c6658afe513a3b484e3abfdaa0d03ef3c0bbf017542c178dd55f94eb3051f9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash",
|
"ahash",
|
||||||
"equivalent",
|
"equivalent",
|
||||||
|
|||||||
@@ -2,7 +2,8 @@ use mxlink::matrix_sdk::{
|
|||||||
Room,
|
Room,
|
||||||
room::edit::EditedContent,
|
room::edit::EditedContent,
|
||||||
ruma::{
|
ruma::{
|
||||||
EventId, OwnedEventId, api::client::receipt::create_receipt::v3::ReceiptType,
|
EventId, OwnedEventId,
|
||||||
|
api::client::receipt::create_receipt::v3::ReceiptType,
|
||||||
events::room::message::{
|
events::room::message::{
|
||||||
OriginalSyncRoomMessageEvent, RoomMessageEventContentWithoutRelation,
|
OriginalSyncRoomMessageEvent, RoomMessageEventContentWithoutRelation,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -558,7 +558,9 @@ async fn handle_stage_text_generation(
|
|||||||
// loop exits the instant generation resolves, so there is no detached task and no late edit can
|
// loop exits the instant generation resolves, so there is no detached task and no late edit can
|
||||||
// ever clobber the real answer. `placeholder` is the event we must finalize in every exit path.
|
// ever clobber the real answer. `placeholder` is the event we must finalize in every exit path.
|
||||||
let (result, placeholder) = if let Some(notice_prompt_variables) = notice_prompt_variables {
|
let (result, placeholder) = if let Some(notice_prompt_variables) = notice_prompt_variables {
|
||||||
let generation = controller.generate_text(conversation, params).instrument(span);
|
let generation = controller
|
||||||
|
.generate_text(conversation, params)
|
||||||
|
.instrument(span);
|
||||||
tokio::pin!(generation);
|
tokio::pin!(generation);
|
||||||
|
|
||||||
let mut placeholder: Option<OwnedEventId> = None;
|
let mut placeholder: Option<OwnedEventId> = None;
|
||||||
|
|||||||
@@ -84,11 +84,23 @@ mod tests {
|
|||||||
// Boundaries: light below 30s, medium [30s, 90s), deep at/after 90s.
|
// Boundaries: light below 30s, medium [30s, 90s), deep at/after 90s.
|
||||||
// The pools have distinct content, so value comparison identifies the tier.
|
// The pools have distinct content, so value comparison identifies the tier.
|
||||||
assert_eq!(messages_for_elapsed(Duration::from_secs(0)), MESSAGES_LIGHT);
|
assert_eq!(messages_for_elapsed(Duration::from_secs(0)), MESSAGES_LIGHT);
|
||||||
assert_eq!(messages_for_elapsed(Duration::from_secs(29)), MESSAGES_LIGHT);
|
assert_eq!(
|
||||||
assert_eq!(messages_for_elapsed(Duration::from_secs(30)), MESSAGES_MEDIUM);
|
messages_for_elapsed(Duration::from_secs(29)),
|
||||||
assert_eq!(messages_for_elapsed(Duration::from_secs(89)), MESSAGES_MEDIUM);
|
MESSAGES_LIGHT
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
messages_for_elapsed(Duration::from_secs(30)),
|
||||||
|
MESSAGES_MEDIUM
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
messages_for_elapsed(Duration::from_secs(89)),
|
||||||
|
MESSAGES_MEDIUM
|
||||||
|
);
|
||||||
assert_eq!(messages_for_elapsed(Duration::from_secs(90)), MESSAGES_DEEP);
|
assert_eq!(messages_for_elapsed(Duration::from_secs(90)), MESSAGES_DEEP);
|
||||||
assert_eq!(messages_for_elapsed(Duration::from_secs(600)), MESSAGES_DEEP);
|
assert_eq!(
|
||||||
|
messages_for_elapsed(Duration::from_secs(600)),
|
||||||
|
MESSAGES_DEEP
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|||||||
Reference in New Issue
Block a user