refactor(forge): classify account notifications beside the vocabulary

The triage mapped the forges' notification reasons onto the claw's
verdicts, but it co-evolves with the vocabulary, not with the claw:
a reason that enters it (Gitea's collapsed shape) needs a verdict in
the same change, and its tests pin the mapping against the
vocabulary's own types. It now lives in the integration crate as the
default classification; a consumer may reclassify on top. The claw
imports it like the rest of the forge seam.
This commit is contained in:
vhaudiquet committed 2026-10-20 05:49:14 +02:00
1 parent 5fdd17b901
commit fc0cbbcb6b
5 files changed
+22 -17

No files matched your search

@@ -41,6 +41,9 @@
//! - [`watcher`] — the dispatcher seam: polls a forge into an RSD
//! `Dispatcher` (keys, dedup, cursors) and decodes delivered inbox
//! items back into forge events
//! - [`triage`] — what an account notification earns: the default
//! classification of the notification vocabulary into agent
//! dispatches, surfaces, and drops
#![forbid(unsafe_code)]
#![deny(missing_docs)]
@@ -51,6 +54,7 @@ pub mod forge;
pub mod gitea;
pub mod github;
pub mod gitlab;
pub mod triage;
pub mod watcher;
// Re-exported so implementors of the async seam can apply #[async_trait]
@@ -65,6 +69,7 @@ pub use forge::{Forge, ForgePage};
pub use gitea::GiteaForge;
pub use github::GitHubForge;
pub use gitlab::GitLabForge;
pub use triage::{Role, Triage};
pub use watcher::{
WatchError, Watcher, decode, forge_key_fn, parse_key, register_forge, resource_key,
};