- Fixed notify-wiki workflow target so documentation notifications and dispatches go to the maintained ReplyBox wiki (utopiabuilder/replybox-wiki).
- Internal CI: fixed docs-sync target so documentation notifications are sent to the maintained ReplyBox wiki.
¶ 2026-09-09 - development PR #439: feat: introduce voice-message transcription and translation
- New: in-inbox AI transcripts for voice messages and captions for images/stickers. Agents can request (on-demand) transcripts for any attached audio; automatic background transcription remains limited to push-to-talk voice notes to avoid excess costs. Transcripts can be translated in-place.
- Attachment links from public GitHub issues now open the report in the correct workspace for users who belong to that workspace; if you don't belong you'll be shown a no-access message.
- Media uploads now use a streaming-friendly encryption envelope which reduces connector memory usage and enables larger streamed uploads; backward compatible with existing media objects (no client changes).
¶ 2026-09-09 - main PR #485: Promote : Development --> Main
- Incognito (read-receipt suppression) now follows agents across devices — turning it on/off is respected server-side.
- Improved media reliability: server components better detect and handle different media encryption envelopes, reducing failed attachments and send errors.
- Faster inbox/dashboard queries for recent message-flow step state, making thread open and dashboard updates quicker for busy tenants.
- Reduce noisy background work: the server now blocks automatic on-view downloads for very-old media (older than 90 days) while keeping background sweeps for more recent media; connector quiet-hours prevent reconnect-triggered sweep storms. Avatar probes that get no answer no longer clear a contact's photo — they defer and back off for a short window so customer photos aren't incorrectly removed.
- Message Flows: messages now reliably arrive in WhatsApp in the order you laid them out. Flow cancellation semantics clarified: cancelling a step that's already uploading stops subsequent nodes but does not unsend the in-flight message.
¶ 2026-09-10 - main PR #500: Promote : Development --> Main
- Deploys: frontend builds are staged in CI and will not auto-assign production domains until manually promoted — this prevents a frontend flip from outrunning backend rollouts during releases.
- Media: interactive "download" (Retry) is limited to files <= 90 days old (server-side). Background recovery sweeps remain conservative; callers can force a try when appropriate.
- Avatars: when a probe cannot reach the phone we now mark the avatar probe as deferred (short back-off) instead of clearing the picture — reduces repeat probe storms.
- Message flows: multi-attachment and multi-node sends now preserve the order authored in the builder by holding runs while uploads settle; the system also has a periodic sweep to release runs stuck by lost webhooks.
- Frontend deployments now stage the production build on Vercel (no domain switch). After the DO/App Platform rollout completes, promote the staged Vercel deployment (dashboard or
vercel promote) to make it live.
- Connector now reports newly-learned WhatsApp lid↔phone pairs to the API so identity-link evidence is recorded for Baileys channels. This prevents username (@lid) customers from splitting across contacts; nothing is merged automatically — merges remain operator-controlled.
¶ 2026-09-11 - main PR #515: Promote : Development --> Main
- Deployments: frontend builds are now staged in CI and will not receive production domains until an operator promotes them. This prevents the frontend from switching live while backend platform rollouts are still in progress; operators should promote the staged deployment only after the App Platform rollout has finished.
¶ 2026-09-12 - main PR #516: IQ Center integration + reply assistance (N01–N05), all IQ flags default off
- Reply Copilot and IQ Center groundwork: introduces an auto-suggest assistant (server-side, debounced, per-user cooldown and mute), restores image-flow captions and staged flow suggestions, and adds telemetry/outbox plumbing for future IQ delivery. All IQ delivery/learning flags default OFF; operators must opt-in and provide Hub credentials before live delivery.
¶ 2026-09-14 - main PR #525: Preview saved flows and bind native quotes for IQ replies
- Staff can preview a saved Message Flow and choose a customer message to attach as a native quote before approving IQ reply sequences. Previews are read-only — nothing is sent automatically.
¶ 2026-09-14 - main PR #523: Preserve saved Message Flow order in IQ reply previews
- Staff can now search, preview and approve saved Message Flows from the IQ reply composer. Preview does not send messages and preserves saved ordering (limited to eight items).
¶ 2026-09-15 - main PR #545: api: real list ticks (0145), media byte ranges, first_message_at (0146)
- Inbox previews now show WhatsApp delivery ticks; voice notes are seekable (media range/HEAD supported); contact drawer shows when the customer first messaged.
- Fix: connector restarts no longer leave WhatsApp channels stranded — heartbeat now supports a post-boot grace and connectors wait for locks without demoting channels.
- Improved connector reliability under load: increased Node per-address TCP connect-attempt timeout to 5s by default and added monitoring to reduce reconnect failures.
- Connector: automatic background load shedding (dry-run then on) to protect responsiveness; stale typing indicators now suppressed after 15s.
¶ 2026-09-15 - main PR #574: Promote : development --> main
- ReplyBox received an update from PR #574: Promote : development --> main.
¶ 2026-09-16 - development PR #558: feat: add Telegram ops watchdog for sending delays and connection drops
- New ops watchdog: Telegram alerts for WhatsApp sending delays, connection drops, and downtime. Run locally with
scripts/watchdog.ps1.
¶ Telegram ops watchdog: production alerts for sending delays and connection drops
- New: an ops watchdog now watches production for WhatsApp sending delays, stuck connections, API health, and restarts, and sends alerts to a Telegram chat. Run via
scripts/watchdog.ps1 or python -m app.cli watchdog.
¶ 2026-09-16 - main PR #582: promote : development --> main
- New ops watchdog: production monitoring now alerts a Telegram chat on WhatsApp sending delays, stuck connections, API health problems, and restarts. Run via
scripts/watchdog.ps1 or python -m app.cli watchdog.
- Connector: optional incremental session persistence reduces event-loop stalls by uploading per-key deltas and using worker compaction. Enable with
SESSION_DELTA_PERSISTENCE=true.
¶ 2026-09-16 - main PR #583: promote : development --> main
- Baileys connector: optional incremental session persistence (deltas + background compaction) to reduce main-thread save stalls; opt-in via
SESSION_DELTA_PERSISTENCE.
¶ 2026-09-16 - main PR #541: docs: runbook for a fleet-wide connector freeze (snapshot, then restart)
- New runbook: snapshot then restart when every channel shows “Connector offline” — see docs/runbook-connector-freeze.md for step-by-step guidance.
¶ 2026-09-17 - development PR #616: feat(api): queue first pairings before the QR code and hold import slots until history stops (#612)
- WhatsApp: first-time pairings now wait for limited import slots before showing the QR code, preventing connector freezes. Connector → API → Web deploy order required.
¶ 2026-09-17 - main PR #620: promote : development --> main
- WhatsApp first-time pairings now queue before the QR when many history imports occur; the pairing screen shows queue position and lease status.
- History imports now end on a quiet period once backlog is uploaded, concurrent imports are bounded, deleted channels stop promptly, and heartbeat reports import capacity.
- Connector: history imports end after a quiet period and backlog upload, concurrent imports are limited, deleted channels stop promptly, and heartbeat reports import capacity.
¶ 2026-09-17 - main PR #621: promote : development --> main
- WhatsApp pairing now queues first-time history imports and limits concurrent imports to prevent connector memory/CPU freezes.
- Connector heartbeats now report import capacity so the API can pause admitting pairings when heap is high.
¶ 2026-09-17 - development PR #617: feat(web): show a queued pairing before its QR code and hold its place (#612)
- WhatsApp pairing now queues before showing the QR when import slots are full — users see "Queued — number N in line"; QR appears automatically when a slot frees. Closing the modal gives up the place.
¶ 2026-09-17 - main PR #622: promote : development --> main
- WhatsApp pairing queue: first-time numbers now wait in a queue when many history imports are active. The UI shows “Queued for pairing” until a slot frees, then opens the pairing screen.
- Workspaces now have Personal or Business types. Business workspaces auto-add the Developer Team account as admin; Personal workspaces refuse that account. Enable by setting PLATFORM_ACCOUNT_EMAIL.
¶ 2026-09-17 - main PR #623: promote : development --> main
- Workspaces now have Personal or Business types. Business workspaces can auto-add the Developer Team support account; Personal workspaces block that account from joining.
- Reply Copilot: optionally scope suggestions to the conversation's channel (line) to avoid cross-line content leakage. Disabled by default; enable via env var.
- API can optionally run a background drain of staff feedback to IQ Center (flag-gated, default off). Configure via
IQ_FEEDBACK_V2_DRAIN_ENABLED and IQ_FEEDBACK_V2_DRAIN_INTERVAL_SECONDS.
¶ 2026-09-17 - main PR #624: release: IQ line firewall (#581, flag off) + feedback v2 drain loop (ships dark)
- Reply Copilot can optionally be limited to each conversation's line (off by default). Internal IQ feedback queuing now has a periodic in-process drain (ships off by default).
- IQ line firewall (flag-guarded) and an improved IQ feedback drain loop deployed to API.
- Web UI/UX overhaul: WhatsApp-style chat pane (bubbles, tails, media, day chips), draggable tabs with count pills, three-line chat list with BU and tag chips, notes with pictures and lightbox, composer alignment, dark-mode wash, and borderless settings/dashboard.
- Round-12 QA fixes: removed empty-pane stripe, fixed phone-width overlap, added tooltips to icon buttons, filter preserves open chat, clipped tab/column fixes, and calls chart label improvements.
- Calls: API now reports whether a missed inbound call was returned (call or message) and how long it took.
¶ 2026-09-18 - feat/message-source-and-sent-via PR #606: feat(messaging): record broadcast/scheduled mechanism on flow-started messages
- Message Flows started by a broadcast or scheduled message now record
replybox_flow + broadcast/scheduled on every message in the run.
- Fix(avatars): Connector stops misclassifying transient fetch errors as “no photo”; API adds a controlled re-probe lane and an admin resync tool.
- Web: typing now shows WhatsApp-like three dots and an italic “typing…” preview with smooth slide animation.
- Tags: one consistent chip everywhere; the "+N" pill expands to list all tags on hover or keyboard focus.
- Layout: stacked shell + card layers with a 14px top-left card corner on desktop; phones remain edge-to-edge.
- Open chat row: translucent teal glass highlight replaces the flat grey selection.
- Calls: callback pill now displays server-provided kind/at/minutes when available.
¶ 2026-09-19 - main PR #629: promote: development to main
- Admins: new 'Avatar re-probe' command to recover missing contact photos. It's rate-limited and report-only by default to avoid traffic storms.
- UI/UX round 15 (web only): layout, readability, motion, and accessibility fixes across Inbox, Settings, CRM, Starred and Calls; smoother chat selection and clearer headings.
¶ 2026-09-20 - main PR #635: Release: UI/UX round 15 (web only) — development → main
- Web UI: round 15 improvements — layout and accessibility fixes across CRM, Settings, Starred, Calls and Bug Reports, plus smoother selection motion.
- Tap the chat header name to open the contact or group profile; rename pencil now visible on touchscreens.
- Filter chips now show stable counts — server totals when available, otherwise honest partial counts like '12+' to avoid jumping numbers.
¶ 2026-09-20 - main PR #641: UI/UX round 16 web release → main
- Web: Clicking a chat header name (or avatar) opens the contact profile sheet.
- Web: Inbox filter chips and view counts now show capped/partial labels (like "14+") when totals are derived, avoiding surprise number changes.
- New manual "Promote Web" job lets maintainers promote staged Vercel production builds from GitHub Actions, verifying the deployment and aliases before switching production.
¶ 2026-09-20 - main PR #643: ci: Promote Web job → main
- Added a manual "Promote Web" GitHub Action to safely promote staged Vercel production deployments with verification checks.
- Inbox filter chips now show exact workspace totals (Unread / Not replied / Individuals / Groups). Unread may lag up to ~25s after marking read.
¶ 2026-09-20 - main PR #644: D3 API half → main: server-counted filter chips + instant Unread refresh
- Inbox filter chips now show authoritative workspace totals for Unread, Not replied, Individuals, and Groups. Unread updates instantly after marking a conversation read.
- UI/UX rounds 15–16 web are live (header opens profile sheet, server-counted filter chips, Promote Web job). Counts endpoint now returns unread/not_replied/individuals/groups; unread chip refetches instantly.
¶ 2026-09-20 - main PR #646: docs(SHIPPED) → main: 21 Sep live release lines
- Web UI rounds 15–16 are live: profile sheet from header clicks, improved filter chips, and smoother promote workflow.
- Conversation counts endpoint updated to show Unread and Not Replied counts with faster Unread refresh.
- New automated post-deploy check verifies API health and WhatsApp line connectivity after DigitalOcean rollouts; requires a read-only DB secret.
- Inbox rows now show a team-note marker and notes count; you can filter by Has note. 'Not replied' no longer counts group chats.
- Has-note is now an honest filter (server-backed). Note rows show a small amber glyph; Save Note moved to the composer actions. "Not replied" no longer counts groups.
¶ 2026-09-20 - main PR #651: Release 21 Sep: round 17 web + API has_note/Not-replied rule + post-deploy check job
- 21 Sep release: inbox rows show a note marker and note counts; "Not Replied" no longer includes group chats; CI now runs a post-deploy check that validates API health and connected WhatsApp lines.
- Post-deploy integrity check: we now use a new aggregate API endpoint to verify WhatsApp line counts during rollouts. No identifiers are exposed; initial rollouts may log a benign warning.
¶ 2026-09-20 - main PR #653: Release 21 Sep (2): API has_note + Not-replied rule reach production; post-deploy check reads the API
- Post-deploy verification now checks WhatsApp line counts via a new server endpoint; first rollout may show a harmless 'baseline empty' warning.
- Inbox filters: server-side 'has_note' and 'Not-replied' (which skips groups) are now live.
- Round 17 web polish (layout and note UX) plus API: per-row note markers, Not-replied excludes groups, and new post-deploy health checks.
¶ 2026-09-20 - main PR #656: Release 21 Sep (3): SHIPPED lines + naive cross-check script (api-only rollout = first real post-deploy comparison)
- Release 21 Sep: UI round 17 improvements; API inbox rows now show note presence/counts; Not-replied filter skips group conversations; deployments run a new post-deploy line-count check.
- Reply Copilot can now (optionally) follow line-level rules declared in Reply IQ's Learning Center. This is opt-in and fails open, so drafts remain available if IQ is unreachable.
¶ 2026-09-20 - main PR #657: Release 21 Sep (4): copilot drafts obey Reply IQ Learning Center rules
- Reply Copilot can now obey a line's 'declared rules' from Reply IQ's Learning Center (opt-in, env flags). Fail‑soft if unavailable.
- Reply Copilot drafts now respect Reply IQ Learning Center rules, applying per-line constraints from a signed rules feed.
- Chat list spacing improved: the WhatsApp-number pill no longer overlaps the Chats|Calls toggle; consistent 12px pane edges and better row breathing.
- This is a visual/layout change only; row heights and fonts unchanged.
- UI: Chat list spacing improvements — number pill fixed, consistent 12px edges, and improved row breathing (visual only).
- Number pill no longer overlaps the Chats|Calls toggle.
- Consistent 12px left/right/top spacing for title, search well, chips, and rows (12 / 12 / 12 rhythm).
- Conversation row text stack pinned to a 60px text-box height for stable vertical rhythm.
¶ 2026-09-20 - main PR #660: Release: UI/UX round 18 web — chat-list spacing pass (web only)
- UI/UX round 18 web: chat-list spacing pass — number pill no longer runs under the Chats|Calls toggle; consistent 12px edges; rows pinned to 60px.
- UI/UX round 18 web: chat-list spacing improvements — fixed WhatsApp-number pill overlap, consistent 12px rhythm, and improved row spacing.
¶ 2026-09-20 - main PR #662: Release: SHIPPED.md line for UI/UX round 18 (docs only)
- UI/UX round 18 web: chat-list spacing pass — improved chat-list spacing and pill placement; verified across desktop widths.
- Workspace logos: upload PNG/JPG/WebP (≤2 MB) from Settings → General. Logos appear in the workspace switcher and lists; fallback remains two-letter initials.
- New: Rankings — read-only Sales leaderboard passthrough and combined Missed Calls board, visible to all signed-in staff.
¶ 2026-09-21 - main PR #668: release(api): Rankings boards — read-only endpoints
- New: Rankings API — sales leaderboard passthrough and combined missed-call board (read-only). Numbers match the leaderboard; privacy-preserving aggregates only.
¶ 2026-09-24 - main PR #732: Promote: Development --> Main
- ReplyBox received an update from PR #732: Promote: Development --> Main.
¶ 2026-09-24 - development PR #744: Operator portal: customers, limits and an audit
trail (#613)
- ReplyBox received an update from PR #744: Operator portal: customers, limits and an audit trail (#613).
¶ 2026-09-24 - main PR #745: feat: an operator portal for the customer stack
- ReplyBox received an update from PR #745: feat: an operator portal for the customer stack.
¶ 2026-09-24 - development PR #747: feat(admin): sign-up links and per-workspace feature unlocks
- ReplyBox received an update from PR #747: feat(admin): sign-up links and per-workspace feature unlocks.
¶ 2026-09-24 - main PR #748: feat(admin): sign-up links and per-workspace feature unlocks
- ReplyBox received an update from PR #748: feat(admin): sign-up links and per-workspace feature unlocks.
- ReplyBox received an update from PR #749: fix(admin): let the portal page scroll.
¶ 2026-09-24 - main PR #750: fix(admin): let the portal page scroll
- ReplyBox received an update from PR #750: fix(admin): let the portal page scroll.
- ReplyBox received an update from PR #751: fix(admin): draw the sign-up QR when the canvas appears.
¶ 2026-09-24 - main PR #752: fix(admin): draw the sign-up QR when the canvas appears
- ReplyBox received an update from PR #752: fix(admin): draw the sign-up QR when the canvas appears.
- ReplyBox received an update from PR #743: fix(inbox): show filter pickers above save dialog.
¶ 2026-09-24 - development PR #754: fix(mcp): reach the endpoint from a browser, return to consent after SSO, and
set ChatGPT up with a prompt
- ReplyBox received an update from PR #754: fix(mcp): reach the endpoint from a browser, return to consent after SSO, and set ChatGPT up with a prompt.
- ReplyBox received an update from PR #753: fix(admin): don't offer a QR for a link that cannot admit anyone.
¶ 2026-09-24 - main PR #755: Promote : Development --> Main
- ReplyBox received an update from PR #755: Promote : Development --> Main.
- ReplyBox received an update from PR #756: feat(admin): make the portal readable at a glance.
¶ 2026-09-24 - main PR #757: feat(admin): make the portal readable at a glance
- ReplyBox received an update from PR #757: feat(admin): make the portal readable at a glance.
¶ 2026-09-25 - development PR #758: Operator portal that reads at a glance, and a sign-up a customer can walk through
- ReplyBox received an update from PR #758: Operator portal that reads at a glance, and a sign-up a customer can walk through.
¶ 2026-09-25 - main PR #760: feat(signup): a registration space that asks about you, not a workspace
- ReplyBox received an update from PR #760: feat(signup): a registration space that asks about you, not a workspace.
¶ 2026-09-25 - development PR #762: Admin portal: tabs, and the power to pause or delete an account
- ReplyBox received an update from PR #762: Admin portal: tabs, and the power to pause or delete an account.
- ReplyBox received an update from PR #764: fix(web): the ChatGPT setup names the Add app step.
¶ 2026-09-25 - main PR #767: Promote: Development --> Main
- ReplyBox received an update from PR #767: Promote: Development --> Main.
¶ 2026-09-25 - development PR #771: Portal: feature unlocks, access periods, and a lock screen that explains
- ReplyBox received an update from PR #771: Portal: feature unlocks, access periods, and a lock screen that explains.
¶ 2026-09-25 - main PR #772: feat(admin): feature unlocks, an access period, and a lock screen tha…
- ReplyBox received an update from PR #772: feat(admin): feature unlocks, an access period, and a lock screen tha….
¶ 2026-09-25 - development PR #775: Page and sort the workspaces table
- ReplyBox received an update from PR #775: Page and sort the workspaces table.
- ReplyBox received an update from PR #774: Every locked feature looks locked, including the ones that didn't.
¶ 2026-09-25 - main PR #776: Promote: Devlopment --> Main
- ReplyBox received an update from PR #776: Promote: Devlopment --> Main.
- ReplyBox received an update from PR #777: Tell someone their sign-up link is closed before they fill in a form.
¶ 2026-09-25 - development PR #780: Terms acceptance, link feature defaults, and no dead ends on the way in
- ReplyBox received an update from PR #780: Terms acceptance, link feature defaults, and no dead ends on the way in.
- ReplyBox received an update from PR #769: fix(inbox): show channel choices above transfer dialog.
¶ 2026-09-25 - development PR #761: feat(dialog): enhance SaveViewDialog with tag selection and improved layout
- ReplyBox received an update from PR #761: feat(dialog): enhance SaveViewDialog with tag selection and improved layout.
¶ 2026-09-25 - main PR #781: Promote: Development --> Main
- ReplyBox received an update from PR #781: Promote: Development --> Main.
- ReplyBox received an update from PR #746: ReplyBox wow round 1: Emerald Dusk rail, new sign-in, faster chat open, one home per feature, ⌘K actions.
¶ 2026-09-25 - main PR #782: Promote: Development --> Main (ReplyBox wow round 1, #746)
- ReplyBox received an update from PR #782: Promote: Development --> Main (ReplyBox wow round 1, #746).
- ReplyBox received an update from PR #783: docs: SHIPPED.md — ReplyBox wow round 1 web (#746).
¶ 2026-09-27 - main PR #786: Rankings: confirmed company per line from the call tracker; personal lines left out (#736)
- ReplyBox received an update from PR #786: Rankings: confirmed company per line from the call tracker; personal lines left out (#736).
¶ 2026-09-27 - main PR #787: docs(shipped): rankings line companies (#786)
- ReplyBox received an update from PR #787: docs(shipped): rankings line companies (#786).
¶ 2026-09-27 - development PR #789: sync: main -> development (rankings line companies #786, shipped #787)
- ReplyBox received an update from PR #789: sync: main -> development (rankings line companies #786, shipped #787).
¶ 2026-09-27 - development PR #790: feat(web): add coordinated HyperFrames landing showcase
- ReplyBox received an update from PR #790: feat(web): add coordinated HyperFrames landing showcase.
¶ 2026-09-27 - main PR #791: release(web): HyperFrames landing showcase
- ReplyBox received an update from PR #791: release(web): HyperFrames landing showcase.
¶ 2026-09-27 - development PR #792: docs: record verified landing motion release
- ReplyBox received an update from PR #792: docs: record verified landing motion release.
¶ 2026-09-27 - main PR #793: docs: sync landing motion production receipt
- ReplyBox received an update from PR #793: docs: sync landing motion production receipt.
¶ 2026-09-27 - main PR #794: Rankings: leave lines in a Personal workspace off the missed-call board
- ReplyBox received an update from PR #794: Rankings: leave lines in a Personal workspace off the missed-call board.
¶ 2026-09-27 - main PR #795: docs(shipped): personal workspaces off the rankings board (#794)
- ReplyBox received an update from PR #795: docs(shipped): personal workspaces off the rankings board (#794).
- ReplyBox received an update from PR #784: fix(api): clear orphaned job records before a deduped re-enqueue (avatar sweep stall).
¶ 2026-09-27 - development PR #796: sync: main -> development (#794, #795)
- ReplyBox received an update from PR #796: sync: main -> development (#794, #795).
¶ 2026-09-27 - main PR #798: test(rankings): pin the member route test to its fixture's week
- ReplyBox received an update from PR #798: test(rankings): pin the member route test to its fixture's week.
¶ 2026-09-27 - development PR #799: sync: main -> development (#798)
- ReplyBox received an update from PR #799: sync: main -> development (#798).
- ReplyBox received an update from PR #797: My day go live: rounds 10–12 + development merge + 40/day sales roster.
¶ 2026-09-27 - main PR #800: Release: My day go live (rounds 10–12) + avatar orphan fix (#797, #784)
- ReplyBox received an update from PR #800: Release: My day go live (rounds 10–12) + avatar orphan fix (#797, #784).
- ReplyBox received an update from PR #806: Create a customer outright, with no sign-up.
¶ 2026-09-28 - main PR #807: feat(admin): create a customer outright, with no sign-up
- ReplyBox received an update from PR #807: feat(admin): create a customer outright, with no sign-up.
- ReplyBox received an update from PR #812: My day polish: no load jumps on Home + dead r11 writer, backfill help, one switch read.
¶ 2026-09-28 - main PR #819: Release: My day polish (#812)
- ReplyBox received an update from PR #819: Release: My day polish (#812).
- ReplyBox received an update from PR #821: docs(shipped): My day polish (#812, #819).
- ReplyBox received an update from PR #820: View as a staff member (read only) + continuous dusk rail corner.
¶ 2026-09-28 - main PR #822: Release: View as a staff member (read-only) + continuous dusk corner
- ReplyBox received an update from PR #822: Release: View as a staff member (read-only) + continuous dusk corner.
- ReplyBox received an update from PR #823: docs(shipped): My day live + View as a staff member.
- ReplyBox received an update from PR #824: docs(shipped): Hub staff photos switched on.
- ReplyBox received an update from PR #805: feat: My Bug Reports — let every member track the reports they filed (#802).
- ReplyBox received an update from PR #808: feat(mcp): connect ChatGPT to several workspaces in one approval (#759).
- ReplyBox received an update from PR #815: feat(connector): freeze recorder — capture thread evidence before the liveness restart (#728).
¶ 2026-09-28 - development PR #817: fix(accounts): a deleted account lets go of Google and cannot be let back in
- ReplyBox received an update from PR #817: fix(accounts): a deleted account lets go of Google and cannot be let back in.
- ReplyBox received an update from PR #818: docs: run the customer stack locally, beside internal.
- ReplyBox received an update from PR #825: fix(inbox): only the active chat tab asks the API for its chat (#814).
- ReplyBox received an update from PR #826: fix(inbox): stop the chat list re-downloading the whole inbox (#813).
- ReplyBox received an update from PR #827: Rankings: art behind the whole page, Call performance in the boards' frame, board-named URLs, CRM hidden.
¶ 2026-09-28 - main PR #828: Promote : Development --> Main
- ReplyBox received an update from PR #828: Promote : Development --> Main.
¶ 2026-09-28 - main PR #829: Release: Rankings look + board-named URLs + CRM hidden (#827 only)
- ReplyBox received an update from PR #829: Release: Rankings look + board-named URLs + CRM hidden (#827 only).
- ReplyBox received an update from PR #830: docs(shipped): Rankings look + board-named URLs + CRM hidden (#827).
- ReplyBox received an update from PR #835: feat(web): new-message sound is WhatsApp's own notification sound.
¶ 2026-09-29 - main PR #836: Release: WhatsApp's own new-message sound (#835)
- ReplyBox received an update from PR #836: Release: WhatsApp's own new-message sound (#835).
- ReplyBox received an update from PR #838: docs(shipped): WhatsApp message sound.
¶ 2026-09-29 - development PR #833: feat(notes): collapse and sort previous notes
- ReplyBox received an update from PR #833: feat(notes): collapse and sort previous notes.
- ReplyBox received an update from PR #837: fix(web): dropdowns inside dialogs open behind the dialog.
¶ 2026-09-29 - main PR #839: Promote : Development --> Main
- ReplyBox received an update from PR #839: Promote : Development --> Main.
- ReplyBox received an update from PR #841: AI provider chain: Gemini first, OpenAI gpt-6-luna on failure (backend setting only).
- ReplyBox received an update from PR #840: feat(my-day): group line = a top-quarter consultant's usual day; Day view shows progress to it.
¶ 2026-09-29 - development PR #843: fix(web): Expand-on-hover rail shrinks back once the pointer leaves
- ReplyBox received an update from PR #843: fix(web): Expand-on-hover rail shrinks back once the pointer leaves.
¶ 2026-09-29 - development PR #844: Inbox: tick several workspaces and several WhatsApp numbers — one chat list, remembered at sign-in
- ReplyBox received an update from PR #844: Inbox: tick several workspaces and several WhatsApp numbers — one chat list, remembered at sign-in.
¶ 2026-09-29 - main PR #842: Release: multi-select workspaces + numbers (#844), Productivity Time (#840), rail hover (#843), AI provider chain inert (#841)
- ReplyBox received an update from PR #842: Release: multi-select workspaces + numbers (#844), Productivity Time (#840), rail hover (#843), AI provider chain inert (#841).
- ReplyBox received an update from PR #846: docs(shipped): multi-select inbox + Productivity Time release (#842).
¶ 2026-09-29 - main PR #848: AI: ask CY's Mac Studio first (studio link), Gemini stays the fallback
- ReplyBox received an update from PR #848: AI: ask CY's Mac Studio first (studio link), Gemini stays the fallback.
¶ 2026-09-29 - main PR #845: Gemini key in header + copy-numbers-exactly (follow-up to AI failover #841) — HOLD for CY key OK
- ReplyBox received an update from PR #845: Gemini key in header + copy-numbers-exactly (follow-up to AI failover #841) — HOLD for CY key OK.
¶ 2026-09-29 - main PR #850: SHIPPED: Mac Studio AI engine (#848)
- ReplyBox received an update from PR #850: SHIPPED: Mac Studio AI engine (#848).
¶ 2026-09-29 - development PR #832: feat(connector): stall profiler — name the JS hogging the main thread during lag (#728 follow-up)
- ReplyBox received an update from PR #832: feat(connector): stall profiler — name the JS hogging the main thread during lag (#728 follow-up).
¶ 2026-09-29 - main PR #855: release: stall profiler to main (#832)
- ReplyBox received an update from PR #855: release: stall profiler to main (#832).
¶ 2026-09-29 - development PR #856: sync: main → development (29 Sep, SHIPPED.md both lines)
- ReplyBox received an update from PR #856: sync: main → development (29 Sep, SHIPPED.md both lines).
¶ 2026-09-29 - main PR #854: Every ReplyBox AI feature on the Studio: v2 media jobs + My day background note
- ReplyBox received an update from PR #854: Every ReplyBox AI feature on the Studio: v2 media jobs + My day background note.
¶ 2026-09-29 - main PR #857: SHIPPED: all AI on the Mac Studio, Google off (#854)
- ReplyBox received an update from PR #857: SHIPPED: all AI on the Mac Studio, Google off (#854).
¶ 2026-09-29 - main PR #858: fix(ai-gateway): claim acknowledgement so a dead Studio long-poll never loses a job (#849)
- ReplyBox received an update from PR #858: fix(ai-gateway): claim acknowledgement so a dead Studio long-poll never loses a job (#849).
¶ 2026-09-29 - main PR #868: fix(my-day): the note never says "waiting", so the Studio's answer is kept
- ReplyBox received an update from PR #868: fix(my-day): the note never says "waiting", so the Studio's answer is kept.
¶ 2026-09-29 - main PR #875: fix(my-day): the Studio's late note is never hidden behind a template copy
- ReplyBox received an update from PR #875: fix(my-day): the Studio's late note is never hidden behind a template copy.
¶ 2026-09-29 - main PR #876: docs(shipped): claim ack live + My day note kept on luna
- ReplyBox received an update from PR #876: docs(shipped): claim ack live + My day note kept on luna.
¶ 2026-09-30 - main PR #883: fix(ai-gateway): reply drafts get 22 s on the Studio, not 15 s
- ReplyBox received an update from PR #883: fix(ai-gateway): reply drafts get 22 s on the Studio, not 15 s.
¶ 2026-09-30 - development PR #853: Web: lazy emoji data and dialogs, IQ split, fix page freeze after Delete chat → Cancel
- ReplyBox received an update from PR #853: Web: lazy emoji data and dialogs, IQ split, fix page freeze after Delete chat → Cancel.
- ReplyBox received an update from PR #852: Web: faster chat switching, lighter query cache, server-rendered app shell.
- ReplyBox received an update from PR #887: fix(inbox): stop big workspaces freezing — tag picker, per-chat tags, lean browser cache.
¶ 2026-09-30 - main PR #892: docs(shipped): reply drafts get 22 s on the Studio (#883)
- ReplyBox received an update from PR #892: docs(shipped): reply drafts get 22 s on the Studio (#883).
- ReplyBox received an update from PR #893: feat(admin): customer detail page; table leads with the account name.
¶ 2026-09-30 - main PR #878: My day: technicians today by region + EB/Hub read bridge
- ReplyBox received an update from PR #878: My day: technicians today by region + EB/Hub read bridge.
¶ 2026-09-30 - main PR #877: Chat header: tags + note beside the name, one icon family
- ReplyBox received an update from PR #877: Chat header: tags + note beside the name, one icon family.
¶ 2026-09-30 - main PR #879: Phone: WhatsApp iOS look + faster list
- ReplyBox received an update from PR #879: Phone: WhatsApp iOS look + faster list.
¶ 2026-09-30 - main PR #880: Composer: tap-to-fill quick reply (ghost suggestion)
- ReplyBox received an update from PR #880: Composer: tap-to-fill quick reply (ghost suggestion).
¶ 2026-09-30 - main PR #895: docs(shipped): Charlie round live
- ReplyBox received an update from PR #895: docs(shipped): Charlie round live.
- ReplyBox received an update from PR #851: feat(mcp): prepare a message to a phone number with no chat yet (#803).
- ReplyBox received an update from PR #884: feat(mcp): write tools — internal notes, draft flows, switched-off keyword replies (#804).
¶ 2026-09-30 - main PR #890: feat(connector): CONNECTOR_NODE_FLAGS — run the --single-threaded-gc freeze experiment from settings
- ReplyBox received an update from PR #890: feat(connector): CONNECTOR_NODE_FLAGS — run the --single-threaded-gc freeze experiment from settings.
- ReplyBox received an update from PR #886: feat(admin): every workspace's bug reports in the operator portal.
- ReplyBox received an update from PR #888: feat: implement account deletion via email confirmation (#811).
¶ 2026-09-30 - development PR #896: sync: main -> development (2026-09-30)
- ReplyBox received an update from PR #896: sync: main -> development (2026-09-30).
¶ 2026-09-30 - main PR #897: Promote: Development --> Main
- ReplyBox received an update from PR #897: Promote: Development --> Main.
¶ 2026-09-30 - main PR #898: fix(db): merge the two 0166 alembic heads (unblocks deploy)
- ReplyBox received an update from PR #898: fix(db): merge the two 0166 alembic heads (unblocks deploy).
- ReplyBox received an update from PR #899: fix(db): merge the two 0166 alembic heads (development).
¶ 2026-09-30 - main PR #920: Inbox: Tab loops the reply suggestions, with a ⇥ Tab key in the chat box
- ReplyBox received an update from PR #920: Inbox: Tab loops the reply suggestions, with a ⇥ Tab key in the chat box.
¶ 2026-09-30 - development PR #927: Sync main → development (1 Oct)
- ReplyBox received an update from PR #927: Sync main → development (1 Oct).
¶ 2026-09-30 - main PR #928: docs(shipped): #920 Tab loop + ⇥ Tab key
- ReplyBox received an update from PR #928: docs(shipped): #920 Tab loop + ⇥ Tab key.
- ReplyBox received an update from PR #919: Charlie round follow-ups: technicians for View as, quiet 204, phone header/reaction/copy/ghost fixes.
- ReplyBox received an update from PR #929: Badges v3: medals launch (place chips, one corner mark, NEW, Achievements + My Medals, quiet July–August back-fill).
- ReplyBox received an update from PR #930: Rankings: RMU on the company targets card.
- ReplyBox received an update from PR #934: Badges v3 polish: drawer descriptions, 44px info + skip link, confetti gone by 2.5 s.
- ReplyBox received an update from PR #936: fix(avatars): re-ask pictureless chats, stop the own-line picture loop, show sender pictures on group messages.
¶ 2026-09-30 - main PR #933: feat(api): voice typing — POST /organizations/{org}/dictation (Studio contract v2.2)
- ReplyBox received an update from PR #933: feat(api): voice typing — POST /organizations/{org}/dictation (Studio contract v2.2).
¶ 2026-09-30 - main PR #937: Voice typing: hold ⌘⌥ / Ctrl+Alt to dictate into the draft (ships dark)
- ReplyBox received an update from PR #937: Voice typing: hold ⌘⌥ / Ctrl+Alt to dictate into the draft (ships dark).
¶ 2026-09-30 - main PR #940: Voice typing: ⌘Z undoes every dictation
- ReplyBox received an update from PR #940: Voice typing: ⌘Z undoes every dictation.
¶ 2026-10-01 - development PR #935: Phone = WhatsApp iOS: icon tab bar with Chats in the middle, one-row header and composer, touch picker for Reply IQ
- ReplyBox received an update from PR #935: Phone = WhatsApp iOS: icon tab bar with Chats in the middle, one-row header and composer, touch picker for Reply IQ.
¶ 2026-10-01 - main PR #932: Inbox: suggestion strip above the chat box (always showing) + Tab key never covers text
- ReplyBox received an update from PR #932: Inbox: suggestion strip above the chat box (always showing) + Tab key never covers text.
¶ 2026-10-01 - main PR #947: Reply strip follow-up: SHIPPED receipt + QA skips fully clipped controls
- ReplyBox received an update from PR #947: Reply strip follow-up: SHIPPED receipt + QA skips fully clipped controls.
- ReplyBox received an update from PR #918: Ask Toppie: a WhatsApp-style sales chat on My day (CY + Charlie trial).
- ReplyBox received an update from PR #948: fix(web): remove square focus box, fix teammate picker scroll, restore send menu clicks (#834).
¶ 2026-10-01 - main PR #950: fix(connector): one AsyncLocalStorage for all Baileys sockets — stops the daily stall/restart (#728)
- ReplyBox received an update from PR #950: fix(connector): one AsyncLocalStorage for all Baileys sockets — stops the daily stall/restart (#728).
- ReplyBox received an update from PR #952: feat: bug reports become tickets with a reporter↔team conversation.
¶ 2026-10-01 - development PR #953: Improve Quick Look phone and note controls
- ReplyBox received an update from PR #953: Improve Quick Look phone and note controls.
¶ 2026-10-01 - main PR #955: Promote: Devlopment --> Main
- ReplyBox received an update from PR #955: Promote: Devlopment --> Main.
- ReplyBox received an update from PR #965: My day technicians by workspace: three clock looks, archive (CY 1 Oct).
- ReplyBox received an update from PR #970: Technicians: Archive only where it works (can_archive).
¶ 2026-10-02 - main PR #969: Reply IQ: suggestions only in the strip with 👍/👎 feedback; Needs-to-know line under the chat header
- ReplyBox received an update from PR #969: Reply IQ: suggestions only in the strip with 👍/👎 feedback; Needs-to-know line under the chat header.
- ReplyBox received an update from PR #973: Ask Toppie: open to everyone with My day + record every question + CY/Charlie review list.
- ReplyBox received an update from PR #972: fix(connector): customer profile pictures — nest the privacy token (rebased #931) — DEPLOY 23:00.
¶ 2026-10-02 - main PR #971: Voice typing: click/tap to start and finish (no hold) + chat context for the engine
- ReplyBox received an update from PR #971: Voice typing: click/tap to start and finish (no hold) + chat context for the engine.
- ReplyBox received an update from PR #959: feat(web): honest Trigger card status in Flow Builder (#951, part 1).
¶ 2026-10-02 - development PR #960: feat: "Created via ChatGPT" badge on AI-made flows and keyword replies (#951, part 2)
- ReplyBox received an update from PR #960: feat: "Created via ChatGPT" badge on AI-made flows and keyword replies (#951, part 2).
- ReplyBox received an update from PR #961: fix(web): Channels shows every ticked workspace; at most 3 shown together (#957).
- ReplyBox received an update from PR #962: feat(watchdog): alert on API 5xx bursts, name the likely cause, keep a JSON log.
¶ 2026-10-02 - main PR #974: My day: Technicians today by the work people logged (jobs/trips), not job titles
- ReplyBox received an update from PR #974: My day: Technicians today by the work people logged (jobs/trips), not job titles.
- ReplyBox received an update from PR #968: feat(tickets): live status tracker, Current/Completed tabs, clear closed state.
- ReplyBox received an update from PR #977: feat(mcp): prepare a WhatsApp message with a file (PDF or image).
- ReplyBox received an update from PR #978: Show collapsed sidebar tooltips and align dividers.
¶ 2026-10-02 - main PR #979: Reply IQ: drafts written the moment a customer message lands — chats open with suggestions ready
- ReplyBox received an update from PR #979: Reply IQ: drafts written the moment a customer message lands — chats open with suggestions ready.
¶ 2026-10-02 - main PR #981: Reply IQ: catch-up sweep reaches older unanswered chats
- ReplyBox received an update from PR #981: Reply IQ: catch-up sweep reaches older unanswered chats.
¶ 2026-10-02 - main PR #980: Message Flows: drag attachments to reorder them
- ReplyBox received an update from PR #980: Message Flows: drag attachments to reorder them.
¶ 2026-10-02 - main PR #982: Reply IQ: pre-written drafts for 14 days of unanswered chats + pinned chats
- ReplyBox received an update from PR #982: Reply IQ: pre-written drafts for 14 days of unanswered chats + pinned chats.
¶ 2026-10-02 - main PR #983: fix(reply-pregen): sweep walks the whole 14-day backlog
- ReplyBox received an update from PR #983: fix(reply-pregen): sweep walks the whole 14-day backlog.
¶ 2026-10-02 - main PR #984: fix(inbox): phone Back keeps Not replied and other list filters
- ReplyBox received an update from PR #984: fix(inbox): phone Back keeps Not replied and other list filters.
¶ 2026-10-02 - main PR #985: fix(reply-pregen): sweep retries chats whose first try came back empty
- ReplyBox received an update from PR #985: fix(reply-pregen): sweep retries chats whose first try came back empty.
¶ 2026-10-02 - main PR #986: fix(reply-pregen): sweep cursor on (time, id)
- ReplyBox received an update from PR #986: fix(reply-pregen): sweep cursor on (time, id).
¶ 2026-10-02 - main PR #987: fix(reply-pregen): no 500 after waiting for a set that never came
- ReplyBox received an update from PR #987: fix(reply-pregen): no 500 after waiting for a set that never came.
¶ 2026-10-02 - main PR #988: Reply IQ: Tab loops through saved replies, strip open by default with feedback on every draft, refresh prompt on
- ReplyBox received an update from PR #988: Reply IQ: Tab loops through saved replies, strip open by default with feedback on every draft, refresh prompt on.
¶ 2026-10-02 - main PR #991: New-version prompt: dismissible banner instead of a blocking modal
- ReplyBox received an update from PR #991: New-version prompt: dismissible banner instead of a blocking modal.
¶ 2026-10-02 - main PR #989: Missed calls become chat messages (unread, Not replied, Calls badge)
- ReplyBox received an update from PR #989: Missed calls become chat messages (unread, Not replied, Calls badge).
¶ 2026-10-02 - main PR #993: Browser tab: unread count, open chat name, missed-call flash
- ReplyBox received an update from PR #993: Browser tab: unread count, open chat name, missed-call flash.
¶ 2026-10-02 - main PR #992: Chat notes for archive/unarchive + Not replied 'Waiting longest' sort
- ReplyBox received an update from PR #992: Chat notes for archive/unarchive + Not replied 'Waiting longest' sort.
¶ 2026-10-02 - development PR #995: Sync main into development + join alembic heads (0175)
- ReplyBox received an update from PR #995: Sync main into development + join alembic heads (0175).
¶ 2026-10-02 - main PR #996: Promote: Development --> Main (2026-10-03)
- ReplyBox received an update from PR #996: Promote: Development --> Main (2026-10-03).
¶ 2026-10-03 - main PR #999: feat(reply-iq): drafts by line kind (sales / customer service / collections) + 30-day catch-up
- ReplyBox received an update from PR #999: feat(reply-iq): drafts by line kind (sales / customer service / collections) + 30-day catch-up.
¶ 2026-10-03 - main PR #1004: Public API: react to a message (POST /public/messages/{id}/reaction)
- ReplyBox received an update from PR #1004: Public API: react to a message (POST /public/messages/{id}/reaction).
¶ 2026-10-03 - main PR #1007: feat(reply-strip): strip X — labelled chips, one-tap 👍, pre-filled Better, phone rows
- ReplyBox received an update from PR #1007: feat(reply-strip): strip X — labelled chips, one-tap 👍, pre-filled Better, phone rows.
¶ 2026-10-03 - main PR #1002: chore(eb-links): 004 — 22 EB logins linked to Hub (applied 3 Oct, rollback kept)
- ReplyBox received an update from PR #1002: chore(eb-links): 004 — 22 EB logins linked to Hub (applied 3 Oct, rollback kept).
¶ 2026-10-03 - main PR #1006: Check answers page: one suggested reply at a time, teach a rule, weekly card
- ReplyBox received an update from PR #1006: Check answers page: one suggested reply at a time, teach a rule, weekly card.
¶ 2026-10-03 - main PR #1005: Public API: fetch a message's media with the org token (GET /public/messages/{id}/media)
- ReplyBox received an update from PR #1005: Public API: fetch a message's media with the org token (GET /public/messages/{id}/media).
¶ 2026-10-03 - main PR #1009: Reply engine v2 behind a per-workspace switch (off by default)
- ReplyBox received an update from PR #1009: Reply engine v2 behind a per-workspace switch (off by default).
- ReplyBox received an update from PR #1003: Add online status to member lists.
¶ 2026-10-03 - main PR #1012: Reply engine v2.5: FLOW-vs-TYPE step, flow priors from real-choice sends only (P2)
- ReplyBox received an update from PR #1012: Reply engine v2.5: FLOW-vs-TYPE step, flow priors from real-choice sends only (P2).
¶ 2026-10-03 - main PR #1010: Reply engine v2.5 (P1): v2 offers the flows staff run next on the line; voice-note transcripts reach drafts
- ReplyBox received an update from PR #1010: Reply engine v2.5 (P1): v2 offers the flows staff run next on the line; voice-note transcripts reach drafts.
¶ 2026-10-04 - main PR #1013: Reply engine v2.5.1: no welcome/thank-you flow at rank 1, confirm only after a yes, flows' own asks count (P2 round 3)
- ReplyBox received an update from PR #1013: Reply engine v2.5.1: no welcome/thank-you flow at rank 1, confirm only after a yes, flows' own asks count (P2 round 3).
¶ 2026-10-04 - main PR #1014: Reply engine: stamp priors_version in snapshot metadata (weekly learning job)
- ReplyBox received an update from PR #1014: Reply engine: stamp priors_version in snapshot metadata (weekly learning job).
- ReplyBox received an update from PR #1016: fix(ai): OpenAI out-of-credit answer rests as quota.
¶ 2026-10-04 - main PR #1017: fix(ai): OpenAI out-of-credit answer rests as quota (to main)
- ReplyBox received an update from PR #1017: fix(ai): OpenAI out-of-credit answer rests as quota (to main).
¶ 2026-10-04 - main PR #1019: Promote: Development --> Main (2026-10-04)
- ReplyBox received an update from PR #1019: Promote: Development --> Main (2026-10-04).
¶ 2026-10-05 - main PR #1018: Recap bar + interest level L1/L2/L3/Cold, off by default (#1015)
- ReplyBox received an update from PR #1018: Recap bar + interest level L1/L2/L3/Cold, off by default (#1015).
- ReplyBox received an update from PR #891: feat: Create Order from a chat into Encik Beku, phase 1 (#637).
¶ 2026-10-05 - main PR #1024: fix(drafts): one slow Studio job no longer moves the next drafts off the Studio
- ReplyBox received an update from PR #1024: fix(drafts): one slow Studio job no longer moves the next drafts off the Studio.
¶ 2026-10-05 - main PR #1026: AI usage counter: tokens, API price vs subscription cost, for CY and Charlie only
- ReplyBox received an update from PR #1026: AI usage counter: tokens, API price vs subscription cost, for CY and Charlie only.
- ReplyBox received an update from PR #619: feat(api): duplicate-channel merge tool — fold a dead channel into the live one (ADR 054, #584).
- ReplyBox received an update from PR #1032: feat(inbox): Create Order wizard pop-up, any business unit (#637).
¶ 2026-10-05 - development PR #1031: feat(web): bug reports record PC memory, heap, inbox tabs and cache size
- ReplyBox received an update from PR #1031: feat(web): bug reports record PC memory, heap, inbox tabs and cache size.
¶ 2026-10-05 - main PR #997: Launch day: Reply IQ multi-bubble replies + What's new launch notes with videos
- ReplyBox received an update from PR #997: Launch day: Reply IQ multi-bubble replies + What's new launch notes with videos.
¶ 2026-10-05 - main PR #1034: Ask Toppie: floating on every page, one continuous saved chat, per-person answer language
- ReplyBox received an update from PR #1034: Ask Toppie: floating on every page, one continuous saved chat, per-person answer language.
¶ 2026-10-05 - main PR #1027: Teach a concept: a taught rule can change which reply is suggested first (reply engine v2.6)
- ReplyBox received an update from PR #1027: Teach a concept: a taught rule can change which reply is suggested first (reply engine v2.6).
¶ 2026-10-05 - development PR #1029: fix(web): stop background inbox tabs growing memory and storage writes (#1028)
- ReplyBox received an update from PR #1029: fix(web): stop background inbox tabs growing memory and storage writes (#1028).
¶ 2026-10-05 - development PR #1036: chore: sync main into development, one alembic head (0180)
- ReplyBox received an update from PR #1036: chore: sync main into development, one alembic head (0180).
¶ 2026-10-05 - main PR #1011: Public API: POST /public/ai/interpret — Studio subscription JSON job for Hera (off unless workspace AND token allowlisted)
- ReplyBox received an update from PR #1011: Public API: POST /public/ai/interpret — Studio subscription JSON job for Hera (off unless workspace AND token allowlisted).
- ReplyBox received an update from PR #1041: fix(api): channel merge keeps a shell an outside table still names (#584).
¶ 2026-10-06 - main PR #1042: Promote: Development --> Main
- ReplyBox received an update from PR #1042: Promote: Development --> Main.
¶ 2026-10-06 - main PR #1043: feat(calendar): add fulfilment calendar page and API integration for …
- ReplyBox received an update from PR #1043: feat(calendar): add fulfilment calendar page and API integration for ….
¶ 2026-10-06 - main PR #1039: AI usage: exact MiniMax tokens, measured plan size, fees confirmed by CY
- ReplyBox received an update from PR #1039: AI usage: exact MiniMax tokens, measured plan size, fees confirmed by CY.
¶ 2026-10-06 - main PR #1038: Open IQ Center link for managers on Check answers: one-time sign-in handoff (flag off)
- ReplyBox received an update from PR #1038: Open IQ Center link for managers on Check answers: one-time sign-in handoff (flag off).
¶ 2026-10-06 - main PR #1040: Saved replies: count every use, most-used first in '/', picture on the right, IQ edit lane (flag off)
- ReplyBox received an update from PR #1040: Saved replies: count every use, most-used first in '/', picture on the right, IQ edit lane (flag off).
¶ 2026-10-06 - main PR #1046: docs(shipped): Open IQ Center link for managers (#1038)
- ReplyBox received an update from PR #1046: docs(shipped): Open IQ Center link for managers (#1038).
¶ 2026-10-06 - main PR #1056: fix(inbox): phone '/' saved-reply menu spans the whole bar
- ReplyBox received an update from PR #1056: fix(inbox): phone '/' saved-reply menu spans the whole bar.
¶ 2026-10-06 - main PR #1059: docs(shipped): saved-reply use counter (#1040, #1056)
- ReplyBox received an update from PR #1059: docs(shipped): saved-reply use counter (#1040, #1056).
¶ 2026-10-06 - main PR #1058: Reply decision + code-computed confidence, recorded in shadow (off by default)
- ReplyBox received an update from PR #1058: Reply decision + code-computed confidence, recorded in shadow (off by default).
¶ 2026-10-06 - main PR #1067: docs(shipped): reply decision shadow record (#1058)
- ReplyBox received an update from PR #1067: docs(shipped): reply decision shadow record (#1058).
¶ 2026-10-06 - main PR #1066: Send product via '//' — product picker, draft picture + caption with the exact price (flags off)
- ReplyBox received an update from PR #1066: Send product via '//' — product picker, draft picture + caption with the exact price (flags off).
¶ 2026-10-06 - main PR #1068: docs(shipped): Send product (#1066)
- ReplyBox received an update from PR #1068: docs(shipped): Send product (#1066).
¶ 2026-10-06 - main PR #1052: fix(inbox): show the sending channel on each Forward picker row (#1047)
- ReplyBox received an update from PR #1052: fix(inbox): show the sending channel on each Forward picker row (#1047).
¶ 2026-10-06 - main PR #1057: Search chats by WhatsApp @username and ~profile name (#1053)
- ReplyBox received an update from PR #1057: Search chats by WhatsApp @username and ~profile name (#1053).
¶ 2026-10-06 - main PR #1061: Move the floating Ask Toppie button to the top right (#1054)
- ReplyBox received an update from PR #1061: Move the floating Ask Toppie button to the top right (#1054).
¶ 2026-10-06 - main PR #1055: fix(inbox): stop background chat tabs rescanning the whole cache on every change (#1045)
- ReplyBox received an update from PR #1055: fix(inbox): stop background chat tabs rescanning the whole cache on every change (#1045).
¶ 2026-10-06 - main PR #1060: fix(contacts): shared contact card keeps its number so staff can open the chat (#1048)
- ReplyBox received an update from PR #1060: fix(contacts): shared contact card keeps its number so staff can open the chat (#1048).
¶ 2026-10-06 - main PR #1069: feat(inbox): freeze recorder — capture what real PCs run during "Page Unresponsive" (#1045)
- ReplyBox received an update from PR #1069: feat(inbox): freeze recorder — capture what real PCs run during "Page Unresponsive" (#1045).
¶ 2026-10-06 - main PR #1071: fix(reply-copilot): honest suggestion-failure counts, one retry for dropped auto requests, no same-second false 409
- ReplyBox received an update from PR #1071: fix(reply-copilot): honest suggestion-failure counts, one retry for dropped auto requests, no same-second false 409.
¶ 2026-10-06 - main PR #1073: fix(web): tab title loop froze chats with double-spaced names (#1045)
- ReplyBox received an update from PR #1073: fix(web): tab title loop froze chats with double-spaced names (#1045).
¶ 2026-10-06 - main PR #1074: Landing v2 live at / and /pricing (signed-out visitors); staff sign-in unchanged
- ReplyBox received an update from PR #1074: Landing v2 live at / and /pricing (signed-out visitors); staff sign-in unchanged.
¶ 2026-10-06 - main PR #1075: docs(shipped): six ReplyBox fixes shipped 6 Oct (#1052 #1057 #1061 #1055 #1060 #1069)
- ReplyBox received an update from PR #1075: docs(shipped): six ReplyBox fixes shipped 6 Oct (#1052 #1057 #1061 #1055 #1060 #1069).
¶ 2026-10-06 - main PR #1076: docs(shipped): landing v2 live at / and /pricing (#1074)
- ReplyBox received an update from PR #1076: docs(shipped): landing v2 live at / and /pricing (#1074).
¶ 2026-10-06 - main PR #1062: feat(tags): self-serve location tagging by state (#1049), off by default
- ReplyBox received an update from PR #1062: feat(tags): self-serve location tagging by state (#1049), off by default.
¶ 2026-10-06 - main PR #1078: fix(reply-copilot): stop waiting for a stored set once the writer gives up
- ReplyBox received an update from PR #1078: fix(reply-copilot): stop waiting for a stored set once the writer gives up.
¶ 2026-10-06 - main PR #1079: docs(shipped): #1062 self-serve location auto-tag, ISCB on
- ReplyBox received an update from PR #1079: docs(shipped): #1062 self-serve location auto-tag, ISCB on.
¶ 2026-10-06 - main PR #1080: fix(tags): remember every staff tag removal; time budget for the location tagger (#1049)
- ReplyBox received an update from PR #1080: fix(tags): remember every staff tag removal; time budget for the location tagger (#1049).
¶ 2026-10-06 - main PR #1086: docs(shipped): #1080 location auto-tag removals + time budget
- ReplyBox received an update from PR #1086: docs(shipped): #1080 location auto-tag removals + time budget.
- ReplyBox received an update from PR #1065: Add sender avatars and live presence, and fix sidebar controls.
- ReplyBox received an update from PR #1077: feat: Create Order for Encik Beku follows the Sales Module wizard.
- ReplyBox received an update from PR #1044: fix(web): clearer 6-step ChatGPT setup on Connected Apps.
¶ 2026-10-06 - development PR #1096: Merge main into development (sync before #1094)
- ReplyBox received an update from PR #1096: Merge main into development (sync before #1094).
¶ 2026-10-06 - development PR #1097: feat(web): stop and catch "Page Unresponsive" freezes: observer write cap, hang detector (#1094)
- ReplyBox received an update from PR #1097: feat(web): stop and catch "Page Unresponsive" freezes: observer write cap, hang detector (#1094).
- ReplyBox received an update from PR #1098: fix(api): type the member presence payload as dict[str, Any].
¶ 2026-10-06 - main PR #1099: Promote: Development --> Main (2026-10-07)
- ReplyBox received an update from PR #1099: Promote: Development --> Main (2026-10-07).
¶ 2026-10-06 - main PR #1095: fix(reply): let the Studio accept an extra key inside a reply slot
- ReplyBox received an update from PR #1095: fix(reply): let the Studio accept an extra key inside a reply slot.
¶ 2026-10-06 - main PR #1089: fix(web): each tab keeps its own workspace; filters and search cover every ticked workspace (#1081)
- ReplyBox received an update from PR #1089: fix(web): each tab keeps its own workspace; filters and search cover every ticked workspace (#1081).
¶ 2026-10-06 - main PR #1091: feat(contacts): share username-only contacts, save a callable number (#1083)
- ReplyBox received an update from PR #1091: feat(contacts): share username-only contacts, save a callable number (#1083).
¶ 2026-10-06 - main PR #1108: docs(shipped): 6 Oct meeting wave 1 (#1105)
- ReplyBox received an update from PR #1108: docs(shipped): 6 Oct meeting wave 1 (#1105).
¶ 2026-10-06 - main PR #1106: Ask Toppie: one floating top-right spot on every page, tuck to corner, reply count badge
- ReplyBox received an update from PR #1106: Ask Toppie: one floating top-right spot on every page, tuck to corner, reply count badge.
¶ 2026-10-06 - main PR #1110: docs(shipped): #1106 Ask Toppie top-right corner, tuck, reply count
- ReplyBox received an update from PR #1110: docs(shipped): #1106 Ask Toppie top-right corner, tuck, reply count.
¶ 2026-10-06 - main PR #1109: release: 6 Oct meeting wave 2 (#1107 personal pins, #1103 inbox polish)
- ReplyBox received an update from PR #1109: release: 6 Oct meeting wave 2 (#1107 personal pins, #1103 inbox polish).
¶ 2026-10-06 - main PR #1103: Inbox polish: clearer search headings, thicker customer ring, no accidental kept tabs (#1102)
- ReplyBox received an update from PR #1103: Inbox polish: clearer search headings, thicker customer ring, no accidental kept tabs (#1102).
¶ 2026-10-06 - main PR #1111: docs(shipped): 6 Oct meeting wave 2 (#1109)
- ReplyBox received an update from PR #1111: docs(shipped): 6 Oct meeting wave 2 (#1109).
¶ 2026-10-07 - main PR #1124: ci: Promote Web (external) workflow for www.replybox.my
- ReplyBox received an update from PR #1124: ci: Promote Web (external) workflow for www.replybox.my.
¶ 2026-10-07 - development PR #1125: ci: Promote Web (external) workflow (same file as main #1124)
- ReplyBox received an update from PR #1125: ci: Promote Web (external) workflow (same file as main #1124).
¶ 2026-10-07 - main PR #1104: feat(calendar): technician calendar from Encik Beku — Day/Week columns, free slots, range search (#1101)
- ReplyBox received an update from PR #1104: feat(calendar): technician calendar from Encik Beku — Day/Week columns, free slots, range search (#1101).
¶ 2026-10-07 - main PR #1126: fix(calendar): technician calendar only where Encik Beku answers the login
- ReplyBox received an update from PR #1126: fix(calendar): technician calendar only where Encik Beku answers the login.
¶ 2026-10-07 - main PR #1127: docs(shipped): technician calendar (#1104, #1126)
- ReplyBox received an update from PR #1127: docs(shipped): technician calendar (#1104, #1126).
¶ 2026-10-07 - main PR #1128: fix(contacts): username-only contact cards keep their WhatsApp ID, open the chat, and can be forwarded (#1048)
- ReplyBox received an update from PR #1128: fix(contacts): username-only contact cards keep their WhatsApp ID, open the chat, and can be forwarded (#1048).
¶ 2026-10-07 - main PR #1130: docs(shipped): #1128 contact cards of username-only customers
- ReplyBox received an update from PR #1130: docs(shipped): #1128 contact cards of username-only customers.
- ReplyBox received an update from PR #1134: fix(inbox): a malformed conversation page no longer crashes the inbox.
- ReplyBox received an update from PR #1116: feat(mcp): batch send — one prepared message to up to 10 numbers, one approval (#1112).
- ReplyBox received an update from PR #1119: ChatDaddy import: whole routed graph, locked incomplete imports, trusted chat conditions (#1001).
- ReplyBox received an update from PR #1137: fix(access): Edit sent messages toggle on Manage Access + backfill for custom access.
- ReplyBox received an update from PR #1122: feat(flows): blank message step runs its tags without sending (#1114).
¶ 2026-10-07 - main PR #1143: Promote : Development --> Main
- ReplyBox received an update from PR #1143: Promote : Development --> Main.
¶ 2026-10-07 - main PR #1132: feat(inbox): buying-history ring in blues + intention-level icon on the photo
- ReplyBox received an update from PR #1132: feat(inbox): buying-history ring in blues + intention-level icon on the photo.
¶ 2026-10-07 - main PR #1146: docs(shipped): ring in blues + intention-level icon (#1132)
- ReplyBox received an update from PR #1146: docs(shipped): ring in blues + intention-level icon (#1132).
- ReplyBox received an update from PR #1121: feat(sales-orders): Create Order phase 1 — open to everyone, matches Encik Beku's wizard.
¶ 2026-10-07 - development PR #1063: Add Scaffolding and Lorry Crane order creation
- ReplyBox received an update from PR #1063: Add Scaffolding and Lorry Crane order creation.
- ReplyBox received an update from PR #1148: feat(flows): import a tag-only ChatDaddy step as blank Start -> Add Tag (#1114).
¶ 2026-10-07 - main PR #1149: Landing V3: AI-first Intelligent Reply System, characters, far fewer words on phones
- ReplyBox received an update from PR #1149: Landing V3: AI-first Intelligent Reply System, characters, far fewer words on phones.
¶ 2026-10-07 - main PR #1150: docs(shipped): landing v3 live (#1149)
- ReplyBox received an update from PR #1150: docs(shipped): landing v3 live (#1149).
¶ 2026-10-07 - main PR #1050: Reply engine v2: lead-in + question drafts go out as two bubbles
- ReplyBox received an update from PR #1050: Reply engine v2: lead-in + question drafts go out as two bubbles.
¶ 2026-10-07 - main PR #1051: Boss Mode: owner digest per workspace + all-workspaces summary, fixed rules, Ask Boss Mode (CY + Charlie)
- ReplyBox received an update from PR #1051: Boss Mode: owner digest per workspace + all-workspaces summary, fixed rules, Ask Boss Mode (CY + Charlie).
¶ 2026-10-07 - main PR #1154: docs(shipped): #1051 Boss Mode live for CY and Charlie
- ReplyBox received an update from PR #1154: docs(shipped): #1051 Boss Mode live for CY and Charlie.
¶ 2026-10-07 - development PR #1155: Revert #1063: Scaffolding and Lorry Crane order creation
- ReplyBox received an update from PR #1155: Revert #1063: Scaffolding and Lorry Crane order creation.
¶ 2026-10-07 - main PR #1157: Promote : Development --> Main
- ReplyBox received an update from PR #1157: Promote : Development --> Main.
¶ 2026-10-07 - main PR #1160: Release: pins, Forward search across all chats, saved-reply "/" menu (CY fix round)
- ReplyBox received an update from PR #1160: Release: pins, Forward search across all chats, saved-reply "/" menu (CY fix round).
¶ 2026-10-07 - main PR #1145: Forward: search every chat, not only the 50 newest
- ReplyBox received an update from PR #1145: Forward: search every chat, not only the 50 newest.
¶ 2026-10-07 - main PR #1161: fix(inbox): intention level only on real open requests; badge clear of the ring
- ReplyBox received an update from PR #1161: fix(inbox): intention level only on real open requests; badge clear of the ring.
¶ 2026-10-07 - main PR #1163: docs(shipped): #1160 pins, Forward search, saved-reply menu
- ReplyBox received an update from PR #1163: docs(shipped): #1160 pins, Forward search, saved-reply menu.
¶ 2026-10-07 - main PR #1168: fix(inbox): intention level off for crew saved as Tech/Subcon; whole-message never-mind-thanks is a no
- ReplyBox received an update from PR #1168: fix(inbox): intention level off for crew saved as Tech/Subcon; whole-message never-mind-thanks is a no.
¶ 2026-10-07 - main PR #1170: docs(shipped): #1161 + #1168 intention level only on real open requests
- ReplyBox received an update from PR #1170: docs(shipped): #1161 + #1168 intention level only on real open requests.
¶ 2026-10-07 - main PR #1169: Landing: full tour video is the Celine version
- ReplyBox received an update from PR #1169: Landing: full tour video is the Celine version.
¶ 2026-10-07 - main PR #1171: docs(shipped): #1169 landing tour video is the Celine version
- ReplyBox received an update from PR #1171: docs(shipped): #1169 landing tour video is the Celine version.
¶ 2026-10-07 - main PR #1172: Release 2 (CY fix round, 8 Oct): Toppie button, pins on the photo corner, suggested replies Hide remembered on phone, empty-screen animation
- ReplyBox received an update from PR #1172: Release 2 (CY fix round, 8 Oct): Toppie button, pins on the photo corner, suggested replies Hide remembered on phone, empty-screen animation.
¶ 2026-10-07 - main PR #1152: Ask Toppie: room in the corner, drag to fixed places, a "Toppie" tab (#1136)
- ReplyBox received an update from PR #1152: Ask Toppie: room in the corner, drag to fixed places, a "Toppie" tab (#1136).
¶ 2026-10-07 - main PR #1175: docs(shipped): #1172 CY fix round, release 2
- ReplyBox received an update from PR #1175: docs(shipped): #1172 CY fix round, release 2.
¶ 2026-10-07 - main PR #1177: feat(recap): the recap call also reads the intention (off by default; shadow / on)
- ReplyBox received an update from PR #1177: feat(recap): the recap call also reads the intention (off by default; shadow / on).
¶ 2026-10-07 - main PR #1173: fix(contact-card): keep the layout of an unreadable card with the message (#1048)
- ReplyBox received an update from PR #1173: fix(contact-card): keep the layout of an unreadable card with the message (#1048).
¶ 2026-10-07 - main PR #1144: feat(api): record how each sent reply was made, and every customer message (off by default)
- ReplyBox received an update from PR #1144: feat(api): record how each sent reply was made, and every customer message (off by default).
¶ 2026-10-07 - main PR #1178: docs(shipped): odd contact card layout kept (#1173)
- ReplyBox received an update from PR #1178: docs(shipped): odd contact card layout kept (#1173).
¶ 2026-10-07 - main PR #1153: Check answers: save "the meaning is wrong" as a lesson for that kind of chat (#1140 part A, API only)
- ReplyBox received an update from PR #1153: Check answers: save "the meaning is wrong" as a lesson for that kind of chat (#1140 part A, API only).
¶ 2026-10-07 - main PR #1179: docs(shipped): #1177 AI intention read, shadow
- ReplyBox received an update from PR #1179: docs(shipped): #1177 AI intention read, shadow.
¶ 2026-10-07 - main PR #1180: docs(shipped): #1144 reply origin tag (off), #1153 meaning lesson record
- ReplyBox received an update from PR #1180: docs(shipped): #1144 reply origin tag (off), #1153 meaning lesson record.
¶ 2026-10-07 - main PR #1129: Read every photo, voice note, PDF and video before the bot drafts (auto-reading workspaces only)
- ReplyBox received an update from PR #1129: Read every photo, voice note, PDF and video before the bot drafts (auto-reading workspaces only).
¶ 2026-10-07 - main PR #1070: fix(reply decision report): count rank 1 sent as a later message as unchanged
- ReplyBox received an update from PR #1070: fix(reply decision report): count rank 1 sent as a later message as unchanged.
¶ 2026-10-07 - main PR #1174: Voice typing: tell the Studio who spoke and which dictation it is (ids only)
- ReplyBox received an update from PR #1174: Voice typing: tell the Studio who spoke and which dictation it is (ids only).
¶ 2026-10-08 - main PR #1181: feat(reply-plan): the planner uses a meaning lesson, off by default (#1140 part B)
- ReplyBox received an update from PR #1181: feat(reply-plan): the planner uses a meaning lesson, off by default (#1140 part B).
¶ 2026-10-08 - main PR #1184: SHIPPED: read media before the bot drafts (#1129)
- ReplyBox received an update from PR #1184: SHIPPED: read media before the bot drafts (#1129).
¶ 2026-10-08 - development PR #1189: feat(web): workspace filter on Members — roles and access across workspaces (#1120)
- ReplyBox received an update from PR #1189: feat(web): workspace filter on Members — roles and access across workspaces (#1120).
- ReplyBox received an update from PR #1190: feat(web): manage access for several members at once (#1120).
¶ 2026-10-08 - main PR #1182: feat(iq-room): every staff member who sends replies may open IQ Center
- ReplyBox received an update from PR #1182: feat(iq-room): every staff member who sends replies may open IQ Center.
¶ 2026-10-08 - main PR #1193: docs: SHIPPED lines for #1181 and #1182
- ReplyBox received an update from PR #1193: docs: SHIPPED lines for #1181 and #1182.
¶ 2026-10-08 - main PR #1194: fix(recap): intention read keeps a bargaining customer open
- ReplyBox received an update from PR #1194: fix(recap): intention read keeps a bargaining customer open.
¶ 2026-10-08 - main PR #1199: docs(shipped): AI intention read on for Encik Beku
- ReplyBox received an update from PR #1199: docs(shipped): AI intention read on for Encik Beku.
¶ 2026-10-08 - main PR #1203: Release 3 (CY 8 Oct): Draft/Approved label removed from saved replies; Toppie, Forward and '/' menu follow-ups
- ReplyBox received an update from PR #1203: Release 3 (CY 8 Oct): Draft/Approved label removed from saved replies; Toppie, Forward and '/' menu follow-ups.
¶ 2026-10-08 - main PR #1198: Hide the Draft / Approved label on saved replies
- ReplyBox received an update from PR #1198: Hide the Draft / Approved label on saved replies.
¶ 2026-10-08 - main PR #1204: docs(shipped): #1203 CY fix round, release 3
- ReplyBox received an update from PR #1204: docs(shipped): #1203 CY fix round, release 3.
¶ 2026-10-08 - main PR #1205: Send product: show IQ's finished captions; one server price guard
- ReplyBox received an update from PR #1205: Send product: show IQ's finished captions; one server price guard.
¶ 2026-10-08 - main PR #1206: docs(shipped): #1205 Send product captions from IQ
- ReplyBox received an update from PR #1206: docs(shipped): #1205 Send product captions from IQ.
¶ 2026-10-08 - main PR #1209: revert: AI intention read in the recap call (#1177, #1194)
- ReplyBox received an update from PR #1209: revert: AI intention read in the recap call (#1177, #1194).
¶ 2026-10-08 - main PR #1211: docs(shipped): #1209 AI intention read stopped
- ReplyBox received an update from PR #1211: docs(shipped): #1209 AI intention read stopped.
¶ 2026-10-08 - main PR #1212: Try a timed-out media reading once more, ten minutes later
- ReplyBox received an update from PR #1212: Try a timed-out media reading once more, ten minutes later.
¶ 2026-10-08 - main PR #1213: SHIPPED: later try for media readings (#1212)
- ReplyBox received an update from PR #1213: SHIPPED: later try for media readings (#1212).
¶ 2026-10-08 - development PR #1196: feat(admin): Module access tab — per-workspace access for each sales module and calendar (#1185)
- ReplyBox received an update from PR #1196: feat(admin): Module access tab — per-workspace access for each sales module and calendar (#1185).
- ReplyBox received an update from PR #1214: feat(workspaces): hide Personal workspaces from platform admins' switcher (#1192).
- ReplyBox received an update from PR #1202: feat: manage member access from the admin portal (#1120).
¶ 2026-10-08 - main PR #1215: Promote : Development --> Main
- ReplyBox received an update from PR #1215: Promote : Development --> Main.
¶ 2026-10-08 - main PR #1210: Reply copilot: spare saved-reply slots go to high-use replies (D6)
- ReplyBox received an update from PR #1210: Reply copilot: spare saved-reply slots go to high-use replies (D6).
¶ 2026-10-08 - main PR #1216: fix(alembic): merge the two migration heads that block every API deploy
- ReplyBox received an update from PR #1216: fix(alembic): merge the two migration heads that block every API deploy.
¶ 2026-10-08 - main PR #1217: docs(shipped): #1210 + #1216
- ReplyBox received an update from PR #1217: docs(shipped): #1210 + #1216.
¶ 2026-10-08 - main PR #1151: Voice typing everywhere: any text box, bottom Toppie pill, history, retry (draft)
- ReplyBox received an update from PR #1151: Voice typing everywhere: any text box, bottom Toppie pill, history, retry (draft).
¶ 2026-10-08 - development PR #1218: chore: sync main into development (alembic 0193 + 0194 merge head)
- ReplyBox received an update from PR #1218: chore: sync main into development (alembic 0193 + 0194 merge head).