Skip to content

PR 1: Optimistic outbox, chat autoscroll and deny lifecycle - #13

Draft
EpicStarAi wants to merge 1 commit into
mainfrom
feat/pr1-optimistic-outbox-autoscroll-deny-lifecycle
Draft

PR 1: Optimistic outbox, chat autoscroll and deny lifecycle#13
EpicStarAi wants to merge 1 commit into
mainfrom
feat/pr1-optimistic-outbox-autoscroll-deny-lifecycle

Conversation

@EpicStarAi

Copy link
Copy Markdown
Owner

Scope

Implements the first behavior/safety quality pass for EPIC☠️GRAM:

Current state

The branch now contains the implementation contract and QA gates. Code commits will follow in this draft PR.

Invariants

  • Read-only requests never create write actions.
  • Prepare-send creates pending state only.
  • Only explicit Allow may reach Telegram send.
  • Deny is terminal and cannot be revived after refresh/localStorage restore.
  • Manual send shows a right-side bubble immediately.
  • TDLib refresh must not duplicate the optimistic bubble.
  • Opening/switching chats starts at the newest message.
  • Reading older history is not interrupted by polling.

QA gates before ready-for-review

  • Next.js build passes.
  • Read-only production scenario shows no action card and no mutation.
  • Prepare-send shows exact chat/text with Allow/Deny and no pre-Allow send.
  • Deny produces CANCELLED and no network write.
  • Allow produces exactly one Telegram message.
  • Optimistic bubble appears immediately and deduplicates after TDLib refresh.
  • Detached reader mode shows ↓ Новые сообщения instead of forcing scroll.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant