Conversations


Implementation Stories, in priority order

I can view the Conversations about my Thing in a separate paner: Ideally, there will be an open/close/size-adjustable slider that separates the Conversations Pane from the main Thing view.
I can fork a tangent thread off of a comment: This is being delayed until we do the big UI rewrite.
As a Moderator, I can Archive a thread: "Archiving" means that this thread is considered closed and done. The intended use case is for when the thread was about making changes which have happened, or when the conversation has been deemed a dead end. The archived thread is still generally accessible, but requires an extra mouse click to view it, and no one can comment in it.
I can receive Notifications about new comments in threads I have commented on: Receiving Notifications is probably the default iff I have commented in this thread.
I can mute Notifications about any thread or Thing: This will be pretty important once we have automatic Notifications.
By default, I receive Notifications about comments on any Thing that I created: Have to introduce the concept of who created this Thing first, though.
I can see an avatar icon on each comment: This is almost de rigeur nowadays, and is mildly useful, but we aren't going to worry about it until we have social network integration well-established. This icon should be small!
I can edit a comment that I made: There should probably be a visible marker that this comment has been edited.
As the Owner of a Space, I can assign other Moderators of Conversations: Requires that we have the concept of security groups first.
As a non-Member of the Space, I can submit comments for moderation: "Non-Members" potentially includes anonymous, non-logged-in. Querki does not allow non-Members to simply comment, but they may submit a comment which can be approved by the Moderators. The Owner of the Space can decide whether to allow this or not.
I can receive live updates of comments as they come in: This is an aspect of a general live-updating feature, to come down the road a bit. Not crucial, but helpful for serious collaboration on a Thing.
I can attach a comment thread to a location or range of the Thing's display: This is sort of like the way Wave handled comments, but without the crazy recursion of comments in comments in comments. An attached thread is just like any other thread, but has a location flagged in the text itself.
I can quickly and easily skim through the new comments in this Space: This is a key feature of both CommYou and Wave, and while the UI might differ a bit, the core principle should remain the same: I can, eg, just keep hitting spacebar and quickly skim through everything that is new.
As the space Owner, I can decide which Things can have Conversations: Querki's default is to allow Conversations on all Things. However, there should be an explicit flag to disable / enable Conversations. As usual, it should be possible to set this on an individual Thing, on a Model (so it applies to all Instances), and on the Space (so it applies to all Things in this Space).
I can easily Link to a particular Comment: When I hover over a comment, I get a little link icon; clicking on this gives me the URL to get back this specific comment.

Also referred to by

By default, I should get comments on Things I created: This is a subtle tweak to the comment rules, but makes sense -- if I created this Thing, I probably want to know what people are saying about it. See, for example, this Issues Space: users who add Issues probably want to be notified of their comments.
Comment Management should be more sensible: This needs design, but is clearly a design bug. This business of having to manually turn on Comment Notifications is proving stupid -- On should probably be the default, at least for Members with higher Roles than Commentator. Also, the UI for managing it is idiotic: we need something more straightforward, probably hooked off the Notification Icon.
Comments should be searchable: This is clearly desireable, but hard, so it's not clear when it will be done.
Need a way to permanently get rid of a "Comment Deleted": Eric has one on the main page of his Space, and really doesn't want it there. What's the best way to enable him to get rid of it?
Rethink defaults and UI for Comment Notifications: At the moment, you have to explicitly turn on Comment Notifications from the Advanced page if you want to get them. That's probably wrong: they should be on by default, I think. Regardless, we need better UI for them.
Syntax errors in QL in long comments scrag the comment: This only happens if you are using QL in a comment, but it's incredibly annoying. Since there is currently no way to edit a comment, the syntax error just messes everything up. Worse, only the last line of the comment gets shown, so you can't even copy and fix it!
When I read an emailed Notification about a Comment, it should mark the Comment as Read: It annoys me that few forum systems do this: until you actually go to the site, it remains unread, despite the fact that I have read the message.
When not logged in, if login / signup would let me comment, I should see a breadcrumb: This is one of the major lures to join, so we want to encourage folks to do it.
As a Moderator, I can Archive a thread: "Archiving" means that this thread is considered closed and done. The intended use case is for when the thread was about making changes which have happened, or when the conversation has been deemed a dead end. The archived thread is still generally accessible, but requires an extra mouse click to view it, and no one can comment in it.
As an Owner, I can *easily* control the Conversation permissions: Closely related to the depended-upon Story, but specific to Conversation permissions. There should be a single, easy, clear button for defining the usual access-control patterns.
As the Owner of a Space, I can assign other Moderators of Conversations: Requires that we have the concept of security groups first.
As the owner of a Space, I should be able to review / undo previous Moderations: Suggested by dsrtao: "Handing over mod authority is sharing control: it's necessary for certain traffic levels, and scary. It's best if there's an undo available, preferably along with an easily reviewable history list."
Conversations should time out: Currently, once we load a Conversation into the SpaceConversationsActor, it stays there until the Space itself times out. That's probably unwise: we should have a separate timer for each Conversation.
I can fork a tangent thread off of a comment: This is being delayed until we do the big UI rewrite.
I can mute Notifications about any thread or Thing: This will be pretty important once we have automatic Notifications.
I can quickly and easily skim through the new comments in this Space: This is a key feature of both CommYou and Wave, and while the UI might differ a bit, the core principle should remain the same: I can, eg, just keep hitting spacebar and quickly skim through everything that is new.
I can receive Notifications about new comments in threads I have commented on: Receiving Notifications is probably the default iff I have commented in this thread.
I can view the Conversations about my Thing in a separate paner: Ideally, there will be an open/close/size-adjustable slider that separates the Conversations Pane from the main Thing view.
I should be able to turn comments *off* for a given page: See for example the Character Info page in ARC. The page is public, but each player sees different content, so comments are likely to contain spoilers. So I'd like to turn comments off entirely.
I should be able to whitelist a commenter across *all* of my Spaces: That is, when I am moderating a comment and choose to whitelist someone, I should be able to whitelist them across all Spaces I own, not just this one.
Notifications on Things that have been deleted are problematic: This isn't solely related to Comments, but those are the sharp end of the problem.
Submitting a comment to an unloaded Space sometimes fails?: This needs further testing, and maybe a recipe, but sometimes, if I leave a page open for a long time (presumably long enough for the Space and UserSession to time out), then go to that page and add a comment, I get a cryptic error message.
When I delete a comment, it should withdraw notifications for that comment: If I've deleted the comment, it means it shouldn't exist. Which means that folks shouldn't be seeing notifications about it, either.
When Viewing a Space Version, we should show appropriate Conversations: Currently, we simply don't show Conversations when viewing History. We should show the state of the Conversations for the Thing at this Timestamp.
As a non-Member of the Space, I can submit comments for moderation: "Non-Members" potentially includes anonymous, non-logged-in. Querki does not allow non-Members to simply comment, but they may submit a comment which can be approved by the Moderators. The Owner of the Space can decide whether to allow this or not.
As the space Owner, I can decide which Things can have Conversations: Querki's default is to allow Conversations on all Things. However, there should be an explicit flag to disable / enable Conversations. As usual, it should be possible to set this on an individual Thing, on a Model (so it applies to all Instances), and on the Space (so it applies to all Things in this Space).
By default, I receive Notifications about comments on any Thing that I created: Have to introduce the concept of who created this Thing first, though.
I can attach a comment thread to a location or range of the Thing's display: This is sort of like the way Wave handled comments, but without the crazy recursion of comments in comments in comments. An attached thread is just like any other thread, but has a location flagged in the text itself.
I can easily Link to a particular Comment: When I hover over a comment, I get a little link icon; clicking on this gives me the URL to get back this specific comment.
I can receive live updates of comments as they come in: This is an aspect of a general live-updating feature, to come down the road a bit. Not crucial, but helpful for serious collaboration on a Thing.
I can see an avatar icon on each comment: This is almost de rigeur nowadays, and is mildly useful, but we aren't going to worry about it until we have social network integration well-established. This icon should be small!

Closed Issues

I can see the Conversations directly embedded in the Thing's page: This is the first step, before we try to give the Conversations their own tab.
I can add a single comment, as a Conversation start: Initially, any Member can comment on any Thing in the Space. This will change.
As the Space Owner, I can decide who can comment on which Things: There needs to be a new Who Can Comment permission. As usual, it should be possible to apply it to the Space, the Model or the Thing.
As a Moderator, I can delete a comment: This is the very beginning of moderation.
I can use QL in comments: This would make comments more powerful, and would allow easy linking to specific Things. But there are big security issues that have to be addressed first.
Comments from Guest Users cause havoc: Eric reported that both Notifications and some comment-displaying pages in the Spirit Island Playtest Space were failing. On looking at the logs, this appears to be the problem.
As the Space Owner, I can decide who can comment on which Things: There needs to be a new Who Can Comment permission. As usual, it should be possible to apply it to the Space, the Model or the Thing.
Members can't comment?: Anna reports that she sees the Comments box on Issues here, but gets an error when she tries to add a Comment.
People shouldn't receive Comment Notifications for Things they can't Read: This is now a P0 security leak, so needs to be dealt with ASAP.
Make it easier to click on comment notifications: The arrow to click on, to go to the new comment, is fairly small -- not trivial to hit with a mouse, and worse on a phone. It would be easier if the entire header was clickable.
getConversationsFor() chokes on ThingError: Purely an internal error, but it's clogging up the logs
QText formatting gets lost when displaying comments embedded: When you enter a comment, it shows up correctly. But when you initially display the page, all QText is being lost.
I should be able to embed Conversations in a page: For complex list-focused UIs, it would be helpful if the Conversations could be in-place.
It should be easier to embed Conversations: We currently have a low-level API for embedding Conversations. That works, but is kind of a pain.
As a Moderator, I can delete a comment: This is the very beginning of moderation.
Looking at an unreified Tag's Page displays a browser Error: For instance, look at the page for Internals in this Space. When you navigate to the page, you get a mysterious "Error" dialog.
I can add a single comment, as a Conversation start: Initially, any Member can comment on any Thing in the Space. This will change.
Comment Notifications don't use Computed Name: If you comment on a Thing that doesn't have a Name, you'll get a Notification titled, eg, Comment on ".bu6oc7u"
Publishing a Thing with embedded comments, where the comments aren't public, hangs: Yes, the recipe is that complex. Took me a week to track down...
_thingConversations does not render the QL in the comments: When you look at the comments via _thingConversations, you see the raw QText, unexpanded.
_thingConversations hangs if a comment thread is completely deleted: Nothing displays -- it appears to be a complete hang.
Adding a comment to a dormant Space gives an error: When I have the Client open to a page, and I let it sit a long time -- long enough for the Space to passivate -- and the first thing I do is add a comment to that open page, it often / always fails with (eventually) an error. Pressing Post Comment again then works.
I can see the Conversations directly embedded in the Thing's page: This is the first step, before we try to give the Conversations their own tab.
The "add a comment" fields show up even if commenting is turned off on the Space: Specifically, noted that this happens if you are not logged in, although it might not be limited to that.
If a Comment has no thread hanging off of it, I can *easily* hide it: This might be implemented as Archive, or possibly as a real-and-for-true Delete. (Although that's architecturally dangerous.)
I can use QL in comments: This would make comments more powerful, and would allow easy linking to specific Things. But there are big security issues that have to be addressed first.