Skip to content
This repository was archived by the owner on Mar 10, 2026. It is now read-only.

Commit 2918239

Browse files
temper-pulseengine[bot]avrabeclaude
authored
feat: add CI workflow and fix safety.toml URLs (#6)
* feat: add CI workflow and fix safety.toml URLs Add GitHub Actions CI with three jobs matching Temper's check contexts: - test: cargo test --workspace - lint: cargo fmt --check + cargo clippy - ci: cargo build --release (depends on test+lint) Fix safety.toml placeholder URLs: - example/loom -> pulseengine/loom - example/synth -> pulseengine/synth - example/meld -> pulseengine/meld Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: use derive(Default) for ConflictPolicy to satisfy clippy Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: replace useless vec! with array literal in test Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Ralf Anton Beier <ralf_beier@me.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent f156455 commit 2918239

4 files changed

Lines changed: 48 additions & 11 deletions

File tree

.github/workflows/ci.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
env:
10+
CARGO_TERM_COLOR: always
11+
12+
jobs:
13+
test:
14+
name: test
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v4
18+
- uses: dtolnay/rust-toolchain@stable
19+
- uses: Swatinem/rust-cache@v2
20+
- run: cargo test --workspace
21+
22+
lint:
23+
name: lint
24+
runs-on: ubuntu-latest
25+
steps:
26+
- uses: actions/checkout@v4
27+
- uses: dtolnay/rust-toolchain@stable
28+
with:
29+
components: rustfmt, clippy
30+
- uses: Swatinem/rust-cache@v2
31+
- run: cargo fmt --check
32+
- run: cargo clippy --workspace --tests -- -D warnings
33+
34+
ci:
35+
name: ci
36+
needs: [test, lint]
37+
runs-on: ubuntu-latest
38+
steps:
39+
- uses: actions/checkout@v4
40+
- uses: dtolnay/rust-toolchain@stable
41+
- uses: Swatinem/rust-cache@v2
42+
- run: cargo build --release

configs/safety.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ name = "loom"
66
ti = "Ti2" # Optimizer can introduce semantic errors
77
td = "Td2" # Z3 verification + downstream synth checking = medium detection
88
is_oss = true
9-
repository_url = "https://github.com/example/loom"
9+
repository_url = "https://github.com/pulseengine/loom"
1010
license = "Apache-2.0"
1111

1212
[tools.classification]
@@ -28,7 +28,7 @@ name = "synth"
2828
ti = "Ti2" # Code generator produces final binary
2929
td = "Td3" # Last in chain, limited downstream detection
3030
is_oss = false
31-
repository_url = "https://github.com/example/synth"
31+
repository_url = "https://github.com/pulseengine/synth"
3232
license = "Proprietary"
3333

3434
[tools.classification]
@@ -49,7 +49,7 @@ name = "meld"
4949
ti = "Ti2" # Fuser transforms component structure
5050
td = "Td2" # loom verification downstream = medium detection
5151
is_oss = true
52-
repository_url = "https://github.com/example/meld"
52+
repository_url = "https://github.com/pulseengine/meld"
5353
license = "Apache-2.0"
5454

5555
[tools.classification]

crates/thrum-core/src/coordination.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,20 +48,15 @@ impl SharedMemoryEntry {
4848
// ---------------------------------------------------------------------------
4949

5050
/// Policy for resolving file conflicts between concurrent agents.
51-
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
51+
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)]
5252
pub enum ConflictPolicy {
5353
/// Emit an event but let both agents continue (optimistic).
54+
#[default]
5455
WarnAndContinue,
5556
/// Serialize the later agent's work (acquire a lock, wait for first to finish).
5657
Serialize,
5758
}
5859

59-
impl Default for ConflictPolicy {
60-
fn default() -> Self {
61-
Self::WarnAndContinue
62-
}
63-
}
64-
6560
/// A detected file conflict between two concurrent agents.
6661
#[derive(Debug, Clone, Serialize, Deserialize)]
6762
pub struct FileConflict {

crates/thrum-db/tests/memory_lifecycle.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ fn prompt_context_injection_format() {
121121
);
122122

123123
// Format as the pipeline would for injection
124-
let memories = vec![error, pattern];
124+
let memories = [error, pattern];
125125
let ctx: Vec<String> = memories.iter().map(|m| m.to_prompt_context()).collect();
126126
let injected = format!(
127127
"\n\n## Relevant context from previous sessions\n{}",

0 commit comments

Comments
 (0)