Page MenuHomePhabricator

Flow: Include working diff link in RC feed event
Open, HighPublic

Description

Activity (such as replies) in Flow currently result in the following RC entry:

irc.wikimedia.org/#test2.wikipedia

rc-pmtpa: [[Talk:Flow QA]] ! http://test2.wikipedia.org/w/index.php?diff=0&oldid=0&rcid=82816 * Krinkle * (+31) reply,rpw4ywdy0xw7t5ou,rpwgr7r79uy8pznh

chat.freenode.net/#cvn-sw

[[m:CVNBot]]: IP [[test2wiki:User:162.222.73.148]] matched edit summary "[bcdfghjklmnpqrstvwxz]{8,}" (possible nonsense) [[test2wiki:Talk:Flow QA]] (+22) Diff: https://test2.wikipedia.org/?diff=0&oldid=0&rcid=82813 "reply,rpwgkgfa3bbexlwf,rpwgkgfd7m5qq1b3"

It is paramount that Flow generates more sensible RC events before being enabled in a visible way, to avoid:

  1. Unusable clutter for vandalism patrollers (they are overwhelmed as it is already in our crippled system).
  • and, though less important for the short term: --
  1. Spam evading our patrollers.

#1 Would be solved by having these not be useless (either don't emit rc events for now, or implement them in a way that produces a useful link and doesn't abuse the edit summary field).

#2 Would be solved by making the content actions (creation and modification of posts) patrollable by:

or; by continuing to keep them outside rcpatrol and instead provide a different means for patrollers to monitor Flow events on wikis with $wgUseRCPatrol enabled. Though I'd recommend against that as that will likely not take off and not integrate with any of the dozens of patrol workflows, and considering the patrol workforce isn't huge, giving them yet another thing to monitor is probably not productive, and would also cost more work by the Flow team to invent. So best to simply defer to the system core already has available. It's a very minimal system (simple boolean flag and log event), but you'd be surprised how much unofficial infrastructure is built atop that.


Version: unspecified
Severity: critical
See Also:
https://bugzilla.wikimedia.org/show_bug.cgi?id=60559

Details

Reference
bz61927

Event Timeline

bzimport raised the priority of this task from to High.Nov 22 2014, 2:55 AM
bzimport set Reference to bz61927.
bzimport added a subscriber: Unknown Object (MLST).
  • This bug has been marked as a duplicate of bug 60559 ***

Change 117246 had a related patch set uploaded by EBernhardson:
New hook CheckUserInsertForRecentChange

https://gerrit.wikimedia.org/r/117246

Change 117246 merged by jenkins-bot:
New hook CheckUserInsertForRecentChange

https://gerrit.wikimedia.org/r/117246

Change 117253 had a related patch set uploaded by EBernhardson:
Inject CheckUser data more directly

https://gerrit.wikimedia.org/r/117253

Change 117253 merged by jenkins-bot:
Inject CheckUser data more directly

https://gerrit.wikimedia.org/r/117253

This should be fixed - Krinkle or Lego, can you test to make sure? It appears the RC feed is an invite-only channel :)

(In reply to Maryana Pinchuk from comment #6)

This should be fixed - Krinkle or Lego, can you test to make sure? It
appears the RC feed is an invite-only channel :)

The RC feed is on a different IRC network (not freenode): irc://irc.wikimedia.org:6667/mediawiki.wikipedia (other currently relevant channels: #meta.wikimedia and #en.wikipedia )

I'm reopening this bug, because the current situation doesn't address Krinkle's concern #2 at all, and concern #1 still needs a working link. (Once the link works properly, this bug should probably be closed, and a new (less urgent) one created for concern #2 (integration with patrol workflows)

Detailed note:

I see this in today's #mediawiki.wikipedia feed:

broken (completely wrong page) diff link:
<rc-pmtpa> [[Talk:Beta Features/Hovercards]] ! http://www.mediawiki.org/w/index.php?diff=0&oldid=0&rcid=1060297 * TheDJ * (+1430)

(That should instead link to the actual: https://www.mediawiki.org/w/index.php?title=Talk:Beta_Features/Hovercards&topic_postId=rrdvkg8xh26l1z94&workflow=rrc19ij5nimkme01#flow-post-rrdvkg8xh26l1z94

Comparison item (a normal page edit):
<rc-pmtpa> [[Google Summer of Code 2014]] http://www.mediawiki.org/w/index.php?diff=936244&oldid=936243&rcid=1060272 * Qgil * (-619) Removing previous list of students interested

API XML feed output :

http://test2.wikipedia.org/w/api.php?format=jsonfm&action=query&list=recentchanges

The broken links are gone, but still is useless from the perspective of patrolling recent changes:

rc-pmtpa: [[Topic:S6hfg9fw4mka4cbb]] ! http://www.mediawiki.org/w/index.php?title=Topic:S6hfg9fw4mka4cbb&action=history * Krinkle * (+13) Krinkle commented on "Another new topic" (Another reply)

At some point in the past it linked to the topic page. That wasn't super useful as one had to find the right reply, but at least the relevant content was displayed at the provided link. And in most cases there would only be one post (creation of topic) or the first reply.

But now it doesn't do that anymore. Instead it now links to the history page which doesn't display the change made nor the topic changed. Instead it links to where the real recent changes are (action=history) and among other entries, one can find the right one:

That's basically the line that should be in the RC event. Especially the url behind "commented" would be expected to be in there.

Nemo_bis renamed this task from Flow: Don't polute rc stream with malformed RC events to Flow: Don't pollute rc stream with malformed RC events.Jan 30 2015, 12:48 PM
Nemo_bis set Security to None.
Krinkle edited subscribers, added: Matanya; removed: Unknown Object (MLST).Mar 29 2015, 6:42 AM

Confirmed this is still an issue:

From irc.wikimedia.org/mediawiki.wikipedia

[[Topic:Wvcg8e5iugl71h64]] https://www.mediawiki.org/w/index.php?title=Topic:Wvcg8e5iugl71h64&action=history * Krinkle * (+4) Krinkle commented on "Test" (test)
[[Topic:Wv9w0kz3xr9sttzh]] https://www.mediawiki.org/w/index.php?title=Topic:Wv9w0kz3xr9sttzh&action=history * Krinkle * (+6) Krinkle commented on "test" (Reply.)

And to confirm the task scope, this applies to EventStreams as well, which comes from the same RCFeed event.

{
    "$schema": "/mediawiki/recentchange/1.0.0",
    "meta": {
        "uri": "https://www.mediawiki.org/wiki/Topic:Wv9w0kz3xr9sttzh",
        "request_id": "8d2392bb-1e03-493f-9412-737a5c003510",
        "id": "73f8b49a-66ad-4dd6-a556-7d56e41c2dc7",
        "dt": "2022-05-11T18:11:54Z",
        "domain": "www.mediawiki.org",
        "stream": "mediawiki.recentchange",
        "topic": "eqiad.mediawiki.recentchange",
        "partition": 0,
        "offset": 3854477016
    },
    "id": 7000501,
    "type": "142",
    "namespace": 2600,
    "title": "Topic:Wv9w0kz3xr9sttzh",
    "comment": "Krinkle commented on \"test\" (Reply 2.)",
    "timestamp": 1652292714,
    "user": "Krinkle",
    "bot": false,
    "server_url": "https://www.mediawiki.org",
    "server_name": "www.mediawiki.org",
    "server_script_path": "/w",
    "wiki": "mediawikiwiki",
    "parsedcomment": "Krinkle commented on &quot;test&quot; (Reply 2.)"
}

Compared to a talk page edit:

[[Project talk:Sandbox]] https://www.mediawiki.org/w/index.php?diff=5206357&oldid=5191532&rcid=7000502 * Krinkle * (-244) Replaced content with "Example"

{
    "$schema": "/mediawiki/recentchange/1.0.0",
    "meta": {
        "uri": "https://www.mediawiki.org/wiki/Project_talk:Sandbox",
        "request_id": "0917a485-24c6-4146-8d38-ebf1ad0030cc",
        "id": "57ac639d-d3be-49a0-a5f7-15d1cfb3848d",
        "dt": "2022-05-11T18:14:06Z",
        "domain": "www.mediawiki.org",
        "stream": "mediawiki.recentchange",
        "topic": "eqiad.mediawiki.recentchange",
        "partition": 0,
        "offset": 3854480583
    },
    "id": 7000502,
    "type": "edit",
    "namespace": 5,
    "title": "Project talk:Sandbox",
    "comment": "Example",
    "timestamp": 1652292846,
    "user": "Krinkle",
    "bot": false,
    "minor": false,
    "patrolled": true,
    "length": {
        "old": 340,
        "new": 96
    },
    "revision": {
        "old": 5191532,
        "new": 5206357
    },
    "server_url": "https://www.mediawiki.org",
    "server_name": "www.mediawiki.org",
    "server_script_path": "/w",
    "wiki": "mediawikiwiki",
    "parsedcomment": "Example"
}
Krinkle renamed this task from Flow: Don't pollute rc stream with malformed RC events to Flow: Include working diff link in RC feed entry.May 11 2022, 6:09 PM
Krinkle renamed this task from Flow: Include working diff link in RC feed entry to Flow: Include working diff link in RC feed event.

The onIRCLineURL hook seems to exist for this purpose, as it allows the $url that RCFeedFormatter subclasses use to be modified from the default revision-based URL. Flow already uses this, but it seems to not work.

There is an entire Flow\IRCLineUrlFormatter class with a bunch of logic, including something about a diff link being the first and preferred output. I guess it just doesn't work, or at least not anymore.