Skip to content

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

Closed

Description

@Jammy2211

Overview

Limit stale closed-thread follow-up attention to the most recent 30 days while retaining older observations in community history. Approved by the user with “do it” following the proposed rule.

Plan

  • Apply a 30-day limit only to follow-ups on closed issues or closed/answered Discussions.
  • Use the latest external human comment after settlement and the last maintainer response, not issue creation or generic update time.
  • Keep aged follow-ups in Community activity, labelled historical; a new external comment restores attention.
  • Preserve genuinely open issues and incomplete/unknown evidence handling.
  • Verify exact cutoff, old threads with fresh replies, bot/maintainer activity, legacy snapshots, Brain adapter compatibility and board rendering.

Tier: undeclared — merge mode: human /prm.

Detailed implementation plan

Affected Repositories

  • PyAutoEars (primary)
  1. ears/collect.py: apply the cutoff against the collection timestamp after complete post-settlement activity establishes an unresolved follow-up; calculate newest pending external activity, keeping existing nested follow_up fields compatible. Persist optional historical_follow_up_at only for aged-out observations, mirror inactive follow-up response fields, and retain these closed issue rows instead of dropping them as quiet.
  2. Extend snapshot validation for the optional historical timestamp, requiring a settled thread, complete coverage, inactive follow-up and an age older than 30 days relative to generation. Unknown metadata never proves expiry.
  3. ears/presentation.py and ears/board.py: show Historical follow-up and its latest external activity date instead of needs-review prose for expired rows. Keep aged items in Community activity and out of attention/feed counts. No render-time fabrication from legacy timestamps.
  4. REFERENCE.md: document the policy, exact boundary (30 days is still recent), metadata and backward compatibility. Preserve Brain's existing strict nested follow_up contract; verify its real adapter accepts historical rows and excludes them from awaiting-response counts.
  5. Extend existing follow-up tests with deterministic collection time; test old/latest pending comments, exact cutoff, later external replies, bots, maintainer response, incomplete coverage, open issues and historical board placement. Run the Ears suite, Brain adapter tests, state validation and targeted browser smoke.

Branch survey

  • PyAutoEars: canonical clean main; no active task claim.
  • PyAutoMind: canonical clean main; no matching active task.
  • Proposed branch: feature/ears-followup-window.
  • Worktree: /home/jammy/Code/PyAutoLabs/.worktrees/ears-followup-window.
  • Scope is Ears only; Brain is a read-only compatibility consumer.

Original Prompt

Most of the "Needs your atention" are really old and a result of us doing the comments after closed thing. These do not need my attention they are clearly defunct. Maybe that rule needs a time limit?

Approval (verbatim)

do it

Activity

  1. Jammy2211 commented on Oct 8, 2026

    @Jammy2211
    ContributorAuthor

    Implemented the approved 30-day rule in PR #26, commit d2ba095.

    Complete follow-ups on closed/answered threads leave attention when the latest pending external human comment is older than 30 days. They remain in Community activity as Historical follow-up; fresh external comments restore attention. Open issues, bot handling and incomplete-evidence uncertainty retain their existing behavior.

    Validation: 126 Ears tests; 29 Brain adapter tests; direct historical snapshot compatibility; Chromium 390/1280px light/dark smoke; generated state contract. All passed. Heart STALE: release validation incomplete: no rehearsal for current source; development shipping permitted.

    No science workspace impact. Awaiting human /prm; no merge or deployment performed. Evidence is in the task worktree _site/.

  2. Jammy2211 commented on Oct 8, 2026

    @Jammy2211
    ContributorAuthor

    Shipped

    Merged PR #26 after all three CI jobs passed.

    Complete follow-ups on closed issues and closed/answered Discussions leave attention when the latest pending external human comment is older than 30 days. They remain in Community activity as Historical follow-up. Fresh external replies restore attention; bots and generic issue updates do not extend the window. Open issues and incomplete-evidence uncertainty are unchanged.

    The optional historical timestamp preserves the existing nested follow_up contract; Brain accepts it and excludes inactive follow-ups from its awaiting-response queue. No workspace migration or pending-release obligation.

    Validation and merge

    • 126 Ears tests and 29 Brain adapter tests passed.
    • Chromium mobile/desktop light/dark smoke, historical row placement, clipboard/freshness and generated-state checks passed.
    • CI run 37765912688: Python 3.12, Python 3.13 and browser all passed on d2ba095.
    • Ship-time Heart STALE: release validation incomplete: no rehearsal for current source; development shipping permitted.
    • Human /prm authorized merge and close-out. All feature commits proven ancestors of origin/main.
    • Logs and previews preserved in tmp/ears-followup-window-evidence/. Temporary browser packages are reproducible tooling, not scientific data products.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions