Re: [Chandler-dev] Shared triage status for rearchitecture

Mimi Yin <mimi-6zGkXsw2EZWGJGYlWa3Ukdi2O/[email protected]> Wed, 24 Sep 2008 05:16:08 -0700
Newsgroups gmane.org.osaf.devel
Message-ID <[email protected]>
Hi Jeffrey and Grant.

So exciting to finally be talking through this stuff!

I'm not entirely following the discussions, but have a few  
questions...so forgive me if my questions are not quite on target.

How would not syncing auto-stuff affect the web UI?

If I set an alarm to tickle a note to NOW. Would the web UI still  
show that the item had tickled to NOW, even though it doesn't have a  
notion of tickling? Would we need to implement the auto-triage  
functionality on the web UI to keep things in sync?

There is also the scenario of 2 desktop clients that are sharing  
Triage Status, but not alarms. If Desktop 1 fires an alarm and  
tickles the item to NOW, would Desktop 2 see the item as NOW even  
though Desktop 2's alarm hadn't fired yet?

Mimi

On Sep 23, 2008, at 3:56 PM, Jeffrey Harris wrote:

> Grant's concept of not syncing the auto stuff is great.  Grant and I
> talked about this more in IRC:
>
> http://chandlerproject.org/script/getIrcTranscript.cgi? 
> channel=chandler-rearch&date=20080923&startTime=1535&endTime=1555
>
> Grant Baillie wrote:
>> Hi, Jeffrey
>>
>> I have been pondering this somewhat, too, but I think the lines I'm
>> thinking along involve just never syncing automatic changes. Are  
>> there
>> cases where we ever actually need this information? (Possibly web UI
>> users need it, I'm not sure).
>>
>> --Grant
>>
>> On 19 Sep, 2008, at 18:29, Jeffrey Harris wrote:
>>
>>> There have been a variety of problems with the interaction between
>>> triage status, the passage of time, and syncing multiple desktop
>>> clients.  What follows is my thinking about how to fix those  
>>> problems.
>>>
>>> There are two main things I think are broken in the existing triage
>>> sharing code: recurrence and distinguishing between automatic and
>>> user-originated changes.
>>>
>>> The recurrence problems spring from the desktop model of creating a
>>> database record for every occurrence rendered in the UI.  This
>>> encouraged us to create and destroy dozens of "modifications" to
>>> recurring series that really only involved normal state following  
>>> the
>>> passage of time.
>>>
>>> The other main problem is that we don't distinguish between  
>>> automatic
>>> changes to triage status and manual changes.  Here's a scenario:
>>>
>>> - I'm sharing with myself and an item's alarm fires, moving the  
>>> event to
>>>  NOW
>>> - I mark the item as DONE and sync client 1
>>> - I open client 2, it fires the same alarm and moves the event to  
>>> NOW
>>> - I sync client 2, the local NOW beats the remote DONE, even  
>>> though the
>>>  DONE was a manual change.
>>>
>>> Another situation that may trigger this is if client 2's sync  
>>> happens
>>> before alarms fire, causing Chandler to apply the remote DONE change
>>> first, then move the item back to NOW.
>>>
>>> Add change_was automatic/manual field
>>> -------------------------------------
>>>
>>> To improve things in the non-recurring case, I think it's enough  
>>> to add
>>> an additional record to triage status which notes whether the most
>>> recent change was made automatically or manual.  We should also make
>>> sure alarms fire before sync happens, at least during startup.
>>>
>>> When syncing, I think triage status conflicts should be  
>>> automatically
>>> resolved with the following heuristic:
>>>   manual beats auto
>>>   local auto beats remote auto
>>>   remote manual beats local manual
>>>
>>> There are also minor problems with what pops to now; not every EIM
>>> change should trigger pop-to-now.  For triage-status,
>>> - anything becoming NOW (this actually isn't working right now), or
>>> - when a manual triage status is changed
>>> should trigger a pop-to-now.
>>>
>>> Recurrence
>>> ----------
>>>
>>> The recurring case is, of course, a little harder.  The general  
>>> concept,
>>> though, is fairly simple.  All triage status information should  
>>> live on
>>> the master, not on individual modification records.  Most  
>>> occurrences
>>> will be unspecified, which will mean they have an implicit triage  
>>> status
>>> of DONE or LATER, depending on where they sit relative to the  
>>> current
>>> time.
>>>
>>> Triage related fields on recurrence master:
>>> - lastPastOccurrence (already exists)
>>>     before this date, implicit occurrences are DONE, after, LATER
>>> - auto_done (new)
>>>     there's recently been talk of allowing a user preference for
>>>     whether events are automatically marked DONE.  This is  
>>> reasonable,
>>>     but it makes it hard to guess whether an implicit occurrence was
>>>     marked DONE automatically or manually, so we should be explicit
>>> - triaged_occurrences (new)
>>>     a serialized dictionary of recurrence-id: triage status,
>>>     manual/automatic tuples
>>>
>>> I'm assuming we'll throw non-standard triage statuses away if  
>>> there's a
>>> rule change or dtstart change, and that we won't bother syncing
>>> triageStatusChanged, which changes how an item is sorted.
>>>
>>> Conceptually, local minus original gives you small set of local
>>> occurrences whose triage statuses changed from X to Y, either  
>>> manually
>>> or automatically.  Similarly, remote - original gives a small  
>>> remote set
>>> of occurrence changes which can be merged with the local set.
>>>
>>> This behavior looks different from the existing EIM diff  
>>> implementation,
>>> I'm hoping we can extend EIM diffs to do a special diff operation  
>>> for
>>> recurrence master records.
>>
>> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>>
>> Open Source Applications Foundation "chandler-dev" mailing list
>> http://lists.osafoundation.org/mailman/listinfo/chandler-dev
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> Open Source Applications Foundation "chandler-dev" mailing list
> http://lists.osafoundation.org/mailman/listinfo/chandler-dev

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "chandler-dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/chandler-dev