# String literals allowed to keep the upstream project's name. # Read by tools/fork/name-check.py. One per line: pathliteral as a JSON # string, as `name-check.py --list` prints it. Each group says why it stays; # add a line only under a reason, or with a new one. # # Everything clients, users and operators meet was renamed on 2026-09-22 # (docs/spec/SPEC.md ยง2.4, tools/fork/renames.py). What's left is invisible, # or names the old spelling in order to retire it. # Key-derivation contexts. Nobody sees them, and renaming them would # invalidate every sealed OAuth token and client id already issued. crates/common/src/auth/oauth/client_id.rs "stalwart-oauth-client-id-sw1" crates/common/src/auth/oauth/token.rs "stalwart-oauth-token-sw1" crates/common/src/auth/oauth/config.rs "stalwart-oauth-refresh-nonce-sw1" # Hashed before it's used as a blob key, so it never appears anywhere. crates/common/src/manager/application.rs "STALWART_APP_" crates/common/src/cache/swap/blob.rs "STALWART_SWAP_{}_{}_{}" crates/common/src/cache/swap/blob.rs "STALWART_SWAP_{}_{}_{}_{}" # Pre-rename names, read only to retire them: the web interface's OAuth # client (removed on start), the spam filter's blobs (moved to their new # keys), the environment prefix (refused with the variable to rename), and # the application manifest bundles built for upstream carry. crates/common/src/manager/first_party.rs "stalwart-webui" crates/common/src/manager/renamed_blobs.rs "STALWART_SPAM_CLASSIFIER_MODEL.lz4" crates/common/src/manager/renamed_blobs.rs "STALWART_SPAM_TRAIN_DATA.lz4" crates/common/src/manager/application.rs "stalwart-app.json" crates/types/src/branding.rs "STALWART" # Pre-rename Sieve extension names, accepted as aliases so scripts written # for upstream still compile when edited. Never advertised; the test proves it. crates/sieve/src/compiler/grammar/mod.rs "vnd.stalwart.while" crates/sieve/src/compiler/grammar/mod.rs "vnd.stalwart.expressions" crates/sieve/src/compiler/grammar/mod.rs "require [\\\"vnd.stalwart.expressions\\\", \\\"variables\\\"];\\nlet \\\"n\\\" \\\"1 + 2\\\";\\n" # tools/sieve-playground builds the vendored copy vendor/sieve-rs/src/compiler/grammar/mod.rs "vnd.stalwart.while" vendor/sieve-rs/src/compiler/grammar/mod.rs "vnd.stalwart.expressions" vendor/sieve-rs/src/compiler/grammar/mod.rs "require [\\\"vnd.stalwart.expressions\\\", \\\"variables\\\"];\\nlet \\\"n\\\" \\\"1 + 2\\\";\\n" # Upstream's old default rules source, read only to treat it as unset: the # server uses the rules bundled with it (resources/spam-filter/). The # registry's fallback for records older than the field still names it. crates/common/src/manager/spam_rules.rs "https://github.com/stalwartlabs/spam-filter/releases/latest/download/spam-filter-rules.json.gz" crates/registry/src/schema/structs_impl.rs "https://github.com/stalwartlabs/spam-filter/releases/latest/download/spam-filter-rules.json.gz"