docs: use Deal terminology in official plugins
This commit is contained in:
parent
5ddc63bb8d
commit
484d599a9f
|
|
@ -50,7 +50,7 @@ create a GitHub Release.
|
|||
deletion is a separate action.
|
||||
- Saving a browser link creates a collision-safe `.url` file. Opening a link is
|
||||
handled by Verstak, so it does not depend on a Linux `.url` file association.
|
||||
- Activity sessions can be scoped to a durable workspace identity or to an
|
||||
- Activity sessions can be scoped to a durable Deal identity or to an
|
||||
explicit unassigned scope. Journal creation is always a user action.
|
||||
- Todo is optional: Overview uses it only when the Todo capability is present.
|
||||
|
||||
|
|
|
|||
|
|
@ -4,22 +4,22 @@ Browser Inbox is one global queue of browser captures. New and changed records a
|
|||
stored in `captures:global`; previous `captures` and `captures:workspace:*` keys
|
||||
remain readable for migration compatibility.
|
||||
|
||||
Each capture contains `workspaceRootPath` and `processed`. An empty
|
||||
`workspaceRootPath` means the capture is **Unassigned**. The global view can filter
|
||||
all captures by assignment, workspace, processed state, and text search. A capture
|
||||
Each capture contains a durable `workspaceId`, its current or historical
|
||||
`workspaceRootPath`, and `processed`. An empty `workspaceRootPath` means the
|
||||
capture is **Unassigned**. The global view can filter all captures by assignment,
|
||||
Deal, processed state, and text search. A capture
|
||||
can be assigned, reassigned, made unassigned, marked processed or unprocessed, and
|
||||
deleted.
|
||||
|
||||
The local browser receiver adds the currently active workspace before publishing a
|
||||
capture event. When it has no active workspace, the capture remains unassigned
|
||||
The local browser receiver adds the currently active Deal before publishing a
|
||||
capture event. When it has no active Deal, the capture remains unassigned
|
||||
unless an explicit existing domain binding matches it. The frontend never assigns an
|
||||
untagged capture merely because a workspace view happens to be open.
|
||||
untagged capture merely because a Deal view happens to be open.
|
||||
|
||||
Workspace assignment currently uses the top-level vault folder path as the
|
||||
identifier because the core workspace model has no separate immutable ID. In the
|
||||
current model that path is also the displayed workspace name, so a workspace rename
|
||||
requires a later reassignment of existing captures.
|
||||
Deal assignment uses the immutable `workspaceId` stored in Deal metadata;
|
||||
`workspaceRootPath` is an address and display value. A rename updates the latter,
|
||||
while a newly created folder with the old name cannot take over existing captures.
|
||||
|
||||
Workspace Inbox and Overview show only captures whose `workspaceRootPath` exactly
|
||||
matches the selected workspace. Unassigned captures remain visible only in the
|
||||
Deal Inbox and Overview show only captures whose `workspaceId` matches the selected
|
||||
Deal. Unassigned captures remain visible only in the
|
||||
global Browser Inbox.
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
Todos are stored by the official `verstak.todo` plugin under the canonical
|
||||
`todos:global` settings key. A todo is global when `workspaceRootPath` is empty;
|
||||
otherwise that field identifies the top-level workspace folder that owns it.
|
||||
otherwise that field identifies the top-level Deal folder that owns it.
|
||||
|
||||
The global Todos view aggregates all records and supports workspace, status, text,
|
||||
and due/reminder/updated sorting filters. The workspace Todos view shows only
|
||||
records whose `workspaceRootPath` exactly matches the current workspace. This
|
||||
keeps unassigned and other-workspace records out of a workspace tab and its
|
||||
The global Todos view aggregates all records and supports Deal, status, text,
|
||||
and due/reminder/updated sorting filters. The Deal Todos view shows only records
|
||||
whose `workspaceRootPath` exactly matches the current Deal. This keeps unassigned
|
||||
and other-Deal records out of a Deal tab and its
|
||||
Overview signals.
|
||||
|
||||
## Stored fields
|
||||
|
|
@ -20,15 +20,15 @@ Each record has a stable `id`, `title`, optional `description`, optional
|
|||
|
||||
## Reminders
|
||||
|
||||
The plugin stores reminder metadata and renders clear indicators for overdue,
|
||||
due-soon, and reminder-due todos. Verstak does not yet have a notification
|
||||
scheduler, so a reminder does not create a native desktop notification or run in
|
||||
the background.
|
||||
The plugin stores reminder metadata, renders clear indicators for overdue,
|
||||
due-soon, and reminder-due todos, and schedules native desktop notifications when
|
||||
the Desktop notification capability is available. Without that capability, the
|
||||
reminder remains visible in Todos but is not treated as an error.
|
||||
|
||||
## Completed Todo to Journal
|
||||
|
||||
From a workspace Todo tab, a completed todo exposes **Create Journal Entry**. It
|
||||
opens the current workspace Journal with a normal, editable form. The form copies
|
||||
From a Deal Todo tab, a completed todo exposes **Create Journal Entry**. It opens
|
||||
the current Deal Journal with a normal, editable form. The form copies
|
||||
only factual data from the todo: title, description, completion date, and zero
|
||||
minutes. It never generates a summary, duration, or billable status.
|
||||
|
||||
|
|
@ -40,8 +40,6 @@ own record.
|
|||
|
||||
## Visibility
|
||||
|
||||
The Plugin Manager can globally enable or disable the Todo plugin. The current
|
||||
workspace host has no per-workspace or template-level contribution filter yet, so
|
||||
a globally enabled Todo plugin contributes its tab to every workspace. Template
|
||||
visibility will be handled with the workspace/template model rather than by a
|
||||
Todo-specific exception.
|
||||
The Plugin Manager can globally enable or disable the Todo plugin. A Deal template
|
||||
controls whether its Todos tab is available; disabling the plugin hides the tab
|
||||
without affecting stored todo records.
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@
|
|||
var workspaceRoot = workspaceFromProps(props);
|
||||
var workspaceId = text(props && (props.workspaceId || (props.workspaceNode && props.workspaceNode.workspaceId))).trim();
|
||||
if (!workspaceRoot) {
|
||||
return { mode: 'global', key: GLOBAL_KEY, label: 'All workspaces', workspaceRoot: '', workspaceId: '' };
|
||||
return { mode: 'global', key: GLOBAL_KEY, label: 'All Deals', workspaceRoot: '', workspaceId: '' };
|
||||
}
|
||||
return {
|
||||
mode: 'workspace',
|
||||
|
|
|
|||
|
|
@ -459,7 +459,7 @@
|
|||
if (scope.mode === 'global') {
|
||||
filtersEl.appendChild(workspaceFilterEl);
|
||||
} else {
|
||||
filtersEl.appendChild(el('span', { className: 'browser-inbox-count', textContent: tr('ui.assignedHere', null, 'Assigned to this workspace') }));
|
||||
filtersEl.appendChild(el('span', { className: 'browser-inbox-count', textContent: tr('ui.assignedHere', null, 'Assigned to this Deal') }));
|
||||
}
|
||||
filtersEl.appendChild(searchInput);
|
||||
toolbar.appendChild(filtersEl);
|
||||
|
|
@ -865,7 +865,7 @@
|
|||
el('div', { className: 'browser-inbox-meta-value', textContent: formatDate(capture.capturedAt) || '-' }),
|
||||
el('div', { className: 'browser-inbox-meta-label', textContent: tr('ui.browser', null, 'Browser') }),
|
||||
el('div', { className: 'browser-inbox-meta-value', textContent: capture.browserName || capture.source || '-' }),
|
||||
el('div', { className: 'browser-inbox-meta-label', textContent: tr('ui.workspace', null, 'Workspace') }),
|
||||
el('div', { className: 'browser-inbox-meta-label', textContent: tr('ui.workspace', null, 'Deal') }),
|
||||
el('div', { className: 'browser-inbox-meta-value', textContent: capture.workspaceRootPath || tr('ui.unassigned', null, 'Unassigned') }),
|
||||
el('div', { className: 'browser-inbox-meta-label', textContent: tr('ui.status', null, 'Status') }),
|
||||
el('div', { className: 'browser-inbox-meta-value', textContent: capture.processed
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@
|
|||
|
||||
function scopeFromProps(props) {
|
||||
var workspaceRoot = workspaceFromProps(props || {});
|
||||
if (!workspaceRoot) return { mode: 'global', key: '', label: 'All workspaces', workspaceRoot: '' };
|
||||
if (!workspaceRoot) return { mode: 'global', key: '', label: 'All Deals', workspaceRoot: '' };
|
||||
return {
|
||||
mode: 'workspace',
|
||||
key: WORKLOG_PREFIX + encodeKey(workspaceRoot),
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"name": "Journal",
|
||||
"version": "0.1.0",
|
||||
"apiVersion": "0.1.0",
|
||||
"description": "Workspace-scoped journal with user-authored entries and optional Activity links.",
|
||||
"description": "Deal-scoped journal with user-authored entries and optional Activity links.",
|
||||
"localization": { "defaultLocale": "en", "locales": { "en": "locales/en.json", "ru": "locales/ru.json" } },
|
||||
"source": "official",
|
||||
"icon": "book-open",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"name": "Search",
|
||||
"version": "0.1.0",
|
||||
"apiVersion": "0.1.0",
|
||||
"description": "Workspace-scoped vault text search provider.",
|
||||
"description": "Deal-scoped vault text search provider.",
|
||||
"localization": { "defaultLocale": "en", "locales": { "en": "locales/en.json", "ru": "locales/ru.json" } },
|
||||
"source": "official",
|
||||
"icon": "search",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"name": "Todos",
|
||||
"version": "0.1.0",
|
||||
"apiVersion": "0.1.0",
|
||||
"description": "Global and workspace todo tracking with due and reminder metadata.",
|
||||
"description": "Global and Deal-scoped todo tracking with due and reminder metadata.",
|
||||
"localization": { "defaultLocale": "en", "locales": { "en": "locales/en.json", "ru": "locales/ru.json" } },
|
||||
"source": "official",
|
||||
"icon": "list-todo",
|
||||
|
|
|
|||
Loading…
Reference in New Issue