Page MenuHomePhabricator

Editcheck waits for all promises to resolve before displaying any checks
Open, Needs TriagePublicBUG REPORT

Description

When async checks were added, we took the simple route to make development quick by just having all checks return promises, and then waiting for them all to resolve before we display any of them.

This has drawbacks when we consider slow async checks, because a slow internet connection or slow server will hold up all checks by however-many-seconds.

However, if we want to allow checks to be displayed as soon as they stream in, we need to solve some UX problems:

  • In mid-edit checks this is easy, because we can just add them into the sidebar whenever they individually resolve.
  • In pre-save we encounter difficulties because we show a single check at a time in document-order and a count of checks that need to be resolved, and coping with a check coming in earlier in the document than the current focus causes some notification issues or potential user confusion -- along with questions about e.g. how long we should wait if there's only outstanding async checks in the queue before we move along to saving.

Related Objects

Event Timeline

This is pretty fine for our exact current circumstance, but suggestion mode (T399612) is going to involve triggering checks on the entire current document, and waiting for per-paragraph tone checks on a long article before rendering any check could introduce excessive slowness.

I've been experimenting this week. I have a replacement for Promise.all that allows us to react as promises come in. Next up I'll be trying to integrate it with the existing system to see if it behaves as hoped.

I've been integrating my code and was hoping to have positive news at this point. I'm hoping to do the minimal change to get this working, but I'm getting some odd behaviour I still need to chase down.

ppelberg removed zoe as the assignee of this task.Nov 8 2025, 12:06 AM
ppelberg moved this task from Inbox to Q3 2025-2026 on the Editing-team (Planning) board.
ppelberg moved this task from Needs Discussion to Inbox on the Editing-team (Planning) board.

Ed to confer with Editing Engineering and decide whether we will prioritize work on this right now or defer it until we encounter the issue this work is meant to address.

defer it until we encounter the issue this work is meant to address.

We're going to wait until this becomes more of an issue.

defer it until we encounter the issue this work is meant to address.

We're going to wait until this becomes more of an issue.

Sounds good. Thank you for confirming.