You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Chat context never includes performance review narratives — chat claims 'no performance data' while Prep Brief cites 18 items from the same DB #154
Found during v0.2.8 gate QA (2026-07-15). Asked chat to "Write a performance review for Maya" (employee with 2 full review narratives on file, no numeric ratings): chat replied "I don't have Maya's performance data in my system—no ratings, feedback, or review history." Immediately after, Prep Brief rendered ~18 grounded facts from those same reviews. The two features read different slices of the DB and the user experiences it as the assistant lying about what it knows.
Current State
src-tauri/src/context/ reads performance_ratings only (retrieval.rs:311,505,802,826; aggregates.rs:213; verification.rs:301). Zero references to performance_reviews anywhere in the context module; performance_reviews_fts is only used by the reviews module itself. people_map/context.rs (brief assembler) reads the narratives directly via get_reviews_for_employee. An employee with reviews-but-no-ratings is invisible to chat's performance context.
Suggested Fix
Decide inclusion shape under the existing token-budget system: full narratives for the focused employee vs. summary + "N reviews on file (latest YYYY-MM-DD)" acknowledgment vs. FTS-retrieved excerpts on performance-intent queries
At minimum, the context builder must tell the model reviews EXIST (count + dates) so it never claims "no review history" when there is one
Add a context test: employee with reviews-but-no-ratings → performance-intent query context mentions the reviews
Verification
cargo test --manifest-path src-tauri/Cargo.toml passes
Repro case: seed an employee with reviews only (see scripts/dev-seed-people-map-fixtures.sql), ask chat for a performance review → response draws on (or at least acknowledges) the narratives
Automation Hints
scope: src-tauri/src/context/
do-not-touch: src-tauri/src/people_map/, src-tauri/src/recruiting/
approach: refactor-to-config
risk: medium
max-files-changed: 5
blocked-by: none
bail-if: fix requires changing the system-prompt token budget contract or provider payload shape
Implements the minimum bar from this issue's Suggested Fix (the context builder now tells the model reviews EXIST — count + latest date — so it can never claim "no review history" when there is one). 858 Rust tests pass (+4 new), tsc clean, 2 files, no new warnings.
The inclusion-shape decision (full narratives for the focused employee vs. summary+acknowledgment vs. FTS excerpts on performance-intent queries) is left open — that's a product call, not a mechanical fix. The PR states review existence without loading narrative text, so the model can't claim to have read them.
Not auto-merge-eligible (risk: medium; the gate requires low) — left open for your review. The live chat repro against dev-seed-people-map-fixtures.sql still needs a human.
Implements the stated minimum (context states reviews exist: count + latest date), rendered independently of the ratings block. Full suite green (858 passed). Left open for review — not auto-merge-eligible (risk: medium; the auto-merge gate requires risk: low).
The inclusion-shape decision from Suggested Fix item 1 is deliberately left to you.
Correction to my previous comment. PR #157 is closed — it was a duplicate. #156 (opened 2026-07-16) is the live PR for this issue: green across all 7 CI checks, mergeable, awaiting your review. Disregard the #157 link above.
Activity
matthewod11-stack commentedon Jul 16, 2026
Orchestrator opened PR: #156
Implements the minimum bar from this issue's Suggested Fix (the context builder now tells the model reviews EXIST — count + latest date — so it can never claim "no review history" when there is one). 858 Rust tests pass (+4 new), tsc clean, 2 files, no new warnings.
The inclusion-shape decision (full narratives for the focused employee vs. summary+acknowledgment vs. FTS excerpts on performance-intent queries) is left open — that's a product call, not a mechanical fix. The PR states review existence without loading narrative text, so the model can't claim to have read them.
Not auto-merge-eligible (
risk: medium; the gate requireslow) — left open for your review. The live chat repro againstdev-seed-people-map-fixtures.sqlstill needs a human.matthewod11-stack commentedon Jul 17, 2026
Orchestrator opened PR: #157
Implements the stated minimum (context states reviews exist: count + latest date), rendered independently of the ratings block. Full suite green (858 passed). Left open for review — not auto-merge-eligible (
risk: medium; the auto-merge gate requiresrisk: low).The inclusion-shape decision from Suggested Fix item 1 is deliberately left to you.
matthewod11-stack commentedon Jul 17, 2026
Correction to my previous comment. PR #157 is closed — it was a duplicate. #156 (opened 2026-07-16) is the live PR for this issue: green across all 7 CI checks, mergeable, awaiting your review. Disregard the #157 link above.