Skip to content

feat: limit closed-thread follow-up attention to 30 days - #26

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/ears-followup-window
Oct 8, 2026
Merged

Jammy2211 merged 1 commit into
mainfrom
feature/ears-followup-window

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Summary

Old unanswered comments on closed or answered threads previously stayed in Needs your attention indefinitely. Follow-ups now leave attention when their latest external human comment is older than 30 days, remain in Community activity as Historical follow-up, and return to attention if someone comments again.

Open issues are unchanged. Bot activity and generic issue updates do not extend the window; incomplete comment histories remain unknown. The exact 30-day boundary still needs attention.

Closes #25.

API Changes

Snapshot v1 adds optional historical_follow_up_at metadata for aged-out settled-thread follow-ups. Existing inactive follow_up fields are preserved, so Brain's strict nested-field validator remains compatible. See full details below.

Test Plan

  • Ears suite: 126 tests passed, including exact cutoff, latest versus oldest pending comment, new replies, bots, maintainer responses, open issues, incomplete evidence and historical validation.
  • Brain adapter suite: 29 passed; direct historical-snapshot integration confirms awaiting-response count is zero.
  • Chromium desktop/mobile light/dark smoke passed, including historical-row placement and clipboard/freshness controls; no page errors. Generated state validated and screenshot inspected.

Heart: STALE — release validation incomplete: no rehearsal for current source (2026-10-08T10:46:19Z). Permitted for development shipping; no release requested. No science workspace changes are needed; the actual downstream consumer, Brain, has been validated.

Full API Changes (for automation & release notes)

Added

  • snapshot.conversations[].historical_follow_up_at: optional UTC timestamp of the latest unanswered external human comment for an aged-out post-settlement follow-up. Requires complete coverage, an inactive settled-thread follow-up and age strictly greater than 30 days at collection.
  • ears.collect.conversation(..., observed_at=None): optional observation time; collection passes its shared snapshot timestamp.

Changed Behaviour

  • Complete closed-issue and closed/answered-Discussion follow-ups older than 30 days have awaiting_response: false, waiting_since: null and inactive follow_up; historical closed issues remain in the snapshot.
  • Board details and response labels distinguish historical follow-ups from current review candidates. This does not assert a reply was sent or a request resolved.

Migration

  • None required. Legacy snapshots preserve their original observations until collection refreshes them. The Brain adapter accepts the additive metadata and excludes inactive follow-ups from its attention queue.

Tier: undeclared — merge mode: human /prm.

Generated by the PyAutoLabs agent workflow.

@Jammy2211
Jammy2211 merged commit e482c8a into main Oct 8, 2026
3 checks passed
@Jammy2211
Jammy2211 deleted the feature/ears-followup-window branch October 8, 2026 11:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: limit closed-thread follow-up attention to 30 days

1 participant