Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
24f8199
refactor: Admin functionality
disconsented Dec 12, 2025
40cb51d
chore: stash
disconsented Dec 12, 2025
95ddc6f
feat: Populate admin users from config
disconsented Dec 12, 2025
127894e
fix: Banning users
disconsented Dec 12, 2025
296c15f
fix(prompt): Update themes prompt to remove some of the technical det…
disconsented Dec 12, 2025
d6989a4
feat: Admin ui enhancements
disconsented Dec 12, 2025
68f4bf6
fix: fix user listing query in admin repository
disconsented Dec 22, 2025
2ab844b
refactor: simplify load function in item page
disconsented Dec 22, 2025
0660f8a
refactor: remove unused Depot parameter from admin endpoints
disconsented Dec 22, 2025
cb29c66
feat: implement multi-app support across API and UI
disconsented Dec 22, 2025
986a96d
fix(database): Add missing user field to votes table
disconsented Dec 22, 2025
4c1632f
feat: Add username mapping migration and model
disconsented Dec 22, 2025
350ab62
feat: add French language support to detector
disconsented Dec 23, 2025
0e95587
refactor: simplify SQL query and add tracing in SteamDownloadActor
disconsented Dec 23, 2025
d98dec3
feat: implement Steam user name caching and repository
disconsented Dec 23, 2025
3d1911f
feat: integrate user name fetching and display in UI
disconsented Dec 23, 2025
2903229
refactor: improve SteamUserActor batching and error handling
disconsented Dec 29, 2025
5702246
feat: add Steam tags support
disconsented Dec 29, 2025
53e39ce
style: remove unused surrealdb imports and functions in model.rs
disconsented Dec 30, 2025
b654c65
fix: fix loop condition in steam download actor
disconsented Dec 30, 2025
28f4d2f
refactor: rename new_item to try_new and update appid source
disconsented Dec 30, 2025
35bf12d
refactor: clean up tag insertion and repository code
disconsented Dec 30, 2025
02932d3
chore: remove unused enum variant in test
disconsented Dec 30, 2025
bb181d0
feat: update app and item pages
disconsented Dec 30, 2025
16060b4
build: update dependencies and add scraper
disconsented Dec 30, 2025
6b7a0ad
refactor: simplify backtrace mapping in StatusError
disconsented Dec 30, 2025
8f0ea2f
feat: add tags support to App and update UI
disconsented Dec 30, 2025
efce6f6
fix: use path parameter for get app endpoint
disconsented Dec 30, 2025
2b2b217
style: Formatting
disconsented Jan 25, 2026
df088e5
fix: Correct language selection from "None" to "Any"
disconsented Jan 25, 2026
84fc73f
build: update dependencies in ui
disconsented Jan 26, 2026
33cb606
feat: make App generic and add previews to Steam model
disconsented Jan 26, 2026
09246da
refactor: update codebase to use generic App and TagRef
disconsented Jan 26, 2026
0db357a
feat: add app_from_item endpoint and update apps API
disconsented Jan 26, 2026
41626a2
feat: update UI to handle complex tags and app-specific logic
disconsented Jan 26, 2026
6e242a8
test: add SurrealDB transaction/throw tests
disconsented Jan 26, 2026
c3d5adc
feat: change score label to upvote percentage in UI
disconsented Feb 2, 2026
f5a39b2
fix: resolve title rendering and data access on item page
disconsented Feb 2, 2026
cbcd0fe
refactor: update surrealdb query and cleanup item route logic
disconsented Feb 2, 2026
2b42600
feat: add debug logging for item query
disconsented Feb 2, 2026
b2b17a3
stash
disconsented Apr 2, 2026
8ff1b26
stash
disconsented Apr 2, 2026
ecdd85d
stash
disconsented Apr 3, 2026
cba6780
stash
disconsented Apr 3, 2026
4576388
format toml
disconsented Apr 3, 2026
363a058
stash
disconsented Apr 3, 2026
0847c1c
stash
disconsented Apr 4, 2026
d8842e2
stash
disconsented Apr 6, 2026
fd8b757
stash
disconsented Apr 6, 2026
3735a19
now using try_from
disconsented Apr 10, 2026
97b0cde
stash
disconsented Apr 10, 2026
e04e4b0
stash
disconsented Apr 11, 2026
4d8d51a
stash
disconsented Apr 12, 2026
e8fbc04
stash
disconsented Apr 12, 2026
c1f01cc
its compiles
disconsented Apr 12, 2026
fc36166
format
disconsented Apr 12, 2026
0ceb4f5
stash
disconsented Apr 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5,151 changes: 2,854 additions & 2,297 deletions Cargo.lock

Large diffs are not rendered by default.

126 changes: 94 additions & 32 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
[workspace]
members = ["macros", "serde-hack", "classification"]
members = ["classification", "macros", "proc-macros", "scratch", "serde-hack"]

[workspace.package]
version = "0.2.0"
edition = "2024"
license = "MPL-2"
version = "0.2.0"

[workspace.dependencies]
classification = { path = "./classification" }
macros = { path = "./macros" }
proc-macros = { path = "./proc-macros" }
serde-hack = { path = "./serde-hack" }

bbscope = "0.2"
Expand All @@ -23,60 +24,118 @@ hf-hub = "0.4"
humantime = "2.2"
intel-mkl-src = { version = "0.8" }
itertools = "0.14"
lingua = { version = "1.7", features = ["english", "russian", "chinese", "japanese", "korean"] }
lingua = { features = [
"chinese",
"english",
"french",
"japanese",
"korean",
"russian",
], version = "1.7" }
multimap = "0.10"
ractor = { version = "0.15", features = ["monitors", "async-trait"] }
reqwest = { version = "0.12", features = ["json", ] }
salvo = { version = "0.85", features = ["oapi", "logging", "serve-static", "affix-state", "cookie", "size-limiter"] }
serde = { version = "1.0", features = ["derive"] }
quote = "1.0"
ractor = { features = ["async-trait", "monitors"], version = "0.15" }
reqwest = { features = ["json"], version = "0.13" }
salvo = { features = [
"affix-state",
"cookie",
"logging",
"oapi",
"serve-static",
"size-limiter",
], version = "0.89" }
scraper = "0.25"
serde = { features = ["derive"], version = "1.0" }
serde-content = "0.1"
serde-xml-rs = "0.8.1"
serde_json = "1.0"
serde_repr = "0.1"
snafu = "0.8"
snafu = "0.9"
str-macro = "1"
surrealdb = { version = "2.4", features = ["kv-rocksdb", "allocator", "protocol-http", "protocol-ws", "rustls", "kv-mem"] }
surrealdb = { features = [
"allocator",
"kv-mem",
"kv-rocksdb",
"protocol-http",
"protocol-ws",
"rustls",
], version = "3.0" }
surrealdb-core = "3.0"
surrealdb-migrations = "2.2"
tokenizers = "0.21"
tokio = { version = "1.48", features = ["full"] }
surrealdb-types = "3.0"
surrealdb-types-derive = "3.0"
syn = "2.0"
tokenizers = "0.22"
tokio = { features = ["full"], version = "1.48" }
tracing = "0.1"
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
veil = "0.2"
tracing-subscriber = { features = ["env-filter"], version = "0.3.19" }
veil = "0.3"
paste = "1.0"

[package]
name = "workshop-walker"
version.workspace = true
edition.workspace = true
license.workspace = true
name = "workshop-walker"
version.workspace = true

[dependencies]
bbscope.workspace = true
biscuit-auth.workspace = true
chrono.workspace = true
classification = { workspace = true, optional = true }
classification = { optional = true, workspace = true }
config.workspace = true
humantime.workspace = true
itertools.workspace = true
lingua = { workspace = true, features = ["english", "russian", "chinese", "japanese", "korean"] }
lingua = { features = [
"chinese",
"english",
"japanese",
"korean",
"russian",
], workspace = true }
macros.workspace = true
multimap.workspace = true
ractor = { workspace = true, features = ["monitors", "async-trait"] }
reqwest = { workspace = true, features = ["json", ] }
salvo = { workspace = true, features = ["oapi", "logging", "serve-static", "affix-state", "cookie", "size-limiter"] }
serde = { workspace = true, features = ["derive"] }
ractor = { features = ["async-trait", "monitors"], workspace = true }
reqwest = { features = ["json", "query"], workspace = true, version = "1.0.0" }
salvo = { features = [
"affix-state",
"cookie",
"logging",
"oapi",
"serve-static",
"size-limiter",
], workspace = true }
scraper.workspace = true
serde = { features = ["derive"], workspace = true }
serde-content.workspace = true
serde-hack.workspace = true
serde-xml-rs.workspace = true
serde_json.workspace = true
serde_repr.workspace = true
snafu.workspace = true
str-macro.workspace = true
surrealdb = { workspace = true, features = ["kv-rocksdb", "allocator", "protocol-http", "protocol-ws", "rustls", "kv-mem"] }
surrealdb-migrations.workspace = true
tokio = { workspace = true, features = ["rt", "rt-multi-thread", "macros", "fs", "sync"] }
tracing-subscriber = { workspace = true, features = ["env-filter"] }
surrealdb = { features = [
"allocator",
"kv-mem",
"kv-rocksdb",
"protocol-http",
"protocol-ws",
"rustls",
], workspace = true }
surrealdb-core.workspace = true
#surrealdb-migrations.workspace = true
surrealdb-types.workspace = true
tokio = { features = [
"fs",
"macros",
"rt",
"rt-multi-thread",
"sync",
], workspace = true }
tracing.workspace = true
tracing-subscriber = { features = ["env-filter"], workspace = true }
veil.workspace = true
surrealdb-types-derive.workspace = true

[features]
default = ["ml-classification"]
Expand All @@ -85,6 +144,9 @@ ml-classification = ["classification", "classification/mkl"]

[patch.crates-io]
surrealdb-migrations = { git = "https://github.com/disconsented/surrealdb-migrations.git" }
surrealdb-core = { path = "../surrealdb/surrealdb/core" }
surrealdb = { path = "../surrealdb/surrealdb" }
surrealdb-types = { path = "../surrealdb/surrealdb/types" }

[profile.release]
lto = true
Expand All @@ -96,16 +158,16 @@ panic = 'abort'
opt-level = 3

[lints.clippy]
lint_groups_priority = { level = "allow", priority = 0 }
suspicious = { level = "deny", priority = 1 }
style = { level = "deny", priority = 2 }
perf = { level = "deny", priority = 4 }
pedantic = { level = "deny", priority = 5 }
correctness = { level = "deny", priority = 6 }
allow-dbg-in-tests = { level = "allow", priority = 9 }
complexity = { level = "warn", priority = 7 }
correctness = { level = "deny", priority = 6 }
dbg_macro = { level = "deny", priority = 8 }
allow-dbg-in-tests = { level = "allow", priority = 9 }
lint_groups_priority = { level = "allow", priority = 0 }
pedantic = { level = "deny", priority = 5 }
perf = { level = "deny", priority = 4 }
pub_with_shorthand = { level = "allow", priority = 10 }
style = { level = "deny", priority = 2 }
suspicious = { level = "deny", priority = 1 }

[target.x86_64-unknown-linux-gnu]
rustflags = "-C target-cpu=x86-64-v3"
20 changes: 10 additions & 10 deletions classification/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
[package]
edition.workspace = true
name = "classification"
version.workspace = true
edition.workspace = true

[dependencies]
snafu.workspace = true
candle-core.workspace = true
intel-mkl-src = { workspace = true, optional = true }
candle-transformers.workspace = true
candle-examples.workspace = true
candle-nn.workspace = true
candle-transformers.workspace = true
hf-hub.workspace = true
tokenizers.workspace = true
serde_json.workspace = true
candle-examples.workspace = true
serde = { workspace = true, features = ["derive"] }
tracing.workspace = true
intel-mkl-src = { optional = true, workspace = true }
ractor.workspace = true
serde = { features = ["derive"], workspace = true }
serde_json.workspace = true
snafu.workspace = true
tokenizers.workspace = true
tokio.workspace = true
tracing.workspace = true

[features]
default = ["mkl"]
mkl = ["dep:intel-mkl-src", "candle-core/mkl"]
mkl = ["candle-core/mkl", "dep:intel-mkl-src"]
14 changes: 7 additions & 7 deletions classification/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,19 @@ pub mod actor;
mod hub;
mod runner;

use std::backtrace::Backtrace;

use snafu::{ResultExt, Snafu, whatever};

const MODEL_ID: &str = "mistralai/Mistral-7B-Instruct-v0.2";

use std::backtrace::Backtrace;

use candle_core::{DType, Device, Tensor};
use candle_examples::token_output_stream::TokenOutputStream;
use candle_transformers::{
generation::{LogitsProcessor, Sampling},
models::mistral::Model,
};
use serde::{Deserialize, Serialize};
use tokenizers::Tokenizer;
use snafu::{ResultExt, Snafu, whatever};
use tokenizers::tokenizer::Tokenizer;
use tracing::{debug, instrument};

#[derive(Debug, Snafu)]
Expand Down Expand Up @@ -87,10 +86,11 @@ pub enum Error {
#[derive(Debug, Snafu)]
#[snafu(whatever)]
#[snafu(display("{message}"))]
#[snafu(provide(opt, ref, chain, dyn std::error::Error + Send + Sync => source.as_deref()))]
// #[snafu(provide(opt, ref, chain, dyn std::error::Error + Send + Sync =>
// source.as_deref()))]
pub struct WhateverAsync {
#[snafu(source(from(Box<dyn std::error::Error + Send + Sync>, Some)))]
#[snafu(provide(false))]
// #[snafu(provide(false))]
source: Option<Box<dyn std::error::Error + Send + Sync>>,
message: String,
backtrace: Backtrace,
Expand Down
4 changes: 3 additions & 1 deletion clippy.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
allow-unwrap-in-tests = true
allow-dbg-in-tests = true
allow-dbg-in-tests = true
allow-unwrap-types = ["std::sync::LockResult"]
disallowed-methods = ["surrealdb_types::value::record_id::RecordId::new"]
8 changes: 6 additions & 2 deletions macros/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
[package]
edition.workspace = true
name = "macros"
version.workspace = true
edition.workspace = true


[dependencies]
serde = { version = "1.0.219", features = ["derive"] }
serde.workspace = true
paste.workspace = true
serde_json.workspace = true
proc-macros.workspace = true
Loading