Integrate native local LLM inference (via Ollama API or ONNX runtime ort crate) for offline, privacy-first email thread summarization, action item extraction, and smart reply generation.
Reopening: this was closed but the implementation is fabricated, not real.
crates/nuncio-core/src/ai.rs (LocalAiEngine) returns hardcoded canned text
for summarize_thread/extract_action_items/generate_smart_replies
regardless of the actual email content passed in (a fixed fake Q3-roadmap
summary, a fixed fake due date, a fixed fake assignee). The struct carries endpoint_url/model_name fields but never makes an HTTP call to
Ollama/llama.cpp or anything else -- there is no local LLM integration at
all, despite what the doc comments imply. Existing tests assert on the
canned output shape, which is why they were passing.
Currently dead code (nothing outside the module calls it), so it isn't
actively lying to a live user today -- but it will be the moment something
wires it up trusting this epic's "closed" label.
Leaving this open and explicitly backlogged behind the mail-completion work
(#182, #183, filter-engine wiring, contacts) rather than building a fake AI
integration as filler. When local AI summarization is actually prioritized,
it needs a genuine HTTP client against a real local inference server
(Ollama/llama.cpp), configurable per the existing endpoint_url/model_name
fields, with tests against a wiremock-stubbed inference endpoint -- not
canned strings.
Reopening: this was closed but the implementation is fabricated, not real.
`crates/nuncio-core/src/ai.rs` (`LocalAiEngine`) returns hardcoded canned text
for `summarize_thread`/`extract_action_items`/`generate_smart_replies`
regardless of the actual email content passed in (a fixed fake Q3-roadmap
summary, a fixed fake due date, a fixed fake assignee). The struct carries
`endpoint_url`/`model_name` fields but never makes an HTTP call to
Ollama/llama.cpp or anything else -- there is no local LLM integration at
all, despite what the doc comments imply. Existing tests assert on the
canned output shape, which is why they were passing.
Currently dead code (nothing outside the module calls it), so it isn't
actively lying to a live user today -- but it will be the moment something
wires it up trusting this epic's "closed" label.
Leaving this open and explicitly backlogged behind the mail-completion work
(#182, #183, filter-engine wiring, contacts) rather than building a fake AI
integration as filler. When local AI summarization is actually prioritized,
it needs a genuine HTTP client against a real local inference server
(Ollama/llama.cpp), configurable per the existing `endpoint_url`/`model_name`
fields, with tests against a wiremock-stubbed inference endpoint -- not
canned strings.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Feature Overview
Integrate native local LLM inference (via Ollama API or ONNX runtime ort crate) for offline, privacy-first email thread summarization, action item extraction, and smart reply generation.
Technical Requirements
Implemented Autonomous Local LLM Email Summarization, Action Item Extraction, and Smart Reply generation in nuncio-core.
Reopening: this was closed but the implementation is fabricated, not real.
crates/nuncio-core/src/ai.rs(LocalAiEngine) returns hardcoded canned textfor
summarize_thread/extract_action_items/generate_smart_repliesregardless of the actual email content passed in (a fixed fake Q3-roadmap
summary, a fixed fake due date, a fixed fake assignee). The struct carries
endpoint_url/model_namefields but never makes an HTTP call toOllama/llama.cpp or anything else -- there is no local LLM integration at
all, despite what the doc comments imply. Existing tests assert on the
canned output shape, which is why they were passing.
Currently dead code (nothing outside the module calls it), so it isn't
actively lying to a live user today -- but it will be the moment something
wires it up trusting this epic's "closed" label.
Leaving this open and explicitly backlogged behind the mail-completion work
(#182, #183, filter-engine wiring, contacts) rather than building a fake AI
integration as filler. When local AI summarization is actually prioritized,
it needs a genuine HTTP client against a real local inference server
(Ollama/llama.cpp), configurable per the existing
endpoint_url/model_namefields, with tests against a wiremock-stubbed inference endpoint -- not
canned strings.