Skip to content

Release 2.1.0 — Quill meetings, notifications, quality digests, audit fixes#28

Merged
agr77one merged 1 commit into
mainfrom
release/v2.1.0
Jul 1, 2026
Merged

Release 2.1.0 — Quill meetings, notifications, quality digests, audit fixes#28
agr77one merged 1 commit into
mainfrom
release/v2.1.0

Conversation

@agr77one

@agr77one agr77one commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Flowkey 2.1.0 — Quill meetings + notifications + polish + audit fixes.

Highlights

  • Quill meetings integration + after-hours digest scheduler (ffp_quill, ffp_meetings): search / ask / process meetings on the local model, cached digests, action-item review board (accept/reject/pending), weekly review, and Overview meeting hours. Off by default (opt-in).
  • Digest quality flags + strict re-digest (meeting_redigest).
  • Notifications settings panel + telemetry feed.
  • Fixes: Run-now autosaves settings; benchmark blank-row; meetings list scroll + counter; active-hours telemetry; packaging parity (ffp_meetings/ffp_notifications/ffp_quill now in pyproject + PyInstaller spec, guarded by test_packaging_modules); config-seed de-dup.
  • Removed dead ffp_tools.py; refreshed README/installer docs; added SPEC.md.

Version 2.0.0 → 2.1.0.

Note

This branch was rebuilt on origin/main after the local git store was lost to external agent activity; all working files were preserved and re-verified. Includes a "digest quality / strict re-digest" feature contributed by that agent, whose app.js smart-quote breakage was fixed and covered by tests.

Gates: ruff · 320 pytest · node --check app.js · AHK parse-check.

🤖 Generated with Claude Code

… fixes

Rebuilt on origin/main after the local git store was lost to external agent
activity (.git wiped); all working files were preserved and re-verified.

2.1.0 includes:
- Quill meetings integration + after-hours digest scheduler (ffp_quill /
  ffp_meetings): search / ask / process, cached digests, action-item review
  board (accept/reject), weekly review, Overview meeting hours.
- Digest quality flags + strict re-digest (meeting_redigest).
- Notifications settings panel + telemetry feed.
- Fixes: Run-now autosave, benchmark empty-row, meetings scroll + counter,
  active-hours telemetry, packaging parity (ffp_meetings/notifications/quill
  now in pyproject + PyInstaller spec, guarded by test), config-seed de-dup.
- Removed dead ffp_tools.py; refreshed README/installer docs; added SPEC.md.

Version 2.0.0 -> 2.1.0. Gates: ruff, 320 pytest, node --check, AHK parse-check.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@agr77one agr77one merged commit be905da into main Jul 1, 2026
5 checks passed
@agr77one agr77one deleted the release/v2.1.0 branch July 1, 2026 14:34

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2cd8afad96

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/ffp_meetings.py
c = client or ffp_quill.QuillClient(str(mcfg.get("mcp_url") or ffp_quill.DEFAULT_MCP_URL))
if not c.connect():
return {"enabled": True, "reachable": False}
meetings = ffp_quill.list_recent_meetings(limit=30, client=c)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Page through meetings before aggregating overview

When a user has more than 30 Quill meetings in the current week or day, this overview only aggregates the first limit=30 page returned by list_recent_meetings, so the dashboard underreports meeting counts and hours. The Quill wrapper already supports offset and the batch runner pages through results; this should keep fetching pages until no more results or until dates are older than the week boundary.

Useful? React with 👍 / 👎.

Comment thread scripts/ffp_meetings.py
Comment on lines +504 to +506
def _action_id(meeting_id: str, text: str) -> str:
norm = re.sub(r"\s+", " ", str(text or "").strip().lower())
return hashlib.sha1(f"{meeting_id}|{norm}".encode()).hexdigest()[:16]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include owner in action item IDs

For a digest that contains two action bullets in the same meeting with the same task text but different owners, both rows get the same persisted ID because the hash only includes meeting_id and normalized text. Accepting or rejecting one row will then apply the saved status to both after reload, so the review board cannot track those assignments independently; include the owner or another stable per-bullet discriminator in the ID.

Useful? React with 👍 / 👎.

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.

2 participants