fix: scope-rejection archives idea + activity page paginates/filters/sorts#147
Merged
Merged
Conversation
… paginates/filters; web_data exposes project_stage graph.py: when flesh_out judges idea out-of-scope, archive idea/<file>.md to idea/.archive/<ts>-<file>.md and transition to HUMAN_INPUT_NEEDED with an actionable human_escalation_reason — was looping back to BRAINSTORMED forever, blocking the scheduler queue with the same unrecoverable project. web_data.py: _recent_activity limit 60 -> 500; emit project_stage on each row by looking up state/projects/<id>.yaml so the UI can filter by stage. web/index.html + js/app.js + css/site.css: activity panel rebuilt with action/stage/contributor/status filters, asc/desc sort chips, 50/page pagination with windowed page buttons, and a live results-count chip. Dropdown options populated from full payload via DOM (no innerHTML). state: regenerate PROJ-545 yaml with the scope-rejection reason so existing broken state passes Pydantic validation; archive the rejected idea. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
b8cff6d to
72d6e1c
Compare
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Three independent bug fixes from the previous session.
1. scope-rejection infinite loop (graph.py)
When
flesh_outjudged an idea out of GitHub-Actions-feasible scope, itdeleted the scope marker and rolled the project back to
BRAINSTORMED,causing the scheduler to retry the same unrecoverable idea on every tick.
Now: archive
projects/<id>/idea/<file>.mdtoprojects/<id>/idea/.archive/<ts>-<file>.mdand transition the projectto
HUMAN_INPUT_NEEDEDwith an actionablehuman_escalation_reason. Human can replace with a tighter brainstormor terminate. Frees the scheduler queue from these stuck projects.
2. activity page paginated + filterable
_recent_activitylimit 60 -> 500project_stage(looked up fromstate/projects/<id>.yaml)select,
↓ Newest / ↑ Oldestsort chips, results-count chipfirst/last anchors + ellipses); auto-scrolls back to the panel on
pager click
3. PROJ-545 broken state
PROJ-545 had
current_stage: human_input_neededbuthuman_escalation_reason: null, which fails Pydantic validation.Regenerated yaml with the scope-rejection reason and committed the
archive.
Test plan
pytest tests/unit/test_web_data_*)🤖 Generated with Claude Code