Files
Kigi-CLI/crates/codegen/kigi-memory/src/text_utils.rs
T
ZacharyZhang-NY a02b555e66 docs(comments): rewrite comments across all crates to the guidelines
Sweep every first-party crate source (1956 .rs files) to the project comment
guidelines: delete redundant restatements, decorative banners, change
narration, and end-of-line comments; keep and tighten the crucial ones
(invariants, bug rationale, SAFETY blocks, ported-source attribution).

No functional code changed. Every edit is proven comment-only against the
prior tree by a comment-stripping lexer (string/char/raw-string aware) plus a
separate doctest-fence check. Where removing a comment made rustfmt or clippy
want to re-lay-out adjacent code, the minimal triggering comment is restored so
code tokens stay byte-identical.

Gates green: cargo fmt --all --check (0 diffs), cargo check and cargo clippy
--workspace --all-targets (0 warnings).

Adds scripts/check_codegen_comment_guidelines.py — the enforcement gate for
these guidelines (flags banners, end-of-line comments, change narration, and
commented-out code).
2026-07-23 16:55:39 -04:00

47 lines
1.5 KiB
Rust

//! Pure text-classification helpers shared by the memory flush
//! (`session::helpers::memory_flush`) and dream (`session::memory::dream`)
//! response-processing paths.
//!
//! They live down here rather than in `memory_flush` so that `dream` need not
//! reach *up* into it, which would form a `dream` <-> `memory_flush` cycle.
pub fn has_markdown_headers(text: &str) -> bool {
text.contains("## ") || text.contains("# ")
}
/// Matches the NO_REPLY convention across separator variants — `"no reply"`,
/// `"no_reply"`, `"no-reply"`, `"NO REPLY"` — by comparing only the
/// lowercased alphanumerics.
pub fn is_no_reply(text: &str) -> bool {
let normalized: String = text
.to_lowercase()
.chars()
.filter(|c| c.is_alphanumeric())
.collect();
normalized == "noreply"
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_is_no_reply() {
assert!(is_no_reply("NO_REPLY"));
assert!(is_no_reply("no reply"));
assert!(is_no_reply("No-Reply"));
assert!(is_no_reply("noreply"));
assert!(!is_no_reply("no reply needed"));
assert!(!is_no_reply("I have things to store"));
}
#[test]
fn test_has_markdown_headers() {
assert!(has_markdown_headers("## Topic"));
assert!(has_markdown_headers("# Title\n\nBody"));
assert!(has_markdown_headers("preamble\n\n## Topic"));
assert!(!has_markdown_headers("plain text without headers"));
assert!(!has_markdown_headers("#hashtag without space"));
}
}