This repository was archived by the owner on Jul 16, 2026. It is now read-only.
Repository navigation
Phase 5.19: notify on no-Status-field pending questions (sync OSS sutando) - #87
Merged
jgluck96 merged 1 commit intoJun 2, 2026
Conversation
…ando)
`pending-questions.md` mixes two formats:
- structured: `## Title` + `- **Status:** unanswered`
- free-form prose: `## Title` + plain prose body (deleted when resolved,
not marked done)
Before this PR, `get_waiting_questions()` required an explicit Status
field, so the free-form prose style was silently dropped — a question
typed directly by the user would never trigger a notification, a Discord
DM ping, or a voice result. Effectively, anyone using the documented
prose convention was invisible to the notifier.
OSS sutando fixed this by treating a missing Status field as default-
unanswered (matching the documented "sections are deleted when resolved"
behavior), while still skipping sections whose Status is explicitly
"resolved" / "done" / "answered". This PR ports that change verbatim —
the function body is now byte-identical to OSS.
Tests cover:
1. free-form prose → reported as waiting (regression target)
2. explicit `Status: unanswered` → reported
3. explicit `Status: Waiting` → reported
4. explicit `Status: resolved/done/answered` → skipped (5 variants)
5. empty title → skipped (defensive)
6. mixed file (real-world layout) → only unanswered sections reported
7. empty file → empty list, no crash
Verification: 61/61 Python tests pass (60 prior + 1 new), TS typecheck clean.
Co-authored-by: Cursor <cursoragent@cursor.com>
14 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
pending-questions.mdmixes two formats in active use:## Title\n- **Status:** unanswered— written by voice / chat surfaces programmatically.## Title\n<plain prose>— typed directly by the user, deleted (not marked) when resolved.Before this PR,
get_waiting_questions()required an explicit**Status:**field. Free-form prose sections were silently dropped from the waiting list — a question typed by the user into the markdown file would never trigger a macOS notification, a Discord DM ping, or a voice result. Effectively, anyone using the documented prose convention was invisible to the notifier.OSS
sutandofixed this by treating a missing Status field as default-unanswered (consistent with the documented "sections are deleted when resolved, not marked done" convention), while still skipping sections whose Status is explicitlyresolved/done/answered. This PR ports that change. The function body insrc/check-pending-questions.pyis now byte-identical to OSS modulo a provenance docstring note.Why this fits the "minimal divergence" rule
get_waiting_questions()changes. No other call sites or files touched.personal_path(name, WORKSPACE)signature is preserved.Test plan
Status: unanswered→ reportedStatus: Waiting→ reportedStatus: resolved/done/answered(5 case variants) → skipped##\n...) → skipped defensivelyPhase context
Continues the OSS → private sync per "minimal divergence" rule:
Phase 5.18 closed the outbox pipeline. This phase moves to the next behavioral-bug-fix candidate identified by the function-diff audit: a single high-confidence port (function body becomes byte-identical to OSS) that closes a class of silent-drop bugs in the notifier.
Made with Cursor