Commit graph

14 commits

Author SHA1 Message Date
Austin Schaefer
d40c90552c Add manual feed subscription
Some checks failed
CI / check (pull_request) Failing after 32s
CI / test (pull_request) Has been skipped
CI / audit (pull_request) Has been skipped
Adds a URL input + Subscribe button (dx-components Input/Button) to the
UI, wired to a new subscribe_feed server function that upserts the feed
row and does an immediate first fetch so the reader isn't empty until
the next scheduled poll. feedsignal_feeds::fetch_feed now also returns
the feed's title, used to replace the URL placeholder once fetched.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJJQb2DWZZwQ1yPiaAQQoY
2026-08-21 15:15:50 +02:00
afe3df1401 Merge pull request 'chore/fix-some-stuff' (#2) from chore/fix-some-stuff into main
All checks were successful
CI / check (push) Successful in 2m15s
CI / test (push) Successful in 5m58s
CI / audit (push) Successful in 21s
Reviewed-on: #2
2026-08-21 12:39:32 +00:00
Austin Schaefer
6445f32f8a chore: Use valid license SPDX id. Revert logic refactor.
All checks were successful
CI / check (pull_request) Successful in 28m11s
CI / test (pull_request) Successful in 5m58s
CI / audit (pull_request) Successful in 20s
2026-08-21 14:03:10 +02:00
Austin Schaefer
6fc33f4854 chore: Change license, re-position test comments, add gitignore entries.
Some checks failed
CI / check (pull_request) Failing after 32s
CI / test (pull_request) Has been skipped
CI / audit (pull_request) Has been skipped
2026-08-21 13:53:49 +02:00
Austin Schaefer
279125abb5 Merge branch 'main' of ssh://51.15.208.55:22222/schaefera/feedsignal 2026-08-21 13:53:00 +02:00
4f70bfc960 Merge pull request 'Fix CI to use rust-ci runner, matching sporah's workflow pattern' (#1) from worktree-fix-ci-runner into main
All checks were successful
CI / check (push) Successful in 23m50s
CI / test (push) Successful in 10m12s
CI / audit (push) Successful in 28s
Reviewed-on: #1
2026-08-21 11:52:50 +00:00
Austin Schaefer
3cf7b3790d Drop redundant cargo check steps from the check job
All checks were successful
CI / check (pull_request) Successful in 20m14s
CI / test (pull_request) Successful in 6m46s
CI / audit (pull_request) Successful in 22s
cargo clippy --all-targets already type-checks everything cargo check
would, so running both for each of the three feature/target
combinations was roughly doubling compile time in this job.
2026-08-21 13:20:27 +02:00
Austin Schaefer
341ff9517a Apply cargo fmt across the workspace
Some checks failed
CI / test (pull_request) Has been cancelled
CI / audit (pull_request) Has been cancelled
CI / check (pull_request) Has been cancelled
Needed for the new fmt-check CI step to pass; the repo had never had
formatting enforced before. No logic changes.
2026-08-21 13:10:08 +02:00
Austin Schaefer
dcbba2cd2a Fix CI to use rust-ci runner, matching sporah's workflow pattern
Some checks failed
CI / check (pull_request) Failing after 59s
CI / test (pull_request) Has been skipped
CI / audit (pull_request) Has been skipped
Switches from the docker/rust:1-bookworm container back to the rust-ci
runner label, and adopts sporah's build/test/audit job split with
cargo registry + sccache caching. Keeps feedsignal's workspace-specific
checks (native crates, web crate server/wasm-client features) and adds
clippy + cargo audit, which were previously missing.
2026-08-21 13:05:33 +02:00
Austin Schaefer
2a41544546 Add affinity.rs test coverage and fix decay overshoot bug
apply_feedback, decay, get_mean_affinity, and engagement_score had no
(or broken) test coverage. Also fixes decay(): subtracting a fixed
DAILY_DECAY from a score smaller than that step flipped its sign
instead of settling at zero, causing oscillation on repeated decay
passes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KcD2BtNqehJxchKiuodTxi
2026-08-21 11:44:59 +02:00
Austin Schaefer
a8d4599a03 Replace sqlx with Diesel + diesel-async for compile-time-checked queries
Some checks failed
CI / check (push) Failing after 10s
sqlx's query!/query_as! macros only check raw SQL strings against the live
schema; Diesel's table!-derived DSL type-checks query structure itself at
compile time. SQLite has no native async driver, so diesel-async wraps a
blocking SqliteConnection via SyncConnectionWrapper, pooled with bb8.

Migrations move from sqlx's single-file-per-migration format to Diesel's
up.sql/down.sql pairs, run transactionally via diesel_migrations against a
throwaway sync connection at boot (MigrationHarness needs a sync
Connection), giving revertable migrations that sqlx::migrate! doesn't
support.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 11:04:38 +02:00
Austin Schaefer
2b61c80143 Default LLM scoring stage to a model already pulled locally
Some checks failed
CI / check (push) Failing after 11s
Was hardcoded to llama3.1, which isn't actually on this machine.
Switched to gemma4-e4b (5.0 GB, already pulled) as a speed/quality
balance for a call made once per shortlisted article on every
pipeline run.
2026-08-20 17:11:33 +02:00
Austin Schaefer
1a4a72fc27 Scaffold feedsignal: Rust workspace for LLM-filtered RSS reader
Some checks failed
CI / check (push) Failing after 26s
Rust workspace with core (topic-affinity learning engine + relevance
scoring), db (sqlite/sqlx schema + repo), feeds (RSS/Atom fetch), llm
(rig + local Ollama embeddings/completion), and web (axum + Dioxus
fullstack UI, no separate JS stack). Two-stage relevance filtering
(embedding shortlist -> LLM judgment) and an engagement/surprise-based
topic affinity engine with daily decay. All crates compile and core's
affinity engine has passing unit tests; server and wasm client targets
of feedsignal-web both check clean.
2026-08-20 17:04:14 +02:00
Austin Schaefer
a648f4ddc9 init 2026-08-20 16:52:47 +02:00