@shivaedev/work-board 0.13.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +126 -0
- package/README.md +80 -36
- package/assets/agent.js +17 -17
- package/assets/native.js +25 -25
- package/assets/react.css +1 -1
- package/assets/react.js +36 -34
- package/dist/browser/Navigation.d.ts +16 -0
- package/dist/browser/Navigation.d.ts.map +1 -0
- package/dist/browser/Navigation.js +7 -0
- package/dist/browser/Navigation.js.map +1 -0
- package/dist/browser/document/ReadingContext.d.ts +2 -0
- package/dist/browser/document/ReadingContext.d.ts.map +1 -1
- package/dist/browser/document/ReadingContext.js +7 -1
- package/dist/browser/document/ReadingContext.js.map +1 -1
- package/dist/browser/document/schema.d.ts +21 -1
- package/dist/browser/document/schema.d.ts.map +1 -1
- package/dist/browser/document/schema.js +5 -0
- package/dist/browser/document/schema.js.map +1 -1
- package/dist/browser/document/sourceGroups.d.ts +14 -0
- package/dist/browser/document/sourceGroups.d.ts.map +1 -0
- package/dist/browser/document/sourceGroups.js +43 -0
- package/dist/browser/document/sourceGroups.js.map +1 -0
- package/dist/browser/navigation/library.d.ts +36 -0
- package/dist/browser/navigation/library.d.ts.map +1 -0
- package/dist/browser/navigation/library.js +23 -0
- package/dist/browser/navigation/library.js.map +1 -0
- package/dist/browser/responses/cardContext.d.ts +10 -0
- package/dist/browser/responses/cardContext.d.ts.map +1 -0
- package/dist/browser/responses/cardContext.js +47 -0
- package/dist/browser/responses/cardContext.js.map +1 -0
- package/dist/browser/responses/reasonMarkdown.d.ts +2 -0
- package/dist/browser/responses/reasonMarkdown.d.ts.map +1 -0
- package/dist/browser/responses/reasonMarkdown.js +6 -0
- package/dist/browser/responses/reasonMarkdown.js.map +1 -0
- package/dist/browser/views/FleetItemsProjection.d.ts +220 -0
- package/dist/browser/views/FleetItemsProjection.d.ts.map +1 -0
- package/dist/browser/views/FleetItemsProjection.js +13 -0
- package/dist/browser/views/FleetItemsProjection.js.map +1 -0
- package/dist/browser/views/GoalsProjection.d.ts +157 -0
- package/dist/browser/views/GoalsProjection.d.ts.map +1 -0
- package/dist/browser/views/GoalsProjection.js +22 -0
- package/dist/browser/views/GoalsProjection.js.map +1 -0
- package/dist/browser/views/ResultProjection.d.ts +14 -1
- package/dist/browser/views/ResultProjection.d.ts.map +1 -1
- package/dist/browser/views/goalWorkState.d.ts +6 -0
- package/dist/browser/views/goalWorkState.d.ts.map +1 -0
- package/dist/browser/views/goalWorkState.js +15 -0
- package/dist/browser/views/goalWorkState.js.map +1 -0
- package/dist/browser/views/now.d.ts +13 -0
- package/dist/browser/views/now.d.ts.map +1 -0
- package/dist/browser/views/now.js +82 -0
- package/dist/browser/views/now.js.map +1 -0
- package/dist/browser/views/remaining.d.ts +21 -1
- package/dist/browser/views/remaining.d.ts.map +1 -1
- package/dist/browser/views/schema.d.ts +180 -26
- package/dist/browser/views/schema.d.ts.map +1 -1
- package/dist/browser/views/schema.js +19 -29
- package/dist/browser/views/schema.js.map +1 -1
- package/dist/browser/views/state.d.ts +1 -1
- package/dist/browser/views/state.js +2 -2
- package/dist/browser/views/state.js.map +1 -1
- package/dist/client/document/Mermaid.d.ts.map +1 -1
- package/dist/client/document/Mermaid.js +4 -3
- package/dist/client/document/Mermaid.js.map +1 -1
- package/dist/client/document/View.d.ts +4 -1
- package/dist/client/document/View.d.ts.map +1 -1
- package/dist/client/document/View.js +18 -8
- package/dist/client/document/View.js.map +1 -1
- package/dist/client/document/boardLayout.d.ts +1 -1
- package/dist/client/document/boardLayout.d.ts.map +1 -1
- package/dist/client/document/boardLayout.js +3 -3
- package/dist/client/document/boardLayout.js.map +1 -1
- package/dist/client/document/layout.js +1 -1
- package/dist/client/document/layout.js.map +1 -1
- package/dist/client/document/mermaidColor.d.ts +2 -0
- package/dist/client/document/mermaidColor.d.ts.map +1 -0
- package/dist/client/document/mermaidColor.js +20 -0
- package/dist/client/document/mermaidColor.js.map +1 -0
- package/dist/client/formFocus.d.ts +1 -1
- package/dist/client/formFocus.d.ts.map +1 -1
- package/dist/client/formFocus.js +1 -2
- package/dist/client/formFocus.js.map +1 -1
- package/dist/client/page/routeQuery.d.ts +31 -1
- package/dist/client/page/routeQuery.d.ts.map +1 -1
- package/dist/client/page/routeQuery.js +3 -0
- package/dist/client/page/routeQuery.js.map +1 -1
- package/dist/client/react/Age.d.ts.map +1 -1
- package/dist/client/react/Age.js +3 -1
- package/dist/client/react/Age.js.map +1 -1
- package/dist/client/react/AnswerContext.d.ts +5 -0
- package/dist/client/react/AnswerContext.d.ts.map +1 -0
- package/dist/client/react/AnswerContext.js +8 -0
- package/dist/client/react/AnswerContext.js.map +1 -0
- package/dist/client/react/AnswerForm.d.ts.map +1 -1
- package/dist/client/react/AnswerForm.js +19 -6
- package/dist/client/react/AnswerForm.js.map +1 -1
- package/dist/client/react/AnswerMore.d.ts +10 -0
- package/dist/client/react/AnswerMore.d.ts.map +1 -0
- package/dist/client/react/AnswerMore.js +7 -0
- package/dist/client/react/AnswerMore.js.map +1 -0
- package/dist/client/react/AnswerPanel.d.ts +1 -1
- package/dist/client/react/AnswerPanel.d.ts.map +1 -1
- package/dist/client/react/AnswerPanel.js +21 -12
- package/dist/client/react/AnswerPanel.js.map +1 -1
- package/dist/client/react/AnswerPrompts.d.ts +1 -0
- package/dist/client/react/AnswerPrompts.d.ts.map +1 -1
- package/dist/client/react/AnswerPrompts.js +6 -4
- package/dist/client/react/AnswerPrompts.js.map +1 -1
- package/dist/client/react/BoardMain.d.ts +1 -1
- package/dist/client/react/BoardMain.d.ts.map +1 -1
- package/dist/client/react/BoardShell.d.ts +0 -1
- package/dist/client/react/BoardShell.d.ts.map +1 -1
- package/dist/client/react/BoardShell.js +12 -18
- package/dist/client/react/BoardShell.js.map +1 -1
- package/dist/client/react/DocumentAttention.d.ts.map +1 -1
- package/dist/client/react/DocumentAttention.js +6 -2
- package/dist/client/react/DocumentAttention.js.map +1 -1
- package/dist/client/react/DocumentClaims.d.ts.map +1 -1
- package/dist/client/react/DocumentClaims.js +3 -3
- package/dist/client/react/DocumentClaims.js.map +1 -1
- package/dist/client/react/DocumentContext.d.ts.map +1 -1
- package/dist/client/react/DocumentContext.js +21 -13
- package/dist/client/react/DocumentContext.js.map +1 -1
- package/dist/client/react/DocumentCriteria.d.ts +5 -0
- package/dist/client/react/DocumentCriteria.d.ts.map +1 -1
- package/dist/client/react/DocumentCriteria.js +11 -9
- package/dist/client/react/DocumentCriteria.js.map +1 -1
- package/dist/client/react/DocumentEvidence.d.ts.map +1 -1
- package/dist/client/react/DocumentEvidence.js +1 -2
- package/dist/client/react/DocumentEvidence.js.map +1 -1
- package/dist/client/react/DocumentMain.js +7 -4
- package/dist/client/react/DocumentMain.js.map +1 -1
- package/dist/client/react/DocumentMetadata.d.ts.map +1 -1
- package/dist/client/react/DocumentMetadata.js +5 -4
- package/dist/client/react/DocumentMetadata.js.map +1 -1
- package/dist/client/react/DocumentPage.d.ts +3 -1
- package/dist/client/react/DocumentPage.d.ts.map +1 -1
- package/dist/client/react/DocumentPage.js +8 -9
- package/dist/client/react/DocumentPage.js.map +1 -1
- package/dist/client/react/DocumentRecords.js +1 -1
- package/dist/client/react/DocumentRecords.js.map +1 -1
- package/dist/client/react/DocumentRelationships.d.ts +5 -0
- package/dist/client/react/DocumentRelationships.d.ts.map +1 -0
- package/dist/client/react/DocumentRelationships.js +26 -0
- package/dist/client/react/DocumentRelationships.js.map +1 -0
- package/dist/client/react/DocumentSource.d.ts +5 -0
- package/dist/client/react/DocumentSource.d.ts.map +1 -0
- package/dist/client/react/DocumentSource.js +9 -0
- package/dist/client/react/DocumentSource.js.map +1 -0
- package/dist/client/react/DocumentWorkMetadata.d.ts.map +1 -1
- package/dist/client/react/DocumentWorkMetadata.js +4 -23
- package/dist/client/react/DocumentWorkMetadata.js.map +1 -1
- package/dist/client/react/Favorite.js +1 -1
- package/dist/client/react/Favorite.js.map +1 -1
- package/dist/client/react/FleetItemsContext.d.ts +194 -0
- package/dist/client/react/FleetItemsContext.d.ts.map +1 -0
- package/dist/client/react/FleetItemsContext.js +3 -0
- package/dist/client/react/FleetItemsContext.js.map +1 -0
- package/dist/client/react/FleetMain.d.ts +4 -0
- package/dist/client/react/FleetMain.d.ts.map +1 -0
- package/dist/client/react/FleetMain.js +10 -0
- package/dist/client/react/FleetMain.js.map +1 -0
- package/dist/client/react/FormField.d.ts +2 -1
- package/dist/client/react/FormField.d.ts.map +1 -1
- package/dist/client/react/FormField.js +5 -3
- package/dist/client/react/FormField.js.map +1 -1
- package/dist/client/react/GoalCriteria.d.ts +11 -0
- package/dist/client/react/GoalCriteria.d.ts.map +1 -0
- package/dist/client/react/GoalCriteria.js +30 -0
- package/dist/client/react/GoalCriteria.js.map +1 -0
- package/dist/client/react/GoalOverviewCard.d.ts +5 -0
- package/dist/client/react/GoalOverviewCard.d.ts.map +1 -0
- package/dist/client/react/GoalOverviewCard.js +10 -0
- package/dist/client/react/GoalOverviewCard.js.map +1 -0
- package/dist/client/react/GoalPage.d.ts +7 -0
- package/dist/client/react/GoalPage.d.ts.map +1 -0
- package/dist/client/react/GoalPage.js +15 -0
- package/dist/client/react/GoalPage.js.map +1 -0
- package/dist/client/react/GoalProgress.d.ts +6 -0
- package/dist/client/react/GoalProgress.d.ts.map +1 -0
- package/dist/client/react/GoalProgress.js +32 -0
- package/dist/client/react/GoalProgress.js.map +1 -0
- package/dist/client/react/GoalProgressHeader.d.ts +7 -0
- package/dist/client/react/GoalProgressHeader.d.ts.map +1 -0
- package/dist/client/react/GoalProgressHeader.js +14 -0
- package/dist/client/react/GoalProgressHeader.js.map +1 -0
- package/dist/client/react/GoalProgressSummary.d.ts +5 -0
- package/dist/client/react/GoalProgressSummary.d.ts.map +1 -0
- package/dist/client/react/GoalProgressSummary.js +8 -0
- package/dist/client/react/GoalProgressSummary.js.map +1 -0
- package/dist/client/react/GoalWorkTable.d.ts +11 -0
- package/dist/client/react/GoalWorkTable.d.ts.map +1 -0
- package/dist/client/react/GoalWorkTable.js +36 -0
- package/dist/client/react/GoalWorkTable.js.map +1 -0
- package/dist/client/react/GoalsPage.d.ts +5 -0
- package/dist/client/react/GoalsPage.d.ts.map +1 -0
- package/dist/client/react/GoalsPage.js +9 -0
- package/dist/client/react/GoalsPage.js.map +1 -0
- package/dist/client/react/HandoffForm.d.ts.map +1 -1
- package/dist/client/react/HandoffForm.js +3 -2
- package/dist/client/react/HandoffForm.js.map +1 -1
- package/dist/client/react/HandoffPage.d.ts.map +1 -1
- package/dist/client/react/HandoffPage.js +3 -2
- package/dist/client/react/HandoffPage.js.map +1 -1
- package/dist/client/react/HandoffPrompt.d.ts.map +1 -1
- package/dist/client/react/HandoffPrompt.js +2 -1
- package/dist/client/react/HandoffPrompt.js.map +1 -1
- package/dist/client/react/Header.d.ts.map +1 -1
- package/dist/client/react/Header.js +11 -4
- package/dist/client/react/Header.js.map +1 -1
- package/dist/client/react/HomeBoard.d.ts.map +1 -1
- package/dist/client/react/HomeBoard.js +3 -2
- package/dist/client/react/HomeBoard.js.map +1 -1
- package/dist/client/react/ItemSummary.d.ts +5 -0
- package/dist/client/react/ItemSummary.d.ts.map +1 -0
- package/dist/client/react/ItemSummary.js +42 -0
- package/dist/client/react/ItemSummary.js.map +1 -0
- package/dist/client/react/KeyboardHints.d.ts +5 -0
- package/dist/client/react/KeyboardHints.d.ts.map +1 -0
- package/dist/client/react/KeyboardHints.js +6 -0
- package/dist/client/react/KeyboardHints.js.map +1 -0
- package/dist/client/react/LibraryContents.d.ts +15 -0
- package/dist/client/react/LibraryContents.d.ts.map +1 -0
- package/dist/client/react/LibraryContents.js +28 -0
- package/dist/client/react/LibraryContents.js.map +1 -0
- package/dist/client/react/LibraryContext.d.ts +25 -0
- package/dist/client/react/LibraryContext.d.ts.map +1 -0
- package/dist/client/react/LibraryContext.js +18 -0
- package/dist/client/react/LibraryContext.js.map +1 -0
- package/dist/client/react/LibraryMain.d.ts +8 -0
- package/dist/client/react/LibraryMain.d.ts.map +1 -0
- package/dist/client/react/LibraryMain.js +8 -0
- package/dist/client/react/LibraryMain.js.map +1 -0
- package/dist/client/react/LibraryPage.d.ts +6 -0
- package/dist/client/react/LibraryPage.d.ts.map +1 -0
- package/dist/client/react/LibraryPage.js +34 -0
- package/dist/client/react/LibraryPage.js.map +1 -0
- package/dist/client/react/LiveControls.d.ts.map +1 -1
- package/dist/client/react/LiveControls.js +2 -3
- package/dist/client/react/LiveControls.js.map +1 -1
- package/dist/client/react/Modal.d.ts +2 -1
- package/dist/client/react/Modal.d.ts.map +1 -1
- package/dist/client/react/Modal.js +2 -2
- package/dist/client/react/Modal.js.map +1 -1
- package/dist/client/react/PhoneNavigation.d.ts +6 -0
- package/dist/client/react/PhoneNavigation.d.ts.map +1 -0
- package/dist/client/react/PhoneNavigation.js +31 -0
- package/dist/client/react/PhoneNavigation.js.map +1 -0
- package/dist/client/react/PrChip.d.ts +4 -0
- package/dist/client/react/PrChip.d.ts.map +1 -0
- package/dist/client/react/PrChip.js +7 -0
- package/dist/client/react/PrChip.js.map +1 -0
- package/dist/client/react/ProjectionFrame.d.ts.map +1 -1
- package/dist/client/react/ProjectionFrame.js +10 -18
- package/dist/client/react/ProjectionFrame.js.map +1 -1
- package/dist/client/react/ProjectionMain.d.ts.map +1 -1
- package/dist/client/react/ProjectionMain.js +4 -7
- package/dist/client/react/ProjectionMain.js.map +1 -1
- package/dist/client/react/PromptOption.d.ts +1 -2
- package/dist/client/react/PromptOption.d.ts.map +1 -1
- package/dist/client/react/PromptOption.js +7 -4
- package/dist/client/react/PromptOption.js.map +1 -1
- package/dist/client/react/ReadingHistory.d.ts +10 -0
- package/dist/client/react/ReadingHistory.d.ts.map +1 -0
- package/dist/client/react/ReadingHistory.js +21 -0
- package/dist/client/react/ReadingHistory.js.map +1 -0
- package/dist/client/react/ReadingLibrary.d.ts +3 -3
- package/dist/client/react/ReadingLibrary.d.ts.map +1 -1
- package/dist/client/react/ReadingLibrary.js +6 -23
- package/dist/client/react/ReadingLibrary.js.map +1 -1
- package/dist/client/react/ReadingPanel.d.ts +3 -0
- package/dist/client/react/ReadingPanel.d.ts.map +1 -0
- package/dist/client/react/ReadingPanel.js +6 -0
- package/dist/client/react/ReadingPanel.js.map +1 -0
- package/dist/client/react/Reference.d.ts.map +1 -1
- package/dist/client/react/Reference.js +3 -1
- package/dist/client/react/Reference.js.map +1 -1
- package/dist/client/react/RemainingMain.d.ts.map +1 -1
- package/dist/client/react/RemainingMain.js +9 -6
- package/dist/client/react/RemainingMain.js.map +1 -1
- package/dist/client/react/RespondPage.d.ts +1 -1
- package/dist/client/react/RespondPage.d.ts.map +1 -1
- package/dist/client/react/RespondPage.js +3 -14
- package/dist/client/react/RespondPage.js.map +1 -1
- package/dist/client/react/ResponseHistory.d.ts +2 -1
- package/dist/client/react/ResponseHistory.d.ts.map +1 -1
- package/dist/client/react/ResponseHistory.js +2 -2
- package/dist/client/react/ResponseHistory.js.map +1 -1
- package/dist/client/react/ResultCriteria.d.ts.map +1 -1
- package/dist/client/react/ResultCriteria.js +5 -5
- package/dist/client/react/ResultCriteria.js.map +1 -1
- package/dist/client/react/ResultPage.d.ts.map +1 -1
- package/dist/client/react/ResultPage.js +2 -1
- package/dist/client/react/ResultPage.js.map +1 -1
- package/dist/client/react/SavedViews.js +1 -1
- package/dist/client/react/SavedViews.js.map +1 -1
- package/dist/client/react/SearchDialog.d.ts.map +1 -1
- package/dist/client/react/SearchDialog.js +4 -61
- package/dist/client/react/SearchDialog.js.map +1 -1
- package/dist/client/react/SearchPalette.d.ts +11 -0
- package/dist/client/react/SearchPalette.d.ts.map +1 -0
- package/dist/client/react/SearchPalette.js +80 -0
- package/dist/client/react/SearchPalette.js.map +1 -0
- package/dist/client/react/SearchResults.d.ts.map +1 -1
- package/dist/client/react/SearchResults.js +3 -2
- package/dist/client/react/SearchResults.js.map +1 -1
- package/dist/client/react/SettingsPopover.d.ts +7 -0
- package/dist/client/react/SettingsPopover.d.ts.map +1 -0
- package/dist/client/react/SettingsPopover.js +8 -0
- package/dist/client/react/SettingsPopover.js.map +1 -0
- package/dist/client/react/ShellApi.d.ts +3 -2
- package/dist/client/react/ShellApi.d.ts.map +1 -1
- package/dist/client/react/Sidebar.d.ts +6 -4
- package/dist/client/react/Sidebar.d.ts.map +1 -1
- package/dist/client/react/Sidebar.js +26 -38
- package/dist/client/react/Sidebar.js.map +1 -1
- package/dist/client/react/SourceList.d.ts +5 -0
- package/dist/client/react/SourceList.d.ts.map +1 -0
- package/dist/client/react/SourceList.js +19 -0
- package/dist/client/react/SourceList.js.map +1 -0
- package/dist/client/react/StartPage.d.ts.map +1 -1
- package/dist/client/react/StartPage.js +2 -1
- package/dist/client/react/StartPage.js.map +1 -1
- package/dist/client/react/SystemFleetLane.d.ts +5 -0
- package/dist/client/react/SystemFleetLane.d.ts.map +1 -0
- package/dist/client/react/SystemFleetLane.js +12 -0
- package/dist/client/react/SystemFleetLane.js.map +1 -0
- package/dist/client/react/SystemHealth.d.ts +6 -0
- package/dist/client/react/SystemHealth.d.ts.map +1 -0
- package/dist/client/react/SystemHealth.js +16 -0
- package/dist/client/react/SystemHealth.js.map +1 -0
- package/dist/client/react/SystemMain.d.ts +8 -0
- package/dist/client/react/SystemMain.d.ts.map +1 -0
- package/dist/client/react/SystemMain.js +11 -0
- package/dist/client/react/SystemMain.js.map +1 -0
- package/dist/client/react/SystemPage.d.ts +5 -0
- package/dist/client/react/SystemPage.d.ts.map +1 -0
- package/dist/client/react/SystemPage.js +28 -0
- package/dist/client/react/SystemPage.js.map +1 -0
- package/dist/client/react/TodayGoals.d.ts +5 -0
- package/dist/client/react/TodayGoals.d.ts.map +1 -0
- package/dist/client/react/TodayGoals.js +12 -0
- package/dist/client/react/TodayGoals.js.map +1 -0
- package/dist/client/react/TodayNeeds.d.ts +7 -0
- package/dist/client/react/TodayNeeds.d.ts.map +1 -0
- package/dist/client/react/TodayNeeds.js +14 -0
- package/dist/client/react/TodayNeeds.js.map +1 -0
- package/dist/client/react/TodayOptions.d.ts +7 -0
- package/dist/client/react/TodayOptions.d.ts.map +1 -0
- package/dist/client/react/TodayOptions.js +64 -0
- package/dist/client/react/TodayOptions.js.map +1 -0
- package/dist/client/react/TodayPage.d.ts +7 -0
- package/dist/client/react/TodayPage.d.ts.map +1 -0
- package/dist/client/react/TodayPage.js +24 -0
- package/dist/client/react/TodayPage.js.map +1 -0
- package/dist/client/react/TodayProgress.d.ts +6 -0
- package/dist/client/react/TodayProgress.d.ts.map +1 -0
- package/dist/client/react/TodayProgress.js +18 -0
- package/dist/client/react/TodayProgress.js.map +1 -0
- package/dist/client/react/UpdatesToggle.d.ts +3 -1
- package/dist/client/react/UpdatesToggle.d.ts.map +1 -1
- package/dist/client/react/UpdatesToggle.js +4 -2
- package/dist/client/react/UpdatesToggle.js.map +1 -1
- package/dist/client/react/VisualViewer.d.ts.map +1 -1
- package/dist/client/react/VisualViewer.js +2 -1
- package/dist/client/react/VisualViewer.js.map +1 -1
- package/dist/client/react/WorkCard.d.ts +9 -0
- package/dist/client/react/WorkCard.d.ts.map +1 -0
- package/dist/client/react/WorkCard.js +12 -0
- package/dist/client/react/WorkCard.js.map +1 -0
- package/dist/client/react/WorkCardList.d.ts +10 -0
- package/dist/client/react/WorkCardList.d.ts.map +1 -0
- package/dist/client/react/WorkCardList.js +8 -0
- package/dist/client/react/WorkCardList.js.map +1 -0
- package/dist/client/react/WorkCards.d.ts.map +1 -1
- package/dist/client/react/WorkCards.js +9 -9
- package/dist/client/react/WorkCards.js.map +1 -1
- package/dist/client/react/WorkControls.d.ts.map +1 -1
- package/dist/client/react/WorkControls.js +1 -1
- package/dist/client/react/WorkControls.js.map +1 -1
- package/dist/client/react/WorkDetail.d.ts +3 -1
- package/dist/client/react/WorkDetail.d.ts.map +1 -1
- package/dist/client/react/WorkDetail.js +2 -2
- package/dist/client/react/WorkDetail.js.map +1 -1
- package/dist/client/react/WorkLane.d.ts +12 -0
- package/dist/client/react/WorkLane.d.ts.map +1 -0
- package/dist/client/react/WorkLane.js +9 -0
- package/dist/client/react/WorkLane.js.map +1 -0
- package/dist/client/react/WorkNow.d.ts +5 -0
- package/dist/client/react/WorkNow.d.ts.map +1 -0
- package/dist/client/react/WorkNow.js +20 -0
- package/dist/client/react/WorkNow.js.map +1 -0
- package/dist/client/react/WorkPage.d.ts +3 -1
- package/dist/client/react/WorkPage.d.ts.map +1 -1
- package/dist/client/react/WorkPage.js +10 -9
- package/dist/client/react/WorkPage.js.map +1 -1
- package/dist/client/react/WorkResults.d.ts.map +1 -1
- package/dist/client/react/WorkResults.js +4 -0
- package/dist/client/react/WorkResults.js.map +1 -1
- package/dist/client/react/WorkTable.d.ts.map +1 -1
- package/dist/client/react/WorkTable.js +7 -3
- package/dist/client/react/WorkTable.js.map +1 -1
- package/dist/client/react/WorkTools.d.ts.map +1 -1
- package/dist/client/react/WorkTools.js +3 -3
- package/dist/client/react/WorkTools.js.map +1 -1
- package/dist/client/react/activeRead.d.ts +2 -2
- package/dist/client/react/activeRead.d.ts.map +1 -1
- package/dist/client/react/activeRead.js +7 -3
- package/dist/client/react/activeRead.js.map +1 -1
- package/dist/client/react/components/ui/Badge.d.ts +8 -0
- package/dist/client/react/components/ui/Badge.d.ts.map +1 -0
- package/dist/client/react/components/ui/Badge.js +11 -0
- package/dist/client/react/components/ui/Badge.js.map +1 -0
- package/dist/client/react/components/ui/Button.d.ts +5 -0
- package/dist/client/react/components/ui/Button.d.ts.map +1 -0
- package/dist/client/react/components/ui/Button.js +7 -0
- package/dist/client/react/components/ui/Button.js.map +1 -0
- package/dist/client/react/components/ui/Card.d.ts +3 -0
- package/dist/client/react/components/ui/Card.d.ts.map +1 -0
- package/dist/client/react/components/ui/Card.js +6 -0
- package/dist/client/react/components/ui/Card.js.map +1 -0
- package/dist/client/react/components/ui/Command.d.ts +9 -0
- package/dist/client/react/components/ui/Command.d.ts.map +1 -0
- package/dist/client/react/components/ui/Command.js +24 -0
- package/dist/client/react/components/ui/Command.js.map +1 -0
- package/dist/client/react/components/ui/Popover.d.ts +10 -0
- package/dist/client/react/components/ui/Popover.d.ts.map +1 -0
- package/dist/client/react/components/ui/Popover.js +44 -0
- package/dist/client/react/components/ui/Popover.js.map +1 -0
- package/dist/client/react/components/ui/SegmentedBar.d.ts +17 -0
- package/dist/client/react/components/ui/SegmentedBar.d.ts.map +1 -0
- package/dist/client/react/components/ui/SegmentedBar.js +11 -0
- package/dist/client/react/components/ui/SegmentedBar.js.map +1 -0
- package/dist/client/react/components/ui/Sheet.d.ts +4 -0
- package/dist/client/react/components/ui/Sheet.d.ts.map +1 -0
- package/dist/client/react/components/ui/Sheet.js +7 -0
- package/dist/client/react/components/ui/Sheet.js.map +1 -0
- package/dist/client/react/components/ui/StatusChip.d.ts +5 -0
- package/dist/client/react/components/ui/StatusChip.d.ts.map +1 -0
- package/dist/client/react/components/ui/StatusChip.js +26 -0
- package/dist/client/react/components/ui/StatusChip.js.map +1 -0
- package/dist/client/react/components/ui/StatusSegments.d.ts +6 -0
- package/dist/client/react/components/ui/StatusSegments.d.ts.map +1 -0
- package/dist/client/react/components/ui/StatusSegments.js +19 -0
- package/dist/client/react/components/ui/StatusSegments.js.map +1 -0
- package/dist/client/react/components/ui/Tabs.d.ts +12 -0
- package/dist/client/react/components/ui/Tabs.d.ts.map +1 -0
- package/dist/client/react/components/ui/Tabs.js +28 -0
- package/dist/client/react/components/ui/Tabs.js.map +1 -0
- package/dist/client/react/components/ui/Tooltip.d.ts +8 -0
- package/dist/client/react/components/ui/Tooltip.d.ts.map +1 -0
- package/dist/client/react/components/ui/Tooltip.js +7 -0
- package/dist/client/react/components/ui/Tooltip.js.map +1 -0
- package/dist/client/react/components/ui/buttonVariants.d.ts +5 -0
- package/dist/client/react/components/ui/buttonVariants.d.ts.map +1 -0
- package/dist/client/react/components/ui/buttonVariants.js +14 -0
- package/dist/client/react/components/ui/buttonVariants.js.map +1 -0
- package/dist/client/react/components/ui/statusPresentation.d.ts +20 -0
- package/dist/client/react/components/ui/statusPresentation.d.ts.map +1 -0
- package/dist/client/react/components/ui/statusPresentation.js +32 -0
- package/dist/client/react/components/ui/statusPresentation.js.map +1 -0
- package/dist/client/react/diagnosticsValues.js +2 -2
- package/dist/client/react/diagnosticsValues.js.map +1 -1
- package/dist/client/react/documentRoute.d.ts +1 -1
- package/dist/client/react/documentRoute.d.ts.map +1 -1
- package/dist/client/react/documentRoute.js +2 -2
- package/dist/client/react/documentRoute.js.map +1 -1
- package/dist/client/react/entry.js +3 -7
- package/dist/client/react/entry.js.map +1 -1
- package/dist/client/react/goalWork.d.ts +13 -0
- package/dist/client/react/goalWork.d.ts.map +1 -0
- package/dist/client/react/goalWork.js +12 -0
- package/dist/client/react/goalWork.js.map +1 -0
- package/dist/client/react/inProgressItems.d.ts +95 -0
- package/dist/client/react/inProgressItems.d.ts.map +1 -0
- package/dist/client/react/inProgressItems.js +4 -0
- package/dist/client/react/inProgressItems.js.map +1 -0
- package/dist/client/react/loadBoardPage.d.ts +1 -1
- package/dist/client/react/loadBoardPage.d.ts.map +1 -1
- package/dist/client/react/loadBoardPage.js +31 -3
- package/dist/client/react/loadBoardPage.js.map +1 -1
- package/dist/client/react/loadProjection.d.ts +158 -161
- package/dist/client/react/loadProjection.d.ts.map +1 -1
- package/dist/client/react/loadProjection.js +3 -4
- package/dist/client/react/loadProjection.js.map +1 -1
- package/dist/client/react/loadRemaining.d.ts +454 -67
- package/dist/client/react/loadRemaining.d.ts.map +1 -1
- package/dist/client/react/loadRemaining.js +9 -4
- package/dist/client/react/loadRemaining.js.map +1 -1
- package/dist/client/react/mainLocation.d.ts +3 -1
- package/dist/client/react/mainLocation.d.ts.map +1 -1
- package/dist/client/react/mainLocation.js +7 -7
- package/dist/client/react/mainLocation.js.map +1 -1
- package/dist/client/react/navigationLocation.d.ts +1 -1
- package/dist/client/react/navigationLocation.d.ts.map +1 -1
- package/dist/client/react/navigationLocation.js +1 -1
- package/dist/client/react/navigationLocation.js.map +1 -1
- package/dist/client/react/pageQueries.d.ts +5 -0
- package/dist/client/react/pageQueries.d.ts.map +1 -0
- package/dist/client/react/pageQueries.js +39 -0
- package/dist/client/react/pageQueries.js.map +1 -0
- package/dist/client/react/projectionChanges.d.ts.map +1 -1
- package/dist/client/react/projectionChanges.js +3 -1
- package/dist/client/react/projectionChanges.js.map +1 -1
- package/dist/client/react/projectionRoute.d.ts +2 -2
- package/dist/client/react/projectionRoute.d.ts.map +1 -1
- package/dist/client/react/projectionRoute.js +4 -7
- package/dist/client/react/projectionRoute.js.map +1 -1
- package/dist/client/react/readerLink.js +1 -1
- package/dist/client/react/readerLink.js.map +1 -1
- package/dist/client/react/readingPassage.d.ts +4 -0
- package/dist/client/react/readingPassage.d.ts.map +1 -0
- package/dist/client/react/readingPassage.js +41 -0
- package/dist/client/react/readingPassage.js.map +1 -0
- package/dist/client/react/readingState.d.ts +0 -2
- package/dist/client/react/readingState.d.ts.map +1 -1
- package/dist/client/react/readingState.js +1 -31
- package/dist/client/react/readingState.js.map +1 -1
- package/dist/client/react/remainingRoute.d.ts +1 -1
- package/dist/client/react/remainingRoute.d.ts.map +1 -1
- package/dist/client/react/remainingRoute.js +6 -4
- package/dist/client/react/remainingRoute.js.map +1 -1
- package/dist/client/react/retryPage.d.ts +4 -0
- package/dist/client/react/retryPage.d.ts.map +1 -0
- package/dist/client/react/retryPage.js +13 -0
- package/dist/client/react/retryPage.js.map +1 -0
- package/dist/client/react/scheduleReading.d.ts +1 -1
- package/dist/client/react/scheduleReading.d.ts.map +1 -1
- package/dist/client/react/scheduleReading.js +16 -11
- package/dist/client/react/scheduleReading.js.map +1 -1
- package/dist/client/react/searchCommands.d.ts +6 -0
- package/dist/client/react/searchCommands.d.ts.map +1 -1
- package/dist/client/react/searchCommands.js +20 -1
- package/dist/client/react/searchCommands.js.map +1 -1
- package/dist/client/react/shellIds.d.ts +2 -4
- package/dist/client/react/shellIds.d.ts.map +1 -1
- package/dist/client/react/shellIds.js +2 -4
- package/dist/client/react/shellIds.js.map +1 -1
- package/dist/client/react/storedReadings.d.ts +38 -0
- package/dist/client/react/storedReadings.d.ts.map +1 -0
- package/dist/client/react/storedReadings.js +33 -0
- package/dist/client/react/storedReadings.js.map +1 -0
- package/dist/client/react/useAppearance.d.ts.map +1 -1
- package/dist/client/react/useAppearance.js +1 -0
- package/dist/client/react/useAppearance.js.map +1 -1
- package/dist/client/react/useBoardNavigation.d.ts.map +1 -1
- package/dist/client/react/useBoardNavigation.js +13 -11
- package/dist/client/react/useBoardNavigation.js.map +1 -1
- package/dist/client/react/useDiagnosticsPolling.d.ts +1 -1
- package/dist/client/react/useDiagnosticsPolling.d.ts.map +1 -1
- package/dist/client/react/useDiagnosticsPolling.js +5 -2
- package/dist/client/react/useDiagnosticsPolling.js.map +1 -1
- package/dist/client/react/useDocumentPage.d.ts +1 -1
- package/dist/client/react/useDocumentPage.d.ts.map +1 -1
- package/dist/client/react/useDocumentPage.js +5 -1
- package/dist/client/react/useDocumentPage.js.map +1 -1
- package/dist/client/react/useFormFocus.d.ts +2 -0
- package/dist/client/react/useFormFocus.d.ts.map +1 -1
- package/dist/client/react/useFormFocus.js +8 -5
- package/dist/client/react/useFormFocus.js.map +1 -1
- package/dist/client/react/useProjectionData.d.ts +15 -0
- package/dist/client/react/useProjectionData.d.ts.map +1 -0
- package/dist/client/react/useProjectionData.js +21 -0
- package/dist/client/react/useProjectionData.js.map +1 -0
- package/dist/client/react/useResponseForm.d.ts +2 -1
- package/dist/client/react/useResponseForm.d.ts.map +1 -1
- package/dist/client/react/useResponseForm.js +20 -22
- package/dist/client/react/useResponseForm.js.map +1 -1
- package/dist/client/react/useSavedViews.d.ts +14 -0
- package/dist/client/react/useSavedViews.d.ts.map +1 -0
- package/dist/client/react/useSavedViews.js +87 -0
- package/dist/client/react/useSavedViews.js.map +1 -0
- package/dist/client/react/useVirtualRows.d.ts +9 -0
- package/dist/client/react/useVirtualRows.d.ts.map +1 -0
- package/dist/client/react/useVirtualRows.js +14 -0
- package/dist/client/react/useVirtualRows.js.map +1 -0
- package/dist/client/react/workspaceDestinations.d.ts +27 -0
- package/dist/client/react/workspaceDestinations.d.ts.map +1 -0
- package/dist/client/react/workspaceDestinations.js +8 -0
- package/dist/client/react/workspaceDestinations.js.map +1 -0
- package/dist/client/responses/summary.d.ts +2 -2
- package/dist/client/responses/summary.d.ts.map +1 -1
- package/dist/client/responses/summary.js +6 -6
- package/dist/client/responses/summary.js.map +1 -1
- package/dist/diagnostics/daemonContract.d.ts +36 -0
- package/dist/diagnostics/daemonContract.d.ts.map +1 -1
- package/dist/diagnostics/daemonContract.js +5 -1
- package/dist/diagnostics/daemonContract.js.map +1 -1
- package/dist/diagnostics/fleetItems.d.ts +41 -0
- package/dist/diagnostics/fleetItems.d.ts.map +1 -0
- package/dist/diagnostics/fleetItems.js +25 -0
- package/dist/diagnostics/fleetItems.js.map +1 -0
- package/dist/metadata/schema.d.ts +1 -1
- package/dist/metadata/schema.d.ts.map +1 -1
- package/dist/metadata/schema.js +1 -1
- package/dist/metadata/schema.js.map +1 -1
- package/dist/render/visual.d.ts.map +1 -1
- package/dist/render/visual.js +7 -5
- package/dist/render/visual.js.map +1 -1
- package/dist/rpc/PageUrl.d.ts +3 -0
- package/dist/rpc/PageUrl.d.ts.map +1 -0
- package/dist/rpc/PageUrl.js +28 -0
- package/dist/rpc/PageUrl.js.map +1 -0
- package/dist/rpc/Server.d.ts +6 -0
- package/dist/rpc/Server.d.ts.map +1 -0
- package/dist/rpc/Server.js +3 -0
- package/dist/rpc/Server.js.map +1 -0
- package/dist/rpc/contract.d.ts +1676 -267
- package/dist/rpc/contract.d.ts.map +1 -1
- package/dist/rpc/contract.js +25 -44
- package/dist/rpc/contract.js.map +1 -1
- package/dist/rpc/handoffContract.d.ts +32 -32
- package/dist/rpc/pageKeys.js +1 -1
- package/dist/rpc/pageKeys.js.map +1 -1
- package/dist/server/attention/inbox.d.ts +15 -2
- package/dist/server/attention/inbox.d.ts.map +1 -1
- package/dist/server/attention/inbox.js +21 -26
- package/dist/server/attention/inbox.js.map +1 -1
- package/dist/server/attention/managedRequestReceipt.d.ts.map +1 -1
- package/dist/server/attention/managedRequestReceipt.js +16 -11
- package/dist/server/attention/managedRequestReceipt.js.map +1 -1
- package/dist/server/attention/projection.d.ts +4 -0
- package/dist/server/attention/projection.d.ts.map +1 -0
- package/dist/server/attention/projection.js +29 -0
- package/dist/server/attention/projection.js.map +1 -0
- package/dist/server/attention/questionState.d.ts +1 -1
- package/dist/server/attention/questionState.d.ts.map +1 -1
- package/dist/server/attention/questionState.js +13 -23
- package/dist/server/attention/questionState.js.map +1 -1
- package/dist/server/attention/requestInbox.d.ts +41 -0
- package/dist/server/attention/requestInbox.d.ts.map +1 -0
- package/dist/server/attention/requestInbox.js +56 -0
- package/dist/server/attention/requestInbox.js.map +1 -0
- package/dist/server/attention/requests.d.ts +4 -2
- package/dist/server/attention/requests.d.ts.map +1 -1
- package/dist/server/attention/requests.js +10 -1
- package/dist/server/attention/requests.js.map +1 -1
- package/dist/server/attention/status.d.ts +4 -0
- package/dist/server/attention/status.d.ts.map +1 -0
- package/dist/server/attention/status.js +11 -0
- package/dist/server/attention/status.js.map +1 -0
- package/dist/server/board.d.ts +1 -1
- package/dist/server/board.d.ts.map +1 -1
- package/dist/server/boardRuntime.d.ts +5 -2
- package/dist/server/boardRuntime.d.ts.map +1 -1
- package/dist/server/boardRuntime.js +3 -1
- package/dist/server/boardRuntime.js.map +1 -1
- package/dist/server/boardSocket.d.ts +3 -0
- package/dist/server/boardSocket.d.ts.map +1 -0
- package/dist/server/boardSocket.js +65 -0
- package/dist/server/boardSocket.js.map +1 -0
- package/dist/server/cli.js +5 -1
- package/dist/server/cli.js.map +1 -1
- package/dist/server/currentDocument.d.ts +9 -0
- package/dist/server/currentDocument.d.ts.map +1 -0
- package/dist/server/currentDocument.js +16 -0
- package/dist/server/currentDocument.js.map +1 -0
- package/dist/server/diagnostics/daemon.d.ts +93 -1
- package/dist/server/diagnostics/daemon.d.ts.map +1 -1
- package/dist/server/diagnostics/daemon.js +28 -14
- package/dist/server/diagnostics/daemon.js.map +1 -1
- package/dist/server/document/answerBody.d.ts +4 -0
- package/dist/server/document/answerBody.d.ts.map +1 -0
- package/dist/server/document/answerBody.js +84 -0
- package/dist/server/document/answerBody.js.map +1 -0
- package/dist/server/document/read.d.ts +17 -2
- package/dist/server/document/read.d.ts.map +1 -1
- package/dist/server/document/read.js +20 -12
- package/dist/server/document/read.js.map +1 -1
- package/dist/server/document/readingContext.d.ts +4 -2
- package/dist/server/document/readingContext.d.ts.map +1 -1
- package/dist/server/document/readingContext.js +12 -4
- package/dist/server/document/readingContext.js.map +1 -1
- package/dist/server/document/requestTitle.d.ts +4 -0
- package/dist/server/document/requestTitle.d.ts.map +1 -0
- package/dist/server/document/requestTitle.js +8 -0
- package/dist/server/document/requestTitle.js.map +1 -0
- package/dist/server/document/requests.d.ts.map +1 -1
- package/dist/server/document/requests.js +43 -3
- package/dist/server/document/requests.js.map +1 -1
- package/dist/server/files/watchDirectories.d.ts.map +1 -1
- package/dist/server/files/watchDirectories.js +1 -1
- package/dist/server/files/watchDirectories.js.map +1 -1
- package/dist/server/http/assets.d.ts.map +1 -1
- package/dist/server/http/assets.js +2 -2
- package/dist/server/http/assets.js.map +1 -1
- package/dist/server/http/boardRoutes.d.ts.map +1 -1
- package/dist/server/http/boardRoutes.js +20 -18
- package/dist/server/http/boardRoutes.js.map +1 -1
- package/dist/server/http/identity.d.ts +1 -1
- package/dist/server/http/identity.d.ts.map +1 -1
- package/dist/server/http/identity.js +16 -25
- package/dist/server/http/identity.js.map +1 -1
- package/dist/server/http/page.d.ts +1 -1
- package/dist/server/http/page.d.ts.map +1 -1
- package/dist/server/http/page.js +25 -61
- package/dist/server/http/page.js.map +1 -1
- package/dist/server/http/rpcPolicy.d.ts +1 -0
- package/dist/server/http/rpcPolicy.d.ts.map +1 -1
- package/dist/server/http/rpcPolicy.js +1 -0
- package/dist/server/http/rpcPolicy.js.map +1 -1
- package/dist/server/integration/attention.d.ts +4 -0
- package/dist/server/integration/attention.d.ts.map +1 -1
- package/dist/server/integration/attention.js +2 -0
- package/dist/server/integration/attention.js.map +1 -1
- package/dist/server/integration/diagnostics.d.ts +38 -0
- package/dist/server/integration/diagnostics.d.ts.map +1 -1
- package/dist/server/integration/diagnostics.js +3 -0
- package/dist/server/integration/diagnostics.js.map +1 -1
- package/dist/server/mcp/client.d.ts +2022 -0
- package/dist/server/mcp/client.d.ts.map +1 -0
- package/dist/server/mcp/client.js +33 -0
- package/dist/server/mcp/client.js.map +1 -0
- package/dist/server/mcp/queries.d.ts +6415 -0
- package/dist/server/mcp/queries.d.ts.map +1 -0
- package/dist/server/mcp/queries.js +50 -0
- package/dist/server/mcp/queries.js.map +1 -0
- package/dist/server/mcp/run.d.ts +2 -0
- package/dist/server/mcp/run.d.ts.map +1 -0
- package/dist/server/mcp/run.js +21 -0
- package/dist/server/mcp/run.js.map +1 -0
- package/dist/server/mcp/schema.d.ts +315 -0
- package/dist/server/mcp/schema.d.ts.map +1 -0
- package/dist/server/mcp/schema.js +42 -0
- package/dist/server/mcp/schema.js.map +1 -0
- package/dist/server/mcp/tools.d.ts +3 -0
- package/dist/server/mcp/tools.d.ts.map +1 -0
- package/dist/server/mcp/tools.js +28 -0
- package/dist/server/mcp/tools.js.map +1 -0
- package/dist/server/metadata/backlinks.d.ts.map +1 -1
- package/dist/server/metadata/backlinks.js +21 -5
- package/dist/server/metadata/backlinks.js.map +1 -1
- package/dist/server/metadata/fields.d.ts +1 -1
- package/dist/server/metadata/fields.d.ts.map +1 -1
- package/dist/server/metadata/fields.js +7 -0
- package/dist/server/metadata/fields.js.map +1 -1
- package/dist/server/metadata/sourceLinks.js +2 -2
- package/dist/server/metadata/sourceLinks.js.map +1 -1
- package/dist/server/navigation/libraryData.d.ts +6 -0
- package/dist/server/navigation/libraryData.d.ts.map +1 -0
- package/dist/server/navigation/libraryData.js +36 -0
- package/dist/server/navigation/libraryData.js.map +1 -0
- package/dist/server/navigation/model.d.ts +2 -2
- package/dist/server/navigation/model.d.ts.map +1 -1
- package/dist/server/navigation/model.js +13 -55
- package/dist/server/navigation/model.js.map +1 -1
- package/dist/server/packageInfo.d.ts +3 -0
- package/dist/server/packageInfo.d.ts.map +1 -0
- package/dist/server/packageInfo.js +3 -0
- package/dist/server/packageInfo.js.map +1 -0
- package/dist/server/page/initialTheme.d.ts +3 -0
- package/dist/server/page/initialTheme.d.ts.map +1 -0
- package/dist/server/page/initialTheme.js +14 -0
- package/dist/server/page/initialTheme.js.map +1 -0
- package/dist/server/page/shell.d.ts +1 -2
- package/dist/server/page/shell.d.ts.map +1 -1
- package/dist/server/page/shell.js +5 -32
- package/dist/server/page/shell.js.map +1 -1
- package/dist/server/page/startTemplates.d.ts +3 -3
- package/dist/server/page/startTemplates.js +3 -3
- package/dist/server/responseIndex.d.ts +20 -0
- package/dist/server/responseIndex.d.ts.map +1 -0
- package/dist/server/responseIndex.js +73 -0
- package/dist/server/responseIndex.js.map +1 -0
- package/dist/server/responses/history.d.ts.map +1 -1
- package/dist/server/responses/history.js +5 -7
- package/dist/server/responses/history.js.map +1 -1
- package/dist/server/responses/locate.d.ts.map +1 -1
- package/dist/server/responses/locate.js +3 -6
- package/dist/server/responses/locate.js.map +1 -1
- package/dist/server/responses/optionPrompt.js +1 -1
- package/dist/server/responses/optionPrompt.js.map +1 -1
- package/dist/server/responses/read.d.ts.map +1 -1
- package/dist/server/responses/read.js +7 -6
- package/dist/server/responses/read.js.map +1 -1
- package/dist/server/rpc/HandlerOptions.d.ts +4 -0
- package/dist/server/rpc/HandlerOptions.d.ts.map +1 -1
- package/dist/server/rpc/handlers.d.ts +1 -1
- package/dist/server/rpc/handlers.d.ts.map +1 -1
- package/dist/server/rpc/handlers.js +15 -10
- package/dist/server/rpc/handlers.js.map +1 -1
- package/dist/server/search/entries.d.ts +5 -0
- package/dist/server/search/entries.d.ts.map +1 -1
- package/dist/server/search/entries.js.map +1 -1
- package/dist/server/search/match.d.ts +6 -1
- package/dist/server/search/match.d.ts.map +1 -1
- package/dist/server/search/match.js +41 -11
- package/dist/server/search/match.js.map +1 -1
- package/dist/server/search/metadataEntries.d.ts +1 -1
- package/dist/server/search/metadataEntries.d.ts.map +1 -1
- package/dist/server/search/metadataEntries.js +23 -5
- package/dist/server/search/metadataEntries.js.map +1 -1
- package/dist/server/search/snippet.d.ts +2 -0
- package/dist/server/search/snippet.d.ts.map +1 -0
- package/dist/server/search/snippet.js +10 -0
- package/dist/server/search/snippet.js.map +1 -0
- package/dist/server/search/updateEntries.d.ts.map +1 -1
- package/dist/server/search/updateEntries.js +6 -2
- package/dist/server/search/updateEntries.js.map +1 -1
- package/dist/server/serve-cli.d.ts.map +1 -1
- package/dist/server/serve-cli.js +1 -1
- package/dist/server/serve-cli.js.map +1 -1
- package/dist/server/serve.d.ts +3 -2
- package/dist/server/serve.d.ts.map +1 -1
- package/dist/server/serve.js +19 -7
- package/dist/server/serve.js.map +1 -1
- package/dist/server/views/fleetApproval.d.ts +3 -0
- package/dist/server/views/fleetApproval.d.ts.map +1 -0
- package/dist/server/views/fleetApproval.js +11 -0
- package/dist/server/views/fleetApproval.js.map +1 -0
- package/dist/server/views/fleetItems.d.ts +5 -0
- package/dist/server/views/fleetItems.d.ts.map +1 -0
- package/dist/server/views/fleetItems.js +24 -0
- package/dist/server/views/fleetItems.js.map +1 -0
- package/dist/server/views/goals.d.ts +5 -0
- package/dist/server/views/goals.d.ts.map +1 -0
- package/dist/server/views/goals.js +53 -0
- package/dist/server/views/goals.js.map +1 -0
- package/dist/server/views/projection.d.ts.map +1 -1
- package/dist/server/views/projection.js +3 -2
- package/dist/server/views/projection.js.map +1 -1
- package/dist/server/views/projectionQueries.d.ts +83 -24
- package/dist/server/views/projectionQueries.d.ts.map +1 -1
- package/dist/server/views/projectionQueries.js +12 -29
- package/dist/server/views/projectionQueries.js.map +1 -1
- package/dist/server/views/remainingQueries.d.ts +42 -5
- package/dist/server/views/remainingQueries.d.ts.map +1 -1
- package/dist/server/views/resultProjection.d.ts +32 -2
- package/dist/server/views/resultProjection.d.ts.map +1 -1
- package/dist/server/views/state.d.ts +1 -1
- package/docs/delivery/attention-examples.md +4 -4
- package/docs/delivery/browser-acceptance.md +15 -43
- package/docs/delivery/handoff-examples.md +1 -1
- package/docs/delivery/reading-review.md +1 -1
- package/docs/delivery/response-write-examples.md +1 -1
- package/docs/delivery/source-examples.md +2 -2
- package/docs/delivery/visual-document-examples.md +2 -2
- package/docs/delivery/wave1.md +3 -8
- package/docs/images/answer-card/desktop.png +0 -0
- package/docs/images/answer-card/mobile.png +0 -0
- package/docs/images/command-palette/commands-1440.png +0 -0
- package/docs/images/command-palette/commands-390.png +0 -0
- package/docs/images/command-palette/goal-id-1440.png +0 -0
- package/docs/images/command-palette/goal-id-390.png +0 -0
- package/docs/images/command-palette/goal-title-1440.png +0 -0
- package/docs/images/command-palette/goal-title-390.png +0 -0
- package/docs/images/command-palette/identity-1440.png +0 -0
- package/docs/images/command-palette/identity-390.png +0 -0
- package/docs/images/command-palette/inbox-1440.png +0 -0
- package/docs/images/command-palette/inbox-390.png +0 -0
- package/docs/images/command-palette/record-items-1440.png +0 -0
- package/docs/images/command-palette/record-items-390.png +0 -0
- package/docs/images/command-palette/records-1440.png +0 -0
- package/docs/images/command-palette/records-390.png +0 -0
- package/docs/images/command-palette/watch-1440.png +0 -0
- package/docs/images/command-palette/watch-390.png +0 -0
- package/docs/images/command-palette/watch-records-1440.png +0 -0
- package/docs/images/command-palette/watch-records-390.png +0 -0
- package/docs/images/current-views/handoff-1440.png +0 -0
- package/docs/images/current-views/handoff-390.png +0 -0
- package/docs/images/current-views/result-1440.png +0 -0
- package/docs/images/current-views/result-390.png +0 -0
- package/docs/images/current-views/start-1440.png +0 -0
- package/docs/images/current-views/start-390.png +0 -0
- package/docs/images/current-views/system-1440.png +0 -0
- package/docs/images/current-views/system-390.png +0 -0
- package/docs/images/goal-page/desktop.png +0 -0
- package/docs/images/goal-page/narrow.png +0 -0
- package/docs/images/item-overview/goal-1440.png +0 -0
- package/docs/images/item-overview/goal-390.png +0 -0
- package/docs/images/item-overview/plain-1440.png +0 -0
- package/docs/images/item-overview/plain-390.png +0 -0
- package/docs/images/item-overview/report-1440.png +0 -0
- package/docs/images/item-overview/report-390.png +0 -0
- package/docs/images/item-overview/task-1440.png +0 -0
- package/docs/images/item-overview/task-390.png +0 -0
- package/docs/images/library-1440.png +0 -0
- package/docs/images/library-390.png +0 -0
- package/docs/images/now-desktop.png +0 -0
- package/docs/images/now-mobile.png +0 -0
- package/docs/images/print-full-width.png +0 -0
- package/docs/images/shell-1440-dark.png +0 -0
- package/docs/images/shell-1440-light.png +0 -0
- package/docs/images/shell-390-dark.png +0 -0
- package/docs/images/shell-390-light.png +0 -0
- package/docs/images/sidebar-1440.png +0 -0
- package/docs/images/sidebar-390-dark.png +0 -0
- package/docs/images/sidebar-390-light.png +0 -0
- package/docs/images/sidebar-390.png +0 -0
- package/docs/north-star.md +5 -1
- package/docs/roadmap.md +9 -31
- package/docs/screenshots/today-1440.png +0 -0
- package/docs/screenshots/today-390.png +0 -0
- package/package.json +33 -43
- package/src/browser/Navigation.ts +8 -0
- package/src/browser/document/ReadingContext.ts +9 -1
- package/src/browser/document/schema.ts +5 -0
- package/src/browser/document/sourceGroups.ts +52 -0
- package/src/browser/navigation/library.ts +25 -0
- package/src/browser/responses/cardContext.ts +50 -0
- package/src/browser/responses/reasonMarkdown.ts +5 -0
- package/src/browser/views/FleetItemsProjection.ts +14 -0
- package/src/browser/views/GoalsProjection.ts +23 -0
- package/src/browser/views/goalWorkState.ts +17 -0
- package/src/browser/views/now.ts +93 -0
- package/src/browser/views/schema.ts +19 -34
- package/src/browser/views/state.ts +2 -2
- package/src/client/document/Mermaid.ts +4 -3
- package/src/client/document/View.ts +38 -10
- package/src/client/document/boardLayout.ts +9 -3
- package/src/client/document/layout.ts +1 -1
- package/src/client/document/mermaidColor.ts +19 -0
- package/src/client/formFocus.ts +1 -2
- package/src/client/page/routeQuery.ts +4 -0
- package/src/client/react/Age.tsx +8 -1
- package/src/client/react/AnswerContext.tsx +29 -0
- package/src/client/react/AnswerForm.tsx +33 -49
- package/src/client/react/AnswerMore.tsx +67 -0
- package/src/client/react/AnswerPanel.tsx +56 -28
- package/src/client/react/AnswerPrompts.tsx +16 -6
- package/src/client/react/BoardMain.tsx +1 -1
- package/src/client/react/BoardShell.tsx +24 -29
- package/src/client/react/DocumentAttention.tsx +9 -8
- package/src/client/react/DocumentClaims.tsx +10 -10
- package/src/client/react/DocumentContext.tsx +36 -25
- package/src/client/react/DocumentCriteria.tsx +18 -10
- package/src/client/react/DocumentEvidence.tsx +1 -3
- package/src/client/react/DocumentMain.tsx +8 -5
- package/src/client/react/DocumentMetadata.tsx +13 -11
- package/src/client/react/DocumentPage.tsx +15 -21
- package/src/client/react/DocumentRecords.tsx +1 -1
- package/src/client/react/DocumentRelationships.tsx +59 -0
- package/src/client/react/DocumentSource.tsx +30 -0
- package/src/client/react/DocumentWorkMetadata.tsx +9 -91
- package/src/client/react/Favorite.tsx +1 -1
- package/src/client/react/FleetItemsContext.ts +3 -0
- package/src/client/react/FleetMain.tsx +13 -0
- package/src/client/react/FormField.tsx +7 -3
- package/src/client/react/GoalCriteria.tsx +59 -0
- package/src/client/react/GoalOverviewCard.tsx +48 -0
- package/src/client/react/GoalPage.tsx +22 -0
- package/src/client/react/GoalProgress.tsx +45 -0
- package/src/client/react/GoalProgressHeader.tsx +35 -0
- package/src/client/react/GoalProgressSummary.tsx +13 -0
- package/src/client/react/GoalWorkTable.tsx +82 -0
- package/src/client/react/GoalsPage.tsx +30 -0
- package/src/client/react/HandoffForm.tsx +8 -6
- package/src/client/react/HandoffPage.tsx +6 -5
- package/src/client/react/HandoffPrompt.tsx +11 -3
- package/src/client/react/Header.tsx +71 -45
- package/src/client/react/HomeBoard.tsx +8 -7
- package/src/client/react/ItemSummary.tsx +80 -0
- package/src/client/react/KeyboardHints.tsx +7 -0
- package/src/client/react/LibraryContents.tsx +82 -0
- package/src/client/react/LibraryContext.ts +23 -0
- package/src/client/react/LibraryMain.tsx +25 -0
- package/src/client/react/LibraryPage.tsx +74 -0
- package/src/client/react/LiveControls.tsx +8 -4
- package/src/client/react/Modal.tsx +3 -0
- package/src/client/react/PhoneNavigation.tsx +84 -0
- package/src/client/react/PrChip.tsx +13 -0
- package/src/client/react/ProjectionFrame.tsx +14 -21
- package/src/client/react/ProjectionMain.tsx +11 -21
- package/src/client/react/PromptOption.tsx +17 -17
- package/src/client/react/ReadingHistory.tsx +72 -0
- package/src/client/react/ReadingLibrary.tsx +9 -57
- package/src/client/react/ReadingPanel.tsx +14 -0
- package/src/client/react/Reference.tsx +13 -1
- package/src/client/react/RemainingMain.tsx +16 -6
- package/src/client/react/RespondPage.tsx +4 -37
- package/src/client/react/ResponseHistory.tsx +8 -2
- package/src/client/react/ResultCriteria.tsx +10 -11
- package/src/client/react/ResultPage.tsx +6 -4
- package/src/client/react/SavedViews.tsx +1 -1
- package/src/client/react/SearchDialog.tsx +14 -105
- package/src/client/react/SearchPalette.tsx +129 -0
- package/src/client/react/SearchResults.tsx +6 -3
- package/src/client/react/SettingsPopover.tsx +43 -0
- package/src/client/react/ShellApi.ts +3 -2
- package/src/client/react/Sidebar.tsx +83 -63
- package/src/client/react/SourceList.tsx +44 -0
- package/src/client/react/StartPage.tsx +13 -5
- package/src/client/react/SystemFleetLane.tsx +40 -0
- package/src/client/react/SystemHealth.tsx +64 -0
- package/src/client/react/SystemMain.tsx +29 -0
- package/src/client/react/SystemPage.tsx +89 -0
- package/src/client/react/TodayGoals.tsx +52 -0
- package/src/client/react/TodayNeeds.tsx +54 -0
- package/src/client/react/TodayOptions.tsx +116 -0
- package/src/client/react/TodayPage.tsx +69 -0
- package/src/client/react/TodayProgress.tsx +58 -0
- package/src/client/react/UpdatesToggle.tsx +6 -3
- package/src/client/react/VisualViewer.tsx +3 -1
- package/src/client/react/WorkCard.tsx +38 -0
- package/src/client/react/WorkCardList.tsx +30 -0
- package/src/client/react/WorkCards.tsx +21 -33
- package/src/client/react/WorkControls.tsx +1 -3
- package/src/client/react/WorkDetail.tsx +3 -2
- package/src/client/react/WorkLane.tsx +39 -0
- package/src/client/react/WorkNow.tsx +35 -0
- package/src/client/react/WorkPage.tsx +24 -17
- package/src/client/react/WorkResults.tsx +4 -0
- package/src/client/react/WorkTable.tsx +37 -11
- package/src/client/react/WorkTools.tsx +13 -11
- package/src/client/react/activeRead.ts +8 -4
- package/src/client/react/command-palette.css +59 -0
- package/src/client/react/components/ui/Badge.tsx +11 -0
- package/src/client/react/components/ui/Button.tsx +8 -0
- package/src/client/react/components/ui/Card.tsx +5 -0
- package/src/client/react/components/ui/Command.tsx +64 -0
- package/src/client/react/components/ui/Popover.tsx +87 -0
- package/src/client/react/components/ui/SegmentedBar.tsx +40 -0
- package/src/client/react/components/ui/Sheet.tsx +14 -0
- package/src/client/react/components/ui/StatusChip.tsx +31 -0
- package/src/client/react/components/ui/StatusSegments.tsx +56 -0
- package/src/client/react/components/ui/Tabs.tsx +70 -0
- package/src/client/react/components/ui/Tooltip.tsx +17 -0
- package/src/client/react/components/ui/buttonVariants.ts +16 -0
- package/src/client/react/components/ui/statusPresentation.ts +32 -0
- package/src/client/react/diagnosticsValues.tsx +3 -3
- package/src/client/react/documentRoute.ts +3 -3
- package/src/client/react/entry.css +239 -22
- package/src/client/react/entry.tsx +3 -7
- package/src/client/react/goalWork.ts +21 -0
- package/src/client/react/inProgressItems.ts +5 -0
- package/src/client/react/loadBoardPage.ts +34 -4
- package/src/client/react/loadProjection.ts +3 -4
- package/src/client/react/loadRemaining.ts +9 -4
- package/src/client/react/mainLocation.ts +8 -7
- package/src/client/react/navigationLocation.ts +1 -1
- package/src/client/react/pageQueries.ts +42 -0
- package/src/client/react/projectionChanges.ts +5 -3
- package/src/client/react/projectionRoute.ts +5 -8
- package/src/client/react/readerLink.ts +1 -1
- package/src/client/react/readingPassage.ts +40 -0
- package/src/client/react/readingState.ts +1 -30
- package/src/client/react/remainingRoute.ts +6 -4
- package/src/client/react/retryPage.ts +15 -0
- package/src/client/react/scheduleReading.ts +15 -10
- package/src/client/react/searchCommands.ts +26 -1
- package/src/client/react/shellIds.ts +2 -4
- package/src/client/react/storedReadings.ts +31 -0
- package/src/client/react/useAppearance.ts +1 -0
- package/src/client/react/useBoardNavigation.ts +13 -18
- package/src/client/react/useDiagnosticsPolling.ts +5 -2
- package/src/client/react/useDocumentPage.ts +5 -2
- package/src/client/react/useFormFocus.ts +22 -16
- package/src/client/react/useProjectionData.ts +26 -0
- package/src/client/react/useResponseForm.ts +20 -22
- package/src/client/react/useVirtualRows.ts +14 -0
- package/src/client/react/workspaceDestinations.ts +7 -0
- package/src/client/responses/summary.ts +6 -6
- package/src/diagnostics/daemonContract.ts +5 -1
- package/src/diagnostics/fleetItems.ts +26 -0
- package/src/metadata/schema.ts +3 -1
- package/src/render/visual.ts +7 -5
- package/src/rpc/PageUrl.ts +32 -0
- package/src/rpc/Server.ts +3 -0
- package/src/rpc/contract.ts +25 -48
- package/src/rpc/pageKeys.ts +1 -1
- package/src/server/attention/inbox.ts +21 -31
- package/src/server/attention/managedRequestReceipt.ts +17 -15
- package/src/server/attention/projection.ts +32 -0
- package/src/server/attention/questionState.ts +15 -26
- package/src/server/attention/requestInbox.ts +61 -0
- package/src/server/attention/requests.ts +18 -1
- package/src/server/attention/status.ts +15 -0
- package/src/server/board.ts +1 -1
- package/src/server/boardRuntime.ts +4 -1
- package/src/server/boardSocket.ts +81 -0
- package/src/server/cli.ts +4 -1
- package/src/server/currentDocument.ts +23 -0
- package/src/server/diagnostics/daemon.ts +34 -14
- package/src/server/document/answerBody.ts +96 -0
- package/src/server/document/read.ts +26 -16
- package/src/server/document/readingContext.ts +18 -7
- package/src/server/document/requestTitle.ts +10 -0
- package/src/server/document/requests.ts +46 -3
- package/src/server/files/watchDirectories.ts +3 -0
- package/src/server/http/assets.ts +2 -2
- package/src/server/http/boardRoutes.ts +22 -21
- package/src/server/http/identity.ts +15 -54
- package/src/server/http/page.ts +25 -81
- package/src/server/http/rpcPolicy.ts +2 -0
- package/src/server/integration/attention.ts +5 -0
- package/src/server/integration/diagnostics.ts +3 -0
- package/src/server/mcp/client.ts +43 -0
- package/src/server/mcp/queries.ts +60 -0
- package/src/server/mcp/run.ts +37 -0
- package/src/server/mcp/schema.ts +46 -0
- package/src/server/mcp/tools.ts +37 -0
- package/src/server/metadata/backlinks.ts +23 -7
- package/src/server/metadata/fields.ts +7 -0
- package/src/server/metadata/sourceLinks.ts +2 -2
- package/src/server/navigation/libraryData.ts +43 -0
- package/src/server/navigation/model.ts +14 -69
- package/src/server/packageInfo.ts +2 -0
- package/src/server/page/initialTheme.ts +13 -0
- package/src/server/page/shell.ts +5 -43
- package/src/server/page/startTemplates.ts +3 -3
- package/src/server/responseIndex.ts +97 -0
- package/src/server/responses/history.ts +5 -7
- package/src/server/responses/locate.ts +3 -6
- package/src/server/responses/optionPrompt.ts +1 -1
- package/src/server/responses/read.ts +12 -7
- package/src/server/rpc/HandlerOptions.ts +4 -0
- package/src/server/rpc/handlers.ts +18 -10
- package/src/server/search/entries.ts +5 -0
- package/src/server/search/match.ts +46 -11
- package/src/server/search/metadataEntries.ts +30 -5
- package/src/server/search/snippet.ts +9 -0
- package/src/server/search/updateEntries.ts +6 -2
- package/src/server/serve-cli.ts +1 -2
- package/src/server/serve.ts +28 -13
- package/src/server/views/fleetApproval.ts +12 -0
- package/src/server/views/fleetItems.ts +28 -0
- package/src/server/views/goals.ts +63 -0
- package/src/server/views/projection.ts +3 -2
- package/src/server/views/projectionQueries.ts +13 -31
- package/dist/browser/navigation/html.d.ts +0 -3
- package/dist/browser/navigation/html.d.ts.map +0 -1
- package/dist/browser/navigation/html.js +0 -25
- package/dist/browser/navigation/html.js.map +0 -1
- package/dist/browser/navigation/schema.d.ts +0 -47
- package/dist/browser/navigation/schema.d.ts.map +0 -1
- package/dist/browser/navigation/schema.js +0 -24
- package/dist/browser/navigation/schema.js.map +0 -1
- package/dist/client/mockups/app.d.ts +0 -2
- package/dist/client/mockups/app.d.ts.map +0 -1
- package/dist/client/mockups/app.js +0 -111
- package/dist/client/mockups/app.js.map +0 -1
- package/dist/client/mockups/element.d.ts +0 -2
- package/dist/client/mockups/element.d.ts.map +0 -1
- package/dist/client/mockups/element.js +0 -8
- package/dist/client/mockups/element.js.map +0 -1
- package/dist/client/mockups/sampleData.d.ts +0 -20
- package/dist/client/mockups/sampleData.d.ts.map +0 -1
- package/dist/client/mockups/sampleData.js +0 -82
- package/dist/client/mockups/sampleData.js.map +0 -1
- package/dist/client/mockups/work.d.ts +0 -3
- package/dist/client/mockups/work.d.ts.map +0 -1
- package/dist/client/mockups/work.js +0 -84
- package/dist/client/mockups/work.js.map +0 -1
- package/dist/client/react/ChangesMain.d.ts +0 -8
- package/dist/client/react/ChangesMain.d.ts.map +0 -1
- package/dist/client/react/ChangesMain.js +0 -24
- package/dist/client/react/ChangesMain.js.map +0 -1
- package/dist/client/react/DiagnosticsFleet.d.ts +0 -6
- package/dist/client/react/DiagnosticsFleet.d.ts.map +0 -1
- package/dist/client/react/DiagnosticsFleet.js +0 -16
- package/dist/client/react/DiagnosticsFleet.js.map +0 -1
- package/dist/client/react/DiagnosticsMain.d.ts +0 -8
- package/dist/client/react/DiagnosticsMain.d.ts.map +0 -1
- package/dist/client/react/DiagnosticsMain.js +0 -11
- package/dist/client/react/DiagnosticsMain.js.map +0 -1
- package/dist/client/react/DiagnosticsPage.d.ts +0 -5
- package/dist/client/react/DiagnosticsPage.d.ts.map +0 -1
- package/dist/client/react/DiagnosticsPage.js +0 -23
- package/dist/client/react/DiagnosticsPage.js.map +0 -1
- package/dist/client/react/HistoryComparison.d.ts +0 -5
- package/dist/client/react/HistoryComparison.d.ts.map +0 -1
- package/dist/client/react/HistoryComparison.js +0 -14
- package/dist/client/react/HistoryComparison.js.map +0 -1
- package/dist/client/react/HistoryRetention.d.ts +0 -5
- package/dist/client/react/HistoryRetention.d.ts.map +0 -1
- package/dist/client/react/HistoryRetention.js +0 -28
- package/dist/client/react/HistoryRetention.js.map +0 -1
- package/dist/client/react/InboxPage.d.ts +0 -5
- package/dist/client/react/InboxPage.d.ts.map +0 -1
- package/dist/client/react/InboxPage.js +0 -18
- package/dist/client/react/InboxPage.js.map +0 -1
- package/dist/client/react/NavigationTree.d.ts +0 -6
- package/dist/client/react/NavigationTree.d.ts.map +0 -1
- package/dist/client/react/NavigationTree.js +0 -29
- package/dist/client/react/NavigationTree.js.map +0 -1
- package/dist/client/react/OverviewGroups.d.ts +0 -5
- package/dist/client/react/OverviewGroups.d.ts.map +0 -1
- package/dist/client/react/OverviewGroups.js +0 -18
- package/dist/client/react/OverviewGroups.js.map +0 -1
- package/dist/client/react/OverviewPage.d.ts +0 -5
- package/dist/client/react/OverviewPage.d.ts.map +0 -1
- package/dist/client/react/OverviewPage.js +0 -16
- package/dist/client/react/OverviewPage.js.map +0 -1
- package/dist/client/react/historyStore.d.ts +0 -7
- package/dist/client/react/historyStore.d.ts.map +0 -1
- package/dist/client/react/historyStore.js +0 -61
- package/dist/client/react/historyStore.js.map +0 -1
- package/dist/client/react/pageQuery.d.ts +0 -5
- package/dist/client/react/pageQuery.d.ts.map +0 -1
- package/dist/client/react/pageQuery.js +0 -35
- package/dist/client/react/pageQuery.js.map +0 -1
- package/dist/client/react/readingHistory.d.ts +0 -38
- package/dist/client/react/readingHistory.d.ts.map +0 -1
- package/dist/client/react/readingHistory.js +0 -33
- package/dist/client/react/readingHistory.js.map +0 -1
- package/dist/client/react/readingLibrary.d.ts +0 -24
- package/dist/client/react/readingLibrary.d.ts.map +0 -1
- package/dist/client/react/readingLibrary.js +0 -18
- package/dist/client/react/readingLibrary.js.map +0 -1
- package/dist/client/react/savedViews.d.ts +0 -14
- package/dist/client/react/savedViews.d.ts.map +0 -1
- package/dist/client/react/savedViews.js +0 -87
- package/dist/client/react/savedViews.js.map +0 -1
- package/dist/client/react/useHistoryComparison.d.ts +0 -33
- package/dist/client/react/useHistoryComparison.d.ts.map +0 -1
- package/dist/client/react/useHistoryComparison.js +0 -146
- package/dist/client/react/useHistoryComparison.js.map +0 -1
- package/dist/history/schema.d.ts +0 -57
- package/dist/history/schema.d.ts.map +0 -1
- package/dist/history/schema.js +0 -31
- package/dist/history/schema.js.map +0 -1
- package/dist/server/attention/inboxHtml.d.ts +0 -4
- package/dist/server/attention/inboxHtml.d.ts.map +0 -1
- package/dist/server/attention/inboxHtml.js +0 -48
- package/dist/server/attention/inboxHtml.js.map +0 -1
- package/dist/server/attention/overviewHtml.d.ts +0 -3
- package/dist/server/attention/overviewHtml.d.ts.map +0 -1
- package/dist/server/attention/overviewHtml.js +0 -43
- package/dist/server/attention/overviewHtml.js.map +0 -1
- package/dist/server/attention/style.d.ts +0 -2
- package/dist/server/attention/style.d.ts.map +0 -1
- package/dist/server/attention/style.js +0 -10
- package/dist/server/attention/style.js.map +0 -1
- package/dist/server/diagnostics/style.d.ts +0 -2
- package/dist/server/diagnostics/style.d.ts.map +0 -1
- package/dist/server/diagnostics/style.js +0 -20
- package/dist/server/diagnostics/style.js.map +0 -1
- package/dist/server/history/baseline.d.ts +0 -19
- package/dist/server/history/baseline.d.ts.map +0 -1
- package/dist/server/history/baseline.js +0 -40
- package/dist/server/history/baseline.js.map +0 -1
- package/dist/server/history/compare.d.ts +0 -14
- package/dist/server/history/compare.d.ts.map +0 -1
- package/dist/server/history/compare.js +0 -47
- package/dist/server/history/compare.js.map +0 -1
- package/dist/server/history/documents.d.ts +0 -10
- package/dist/server/history/documents.d.ts.map +0 -1
- package/dist/server/history/documents.js +0 -15
- package/dist/server/history/documents.js.map +0 -1
- package/dist/server/history/fields.d.ts +0 -3
- package/dist/server/history/fields.d.ts.map +0 -1
- package/dist/server/history/fields.js +0 -27
- package/dist/server/history/fields.js.map +0 -1
- package/dist/server/history/html.d.ts +0 -3
- package/dist/server/history/html.d.ts.map +0 -1
- package/dist/server/history/html.js +0 -19
- package/dist/server/history/html.js.map +0 -1
- package/dist/server/history/limits.d.ts +0 -3
- package/dist/server/history/limits.d.ts.map +0 -1
- package/dist/server/history/limits.js +0 -3
- package/dist/server/history/limits.js.map +0 -1
- package/dist/server/history/response.d.ts +0 -4
- package/dist/server/history/response.d.ts.map +0 -1
- package/dist/server/history/response.js +0 -33
- package/dist/server/history/response.js.map +0 -1
- package/dist/server/http/inbox.d.ts +0 -5
- package/dist/server/http/inbox.d.ts.map +0 -1
- package/dist/server/http/inbox.js +0 -12
- package/dist/server/http/inbox.js.map +0 -1
- package/dist/server/http/overview.d.ts +0 -5
- package/dist/server/http/overview.d.ts.map +0 -1
- package/dist/server/http/overview.js +0 -13
- package/dist/server/http/overview.js.map +0 -1
- package/dist/server/http/work.d.ts +0 -6
- package/dist/server/http/work.d.ts.map +0 -1
- package/dist/server/http/work.js +0 -22
- package/dist/server/http/work.js.map +0 -1
- package/dist/server/page/attentionDetails.d.ts +0 -4
- package/dist/server/page/attentionDetails.d.ts.map +0 -1
- package/dist/server/page/attentionDetails.js +0 -24
- package/dist/server/page/attentionDetails.js.map +0 -1
- package/dist/server/page/backlinksHtml.d.ts +0 -3
- package/dist/server/page/backlinksHtml.d.ts.map +0 -1
- package/dist/server/page/backlinksHtml.js +0 -16
- package/dist/server/page/backlinksHtml.js.map +0 -1
- package/dist/server/page/boardHtml.d.ts +0 -4
- package/dist/server/page/boardHtml.d.ts.map +0 -1
- package/dist/server/page/boardHtml.js +0 -45
- package/dist/server/page/boardHtml.js.map +0 -1
- package/dist/server/page/criteriaEvidence.d.ts +0 -4
- package/dist/server/page/criteriaEvidence.d.ts.map +0 -1
- package/dist/server/page/criteriaEvidence.js +0 -27
- package/dist/server/page/criteriaEvidence.js.map +0 -1
- package/dist/server/page/documentHtml.d.ts +0 -4
- package/dist/server/page/documentHtml.d.ts.map +0 -1
- package/dist/server/page/documentHtml.js +0 -16
- package/dist/server/page/documentHtml.js.map +0 -1
- package/dist/server/page/itemIntroduction.d.ts +0 -3
- package/dist/server/page/itemIntroduction.d.ts.map +0 -1
- package/dist/server/page/itemIntroduction.js +0 -9
- package/dist/server/page/itemIntroduction.js.map +0 -1
- package/dist/server/page/itemStyles.d.ts +0 -2
- package/dist/server/page/itemStyles.d.ts.map +0 -1
- package/dist/server/page/itemStyles.js +0 -30
- package/dist/server/page/itemStyles.js.map +0 -1
- package/dist/server/page/metadata.d.ts +0 -5
- package/dist/server/page/metadata.d.ts.map +0 -1
- package/dist/server/page/metadata.js +0 -49
- package/dist/server/page/metadata.js.map +0 -1
- package/dist/server/page/metadataDetails.d.ts +0 -4
- package/dist/server/page/metadataDetails.d.ts.map +0 -1
- package/dist/server/page/metadataDetails.js +0 -35
- package/dist/server/page/metadataDetails.js.map +0 -1
- package/dist/server/page/metadataLinks.d.ts +0 -6
- package/dist/server/page/metadataLinks.d.ts.map +0 -1
- package/dist/server/page/metadataLinks.js +0 -31
- package/dist/server/page/metadataLinks.js.map +0 -1
- package/dist/server/page/nav.d.ts +0 -5
- package/dist/server/page/nav.d.ts.map +0 -1
- package/dist/server/page/nav.js +0 -9
- package/dist/server/page/nav.js.map +0 -1
- package/dist/server/page/readingStyles.d.ts +0 -2
- package/dist/server/page/readingStyles.d.ts.map +0 -1
- package/dist/server/page/readingStyles.js +0 -32
- package/dist/server/page/readingStyles.js.map +0 -1
- package/dist/server/page/readingTools.d.ts +0 -3
- package/dist/server/page/readingTools.d.ts.map +0 -1
- package/dist/server/page/readingTools.js +0 -10
- package/dist/server/page/readingTools.js.map +0 -1
- package/dist/server/page/recordedEvidence.d.ts +0 -4
- package/dist/server/page/recordedEvidence.d.ts.map +0 -1
- package/dist/server/page/recordedEvidence.js +0 -10
- package/dist/server/page/recordedEvidence.js.map +0 -1
- package/dist/server/page/searchDialog.d.ts +0 -3
- package/dist/server/page/searchDialog.d.ts.map +0 -1
- package/dist/server/page/searchDialog.js +0 -16
- package/dist/server/page/searchDialog.js.map +0 -1
- package/dist/server/page/style.d.ts +0 -2
- package/dist/server/page/style.d.ts.map +0 -1
- package/dist/server/page/style.js +0 -111
- package/dist/server/page/style.js.map +0 -1
- package/dist/server/page/updated.d.ts +0 -2
- package/dist/server/page/updated.d.ts.map +0 -1
- package/dist/server/page/updated.js +0 -4
- package/dist/server/page/updated.js.map +0 -1
- package/dist/server/page/visualDialog.d.ts +0 -3
- package/dist/server/page/visualDialog.d.ts.map +0 -1
- package/dist/server/page/visualDialog.js +0 -25
- package/dist/server/page/visualDialog.js.map +0 -1
- package/dist/server/page/workspaceStyles.d.ts +0 -3
- package/dist/server/page/workspaceStyles.d.ts.map +0 -1
- package/dist/server/page/workspaceStyles.js +0 -89
- package/dist/server/page/workspaceStyles.js.map +0 -1
- package/dist/server/responses/authoredQuestionHtml.d.ts +0 -4
- package/dist/server/responses/authoredQuestionHtml.d.ts.map +0 -1
- package/dist/server/responses/authoredQuestionHtml.js +0 -30
- package/dist/server/responses/authoredQuestionHtml.js.map +0 -1
- package/dist/server/responses/composerHtml.d.ts +0 -27
- package/dist/server/responses/composerHtml.d.ts.map +0 -1
- package/dist/server/responses/composerHtml.js +0 -17
- package/dist/server/responses/composerHtml.js.map +0 -1
- package/dist/server/responses/historyHtml.d.ts +0 -28
- package/dist/server/responses/historyHtml.d.ts.map +0 -1
- package/dist/server/responses/historyHtml.js +0 -8
- package/dist/server/responses/historyHtml.js.map +0 -1
- package/dist/server/responses/optionControls.d.ts +0 -4
- package/dist/server/responses/optionControls.d.ts.map +0 -1
- package/dist/server/responses/optionControls.js +0 -11
- package/dist/server/responses/optionControls.js.map +0 -1
- package/dist/server/responses/templateHtml.d.ts +0 -8
- package/dist/server/responses/templateHtml.d.ts.map +0 -1
- package/dist/server/responses/templateHtml.js +0 -26
- package/dist/server/responses/templateHtml.js.map +0 -1
- package/dist/server/views/tools.d.ts +0 -3
- package/dist/server/views/tools.d.ts.map +0 -1
- package/dist/server/views/tools.js +0 -11
- package/dist/server/views/tools.js.map +0 -1
- package/dist/server/views/workCards.d.ts +0 -4
- package/dist/server/views/workCards.d.ts.map +0 -1
- package/dist/server/views/workCards.js +0 -24
- package/dist/server/views/workCards.js.map +0 -1
- package/dist/server/views/workControls.d.ts +0 -4
- package/dist/server/views/workControls.d.ts.map +0 -1
- package/dist/server/views/workControls.js +0 -32
- package/dist/server/views/workControls.js.map +0 -1
- package/dist/server/views/workDetail.d.ts +0 -13
- package/dist/server/views/workDetail.d.ts.map +0 -1
- package/dist/server/views/workDetail.js +0 -26
- package/dist/server/views/workDetail.js.map +0 -1
- package/dist/server/views/workHtml.d.ts +0 -15
- package/dist/server/views/workHtml.d.ts.map +0 -1
- package/dist/server/views/workHtml.js +0 -39
- package/dist/server/views/workHtml.js.map +0 -1
- package/dist/server/views/workStyle.d.ts +0 -2
- package/dist/server/views/workStyle.d.ts.map +0 -1
- package/dist/server/views/workStyle.js +0 -19
- package/dist/server/views/workStyle.js.map +0 -1
- package/dist/server/views/workTable.d.ts +0 -4
- package/dist/server/views/workTable.d.ts.map +0 -1
- package/dist/server/views/workTable.js +0 -24
- package/dist/server/views/workTable.js.map +0 -1
- package/docs/delivery/change-history-examples.md +0 -46
- package/docs/experience.md +0 -89
- package/docs/mockups/images/brief-mobile.png +0 -0
- package/docs/mockups/images/brief.png +0 -0
- package/docs/mockups/images/decision-mobile.png +0 -0
- package/docs/mockups/images/decision.png +0 -0
- package/docs/mockups/images/evidence-mobile.png +0 -0
- package/docs/mockups/images/evidence.png +0 -0
- package/docs/mockups/images/overview-mobile.png +0 -0
- package/docs/mockups/images/overview.png +0 -0
- package/docs/mockups/images/vision-board.png +0 -0
- package/docs/mockups/images/work-mobile.png +0 -0
- package/docs/mockups/images/work.png +0 -0
- package/docs/mockups/index.html +0 -458
- package/docs/mockups/style.css +0 -1709
- package/src/browser/navigation/html.ts +0 -29
- package/src/browser/navigation/schema.ts +0 -27
- package/src/client/mockups/app.ts +0 -114
- package/src/client/mockups/element.ts +0 -7
- package/src/client/mockups/sampleData.ts +0 -92
- package/src/client/mockups/work.ts +0 -84
- package/src/client/react/ChangesMain.tsx +0 -68
- package/src/client/react/DiagnosticsFleet.tsx +0 -64
- package/src/client/react/DiagnosticsMain.tsx +0 -29
- package/src/client/react/DiagnosticsPage.tsx +0 -77
- package/src/client/react/HistoryComparison.tsx +0 -60
- package/src/client/react/HistoryRetention.tsx +0 -29
- package/src/client/react/InboxPage.tsx +0 -51
- package/src/client/react/NavigationTree.tsx +0 -64
- package/src/client/react/OverviewGroups.tsx +0 -61
- package/src/client/react/OverviewPage.tsx +0 -68
- package/src/client/react/historyStore.ts +0 -56
- package/src/client/react/pageQuery.ts +0 -38
- package/src/client/react/readingHistory.ts +0 -31
- package/src/client/react/readingLibrary.ts +0 -22
- package/src/client/react/useHistoryComparison.ts +0 -142
- package/src/history/schema.ts +0 -51
- package/src/server/attention/inboxHtml.ts +0 -56
- package/src/server/attention/overviewHtml.ts +0 -46
- package/src/server/attention/style.ts +0 -9
- package/src/server/diagnostics/style.ts +0 -19
- package/src/server/history/baseline.ts +0 -43
- package/src/server/history/compare.ts +0 -54
- package/src/server/history/documents.ts +0 -21
- package/src/server/history/fields.ts +0 -32
- package/src/server/history/html.ts +0 -20
- package/src/server/history/limits.ts +0 -2
- package/src/server/history/response.ts +0 -37
- package/src/server/http/inbox.ts +0 -27
- package/src/server/http/overview.ts +0 -19
- package/src/server/http/work.ts +0 -42
- package/src/server/page/attentionDetails.ts +0 -26
- package/src/server/page/backlinksHtml.ts +0 -18
- package/src/server/page/boardHtml.ts +0 -55
- package/src/server/page/criteriaEvidence.ts +0 -36
- package/src/server/page/documentHtml.ts +0 -23
- package/src/server/page/itemIntroduction.ts +0 -10
- package/src/server/page/itemStyles.ts +0 -29
- package/src/server/page/metadata.ts +0 -58
- package/src/server/page/metadataDetails.ts +0 -38
- package/src/server/page/metadataLinks.ts +0 -35
- package/src/server/page/nav.ts +0 -12
- package/src/server/page/readingStyles.ts +0 -31
- package/src/server/page/readingTools.ts +0 -12
- package/src/server/page/recordedEvidence.ts +0 -12
- package/src/server/page/searchDialog.ts +0 -16
- package/src/server/page/style.ts +0 -117
- package/src/server/page/updated.ts +0 -3
- package/src/server/page/visualDialog.ts +0 -25
- package/src/server/page/workspaceStyles.ts +0 -89
- package/src/server/responses/authoredQuestionHtml.ts +0 -46
- package/src/server/responses/composerHtml.ts +0 -25
- package/src/server/responses/historyHtml.ts +0 -20
- package/src/server/responses/optionControls.ts +0 -13
- package/src/server/responses/templateHtml.ts +0 -34
- package/src/server/views/tools.ts +0 -11
- package/src/server/views/workCards.ts +0 -27
- package/src/server/views/workControls.ts +0 -38
- package/src/server/views/workDetail.ts +0 -28
- package/src/server/views/workHtml.ts +0 -45
- package/src/server/views/workStyle.ts +0 -18
- package/src/server/views/workTable.ts +0 -26
- /package/src/client/react/{savedViews.ts → useSavedViews.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,131 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.14.1 - 2026-10-17
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Align published Platform and contract dependencies with the current framework releases.
|
|
8
|
+
|
|
9
|
+
## 0.14.0 - 2026-10-16
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- The typed Inbox query and headless `attention.projection(snapshot)` expose `you`, `agents`, `resolved` and `parked` lanes, with audience labels and separate source diagnostics.
|
|
14
|
+
- `work-board mcp <dir>` serves the read-only `board_overview`, `needs_you` and `item` tools over stdio using Effect's MCP server. Tools query the running board's Unix socket for the same computed state as the browser and explain how to start a board when none answers.
|
|
15
|
+
- Serve the same NDJSON RPC over `<dir>/board.sock` alongside the browser's TCP listener. Each directory has its own socket with owner-only access from creation; serialized startup replaces stale sockets and refuses a live or starting board, and shutdown removes the socket, including SIGINT and SIGTERM. Private bind paths use no more pathname bytes than the public socket path.
|
|
16
|
+
- Add the `work-board.server` query returning `{ url, directory }` with the board's browser URL and absolute board directory on both transports. Export its `Server` schema from `@shivaedev/work-board/rpc/Server.ts`.
|
|
17
|
+
- The typed `fleetItems` Board query reads current Fleet stages, waiting owners, PR URLs and persisted times through the Diagnostics daemon client, joins unique Board documents by ID, and returns `unavailable` with a reason for failed reads or a disabled (`fleetPort: null`) daemon. The shared `DiagnosticsContract` adds `daemon.fleetItems`, backed by `FleetItem`, `CompletedFleetItem` and `FleetItems` schemas. `FleetStage` and `FleetTimestamp` are also available through the diagnostics integration. Legacy stage entry and completion times remain unknown until an observed transition.
|
|
18
|
+
- `FleetItemsProjection` describes the Board result. The shared `readDaemon(port, read)` transport and `daemonUnavailableReason(error, port)` explanation are available from `diagnostics/daemon.ts`.
|
|
19
|
+
- The typed `goals` query returns open projects with counts of linked work by authored status, criterion-level work and recorded evidence counts, and open ask counts. Missing statuses stay not recorded and unlinked goals are explicit; progress has no computed completion percentage or overall success flag.
|
|
20
|
+
- Project pages open with the goals query's done, in progress and planned counts and Inbox-aligned open-ask count before answer cards, followed by criteria with progress, linked work and recorded evidence before authored Markdown. Empty work groups, untargeted criteria labels and absent evidence stay quiet. Each work row has one held Fleet stage or authored status chip; missing status and PR stay blank.
|
|
21
|
+
- The document query's optional `referenceDetails` record supplies each resolved reference's title and recorded status alongside the existing reference URLs.
|
|
22
|
+
- Recognize `goal` and `report` item kinds in frontmatter and the portable metadata schema.
|
|
23
|
+
- Document reading-context backlinks include optional `title` and `status` fields for consumers that render source references.
|
|
24
|
+
- The command palette offers navigation to Today, Goals, Now, Library, System and active goals alongside appearance commands. Search results show item IDs, kinds and status chips.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- Open requests show an answer card directly below the item header, using the existing response form and retained drafts. The separate respond link opens and focuses that card.
|
|
29
|
+
- Managed decisions use the unblocked item's title, render their reason as Markdown, and show the complete question once, including unfenced multi-paragraph reasons. Page and card headings name the unblocked item. Generated identities stay in Source instead of the item header.
|
|
30
|
+
- Decisions can use frontmatter options and a recommended choice. Answer cards lead with the recommendation and relevant PR actions, and directive choices use human labels. Decision and question headers show request state and omit missing fields. Response validation waits for an attempt, with the last saved local author label prefilled.
|
|
31
|
+
- Typed document requests include optional `title` and `sourceOpen` fields; `DocumentViewProps` accepts an optional `answer` node below the header.
|
|
32
|
+
- `documentHtml` accepts optional answer-card HTML, and `composerHtml` accepts an optional card title.
|
|
33
|
+
- Open requests also show their answer cards under the headers of the items they unblock, preserving the request's reviewed source and choices.
|
|
34
|
+
- Answer cards record with one action and keep author labels, draft tools and response details under More. Read-only cards show one line explaining how to enable answers.
|
|
35
|
+
- The workspace has five views: Today, Goals, Now, Library and System. Retired destinations redirect to their current view; System lists running and waiting Fleet items by title, stage and PR beside provider limits.
|
|
36
|
+
- Browser pages use Tailwind and shared React primitives and require JavaScript.
|
|
37
|
+
- Goal and criterion `counts` now always contain `done`, `"in progress"` and `planned`, including zeros. Held Fleet stages override authored status; released stages fall back to authored status. Deferred and unrecorded work count as planned. `goals(snapshot, fleet?)` accepts an optional Fleet projection. Internal Inbox rows retain their `unblocks` targets for goal-specific counts; browser Inbox projections keep their existing shape.
|
|
38
|
+
- Goals shows compact progress cards with next actions, positive open-ask counts and single-line done/total rows for linked criteria. Zero-count metadata stays quiet, and closed goals sit in one collapsed section.
|
|
39
|
+
- Identified documents open with a sticky title, kind icon, status, owner, next action and header actions. Known Fleet items show their execution stage and PR link. Criteria, target titles and statuses, and backlinks grouped by kind appear in an open responsive rail; source location and raw frontmatter have a Source tab. Markdown uses a 68ch reading column with 16px prose.
|
|
40
|
+
- Use a neutral light and dark Board shell, shared status chips with icons and semantic colours, and a single header settings popover for theme, density and live-update preferences.
|
|
41
|
+
- Open Work on a Now board with fixed Fleet stage lanes, tasks only, one Fleet-derived state chip, and holder, PR and time in stage only when known. Disclose authored-status fallback when Fleet is unavailable; keep All work and Table as explicit choices. Queue Fleet-prepared or authored approved waiting tasks, use authored status only without a matching Fleet item, and collapse saved views and filters behind Filter on Now.
|
|
42
|
+
- Exclude decision, question, response, result and request receipt records from Work lists. Keep status column order independent of row sorting and virtualize lists over 200 rows in bounded scrolling containers.
|
|
43
|
+
- Keep Today, Goals, Now and Search in a bottom phone navigation bar, with Library and System in a More sheet. Use a compact sticky phone header and omit keyboard hints on touch devices.
|
|
44
|
+
- Replace the sidebar file tree with counted destinations, pinned documents, active goal status bars and five recent documents. Browse document titles, kind/status filters, lazy folders and modification order in Library; generated Fleet records stay hidden until requested.
|
|
45
|
+
- Open on Today with human asks, compact ask rows with option answers in popovers, compact goal progress with next actions clamped to two lines and collapsed criteria, and up to eight Fleet-held items with their stages and PR links. Keep configured home Markdown reachable as Workspace notes.
|
|
46
|
+
|
|
47
|
+
### Fixed
|
|
48
|
+
|
|
49
|
+
- Inbox, Overview and navigation badges share the maintainer lane count. Open requests for other labels remain visible under Waiting on agents, including requests without a registered question. Invalid managed requests remain source diagnostics rather than counted asks.
|
|
50
|
+
- Share the navigation query between route loaders and the React shell instead of requesting the workspace tree again for each selected file. Document navigation shows the new document or a loading message as the URL changes, and returning before a read completes cannot display that late result over the returned page or overwrite its saved reading details.
|
|
51
|
+
- Opening unchanged indexed documents reuses their parsed metadata and workspace model. Backlinks are resolved once per model instead of scanning every document's links on each open; the selected source is still read to detect edits before watcher notification.
|
|
52
|
+
- Inbox and navigation counts reuse revision-scoped question, response and receipt indexes, instead of validating every response again for every question and document request. Source changes refresh those indexes and counts while preserving ambiguous and malformed history outcomes.
|
|
53
|
+
- Goal criteria and linked-work tables include every identified implementing item, including results, decisions, questions and responses. The goals query returns these items alongside its counts, including links to closed projects.
|
|
54
|
+
- Completed and closed project pages show query-derived progress bars and criterion counts. The goals query adds `closedGoals` with the same fields as active `goals`; active-goal navigation remains filtered to open projects.
|
|
55
|
+
- Keep managed asks for closed or deferred target work in collapsed Inbox groups, group repeated active managed or registered asks by target item, and count only main-list rows in the Inbox badges without editing sources.
|
|
56
|
+
- Add `resolved` and `parked` arrays and per-row `earlierAsks` to the Inbox query projection.
|
|
57
|
+
- Criterion and recorded-evidence passage links leave their targets visible below the sticky item header.
|
|
58
|
+
- Item backlinks show source titles and status, with file locations in tooltips. Criteria use one recorded-evidence count instead of repeating missing-evidence notices.
|
|
59
|
+
- Source diagnostics recognize Fleet-owned frontmatter fields while continuing to report unowned fields.
|
|
60
|
+
- Item links open the same document with or without a trailing slash on direct loads and in-app navigation, including IDs ending in `.md` and IDs that collide with a Markdown file path. Item URLs select identities rather than colliding files; unknown IDs show an explicit missing-item message.
|
|
61
|
+
- Keep Files and Inbox controls named for assistive technology when their visible labels are hidden on narrow screens.
|
|
62
|
+
- Print documents at full width when the Files sidebar is open.
|
|
63
|
+
- Recognize planned, active and received statuses with neutral, working and recorded-response icons.
|
|
64
|
+
- Restore the theme before the first paint and apply its background to the page root as well as the body.
|
|
65
|
+
- Let every available Fleet stage decide the task lane despite inactive authored statuses, including prepared and human-waiting work. Keep Done limited to known completions in the last seven days.
|
|
66
|
+
- Keep approved waiting tasks queued when Fleet addon fields are recognized without diagnostics.
|
|
67
|
+
- Missing authored values stay blank across reading and work views, including PR links in System’s Fleet work. Provenance explanations use tooltips or Source records in the React views. Attention-request passage links reveal the Source tab before scrolling and focusing the record, including direct, search, same-document and Back navigation. Repeated source titles expand from one counted line, and each backlink source appears under its most specific kind.
|
|
68
|
+
- Managed answer cards use the Inbox’s active request eligibility. Answer cards and needs-you summary chips stay hidden on closed work, even when a question retains an explicit open attention request.
|
|
69
|
+
- Sidebar goal bars name their done count for assistive technology and hover; only Today and Now show navigation counts. Now lanes keep equal widths and single-line headers. Today’s in-progress work follows its human asks without a gap from the goals column, and one open ask uses the singular.
|
|
70
|
+
- Track Today health through its Inbox, Goals and Fleet queries, and retry failed reads when reopening Today.
|
|
71
|
+
- Search ranks items before headings and passages, open work before closed and deferred work, then title and ID matches before body matches and recently changed sources before older ones. Fleet records, including `fleet/status.md` and `responses/fleet-report.*`, require `records:`. Snippets omit structured metadata, each anchor appears once, and rows without a recorded status omit the status chip.
|
|
72
|
+
- With `records:`, Fleet and ordinary item results share the same status, relevance and recency ordering before every heading and passage hit, including when only the item's body matches. Matching go-to commands replace item results with the same destination.
|
|
73
|
+
|
|
74
|
+
### Breaking
|
|
75
|
+
|
|
76
|
+
- Removed the browser-local comparison API: `workContract.queries.history`, `workContract.queries.overview`, `HistoryInput`, `HistoryOutput`, `OverviewProjection` and the `history/` entry points. The `page/board.ts` and `page/document.ts` server HTML entry points are removed.
|
|
77
|
+
- `page/shell.ts` now exports `shell(title, workspace)` for the React bootstrap only. Removed the superseded server rendering and style exports listed below:
|
|
78
|
+
- `history/schema.ts`: `Baseline`, `HistoryInput`, `HistoryComparison`, `HistoryOutput`.
|
|
79
|
+
- `server/attention/inboxHtml.ts`: `inboxHtml`, `inboxStyle`.
|
|
80
|
+
- `server/attention/overviewHtml.ts`: `overviewHtml`.
|
|
81
|
+
- `server/attention/style.ts`: `attentionStyle`.
|
|
82
|
+
- `server/diagnostics/style.ts`: `diagnosticsStyle`.
|
|
83
|
+
- `server/document/answerCardsHtml.ts`: `answerCardsHtml`.
|
|
84
|
+
- `server/history/baseline.ts`: `readBaseline`, `observeBaseline`.
|
|
85
|
+
- `server/history/compare.ts`: `SourceChange`, `compareHistory`.
|
|
86
|
+
- `server/history/documents.ts`: `HistoryDocument`, `historyDocuments`, `historyIdentities`.
|
|
87
|
+
- `server/history/fields.ts`: `historyFields`.
|
|
88
|
+
- `server/history/html.ts`: `historyHtml`.
|
|
89
|
+
- `server/history/limits.ts`: `MAX_BYTES`, `MAX_AGE`.
|
|
90
|
+
- `server/history/response.ts`: `historyResponse`.
|
|
91
|
+
- `server/http/inbox.ts`: `inbox`.
|
|
92
|
+
- `server/http/overview.ts`: `overview`.
|
|
93
|
+
- `server/http/work.ts`: `work`.
|
|
94
|
+
- `server/page/attentionDetails.ts`: `attentionDetails`.
|
|
95
|
+
- `server/page/backlinksHtml.ts`: `backlinksHtml`.
|
|
96
|
+
- `server/page/boardHtml.ts`: `boardHtml`.
|
|
97
|
+
- `server/page/criteriaEvidence.ts`: `criteriaEvidence`.
|
|
98
|
+
- `server/page/documentHtml.ts`: `documentHtml`.
|
|
99
|
+
- `server/page/itemIntroduction.ts`: `itemIntroduction`.
|
|
100
|
+
- `server/page/itemStyles.ts`: `itemStyles`.
|
|
101
|
+
- `server/page/metadata.ts`: `metadataHtml`, `metadataStyles`.
|
|
102
|
+
- `server/page/metadataDetails.ts`: `metadataDetails`.
|
|
103
|
+
- `server/page/metadataLinks.ts`: `referenceHtml`, `sourceHtml`, `documentReference`, `valueHtml`.
|
|
104
|
+
- `server/page/nav.ts`: `navHtml`, `inboxCount`.
|
|
105
|
+
- `server/page/readingStyles.ts`: `readingStyles`.
|
|
106
|
+
- `server/page/readingTools.ts`: `readingTools`.
|
|
107
|
+
- `server/page/recordedEvidence.ts`: `recordedEvidence`.
|
|
108
|
+
- `server/page/searchDialog.ts`: `searchDialog`, `searchStyles`.
|
|
109
|
+
- `server/page/style.ts`: `style`.
|
|
110
|
+
- `server/page/updated.ts`: `updated`.
|
|
111
|
+
- `server/page/visualDialog.ts`: `visualDialog`, `visualStyles`.
|
|
112
|
+
- `server/page/workspaceStyles.ts`: `layout`, `theme`.
|
|
113
|
+
- `server/responses/authoredQuestionHtml.ts`: `authoredQuestionHtml`.
|
|
114
|
+
- `server/responses/composerHtml.ts`: `composerHtml`.
|
|
115
|
+
- `server/responses/optionControls.ts`: `optionControls`.
|
|
116
|
+
- `server/responses/templateHtml.ts`: `templateHtml`.
|
|
117
|
+
- `server/views/tools.ts`: `viewTools`.
|
|
118
|
+
- `server/views/workCards.ts`: `workCards`.
|
|
119
|
+
- `server/views/workControls.ts`: `workControls`.
|
|
120
|
+
- `server/views/workDetail.ts`: `workDetail`.
|
|
121
|
+
- `server/views/workHtml.ts`: `workHtml`.
|
|
122
|
+
- `server/views/workListStyle.ts`: `workListStyle`.
|
|
123
|
+
- `server/views/workStyle.ts`: `workStyle`.
|
|
124
|
+
- `server/views/workTable.ts`: `workTable`.
|
|
125
|
+
- `browser/navigation/html.ts`: `navigationHtml`.
|
|
126
|
+
- `server/responses/historyHtml.ts`: `historyHtml`.
|
|
127
|
+
- The navigation query returns destination counts instead of `tree` and `records`; `NavigationFile` and `NavigationFolder` schemas are removed. The `Navigation` import at `browser/navigation/schema.ts` remains available. The Library query provides filtered documents and immediate folder children on demand.
|
|
128
|
+
|
|
3
129
|
## 0.13.0 - 2026-10-13
|
|
4
130
|
|
|
5
131
|
### Added
|
package/README.md
CHANGED
|
@@ -26,6 +26,10 @@ A **workspace** is a folder of Markdown files. Those files are authoritative: pl
|
|
|
26
26
|
|
|
27
27
|
During normal watching, each settled batch re-reads changed Markdown paths and retains unchanged parsed documents and search entries. Adds, deletes and renames update the same index. Watcher recovery checks source bytes and reuses unchanged parses. The synthetic 2,000-item benchmark runs with `node --conditions=source packages/work-board/src/test-support/indexBenchmark.ts` from the repository root; it records index time, files read and files parsed for cold start, edit, add, delete and rename.
|
|
28
28
|
|
|
29
|
+
Identified documents open with a sticky title, kind icon, recorded status, owner and next action. Favorite and handoff controls sit in the header. Known Fleet items also show their stage and PR. An open rail shows criteria, relationships with target titles and statuses, and backlinks grouped by kind; membership and Markdown links keep their own groups. At 1024px the rail sits beside the 68ch Markdown column; on smaller screens it follows the introduction. The Source tab holds the file location, original frontmatter and recorded handoff, question, response and request-receipt details. Passage links into Source reveal the tab before scrolling and focusing the record.
|
|
30
|
+
|
|
31
|
+
Open requests place an answer card directly below their source header and the headers of the items they unblock. The card renders the reason as Markdown, offers the recorded options with the recommendation marked, and retains response drafts through live reads. Record saves the answer against the request’s reviewed source. More holds the author label, optional Markdown preview, draft tools and response details; the default author is maintainer when no saved label exists. Managed decisions use the title of the work they unblock; generated identities remain in Source. Legacy response URLs redirect to the item and focus its card.
|
|
32
|
+
|
|
29
33
|
A file can declare an optional **item ID**. That ID connects it to other files, criteria and boards without tying the connection to its filename. A **criterion** is an explicitly named requirement; an **evidence record** is an author's claim about an observation. The board displays that claim and its provenance; it does not run the check or establish acceptance.
|
|
30
34
|
|
|
31
35
|
An **attention request** explicitly asks for a decision, review or help with a blocker. It is separate from an item's status. A **question** asks for a person's answer. It can be authored as a standalone item or captured from an attention request with its exact source text, source path and reviewed SHA-256. A **response** is an independent Markdown record of a person's answer, clarification or deferral. Responses retain their reviewed context; they do not close requests, change task status or start an agent. An optional execution integration can acknowledge a managed decision through a separate immutable request receipt. That receipt is distinct from a handoff receipt, execution or acceptance.
|
|
@@ -34,7 +38,7 @@ A **handoff** captures direction and the exact source the person reviewed in ano
|
|
|
34
38
|
|
|
35
39
|
A **result** is an author's report linked explicitly to work and criteria. Its recorded status does not change the linked task's status. A result review presents the report, its claims and limitations with human feedback pinned to the reviewed source bytes and path. Choosing an authored acceptance option does not supply missing criterion evidence.
|
|
36
40
|
|
|
37
|
-
Browser preferences
|
|
41
|
+
Browser preferences and drafts are personal state, scoped to the workspace and server origin. They do not change project meaning. Agents own normal project-file edits. Work Board owns the human response content it records. An agent's run completion, a recorded answer and an accepted result remain separate facts.
|
|
38
42
|
|
|
39
43
|
The work has three parts: choose a workspace once, author useful files per feature, and read or respond as the work changes.
|
|
40
44
|
|
|
@@ -44,11 +48,11 @@ The work has three parts: choose a workspace once, author useful files per featu
|
|
|
44
48
|
work-board ./project-notes --home plan.md
|
|
45
49
|
```
|
|
46
50
|
|
|
47
|
-
This serves the existing folder on `http://127.0.0.1:4747`. The
|
|
51
|
+
This serves the existing folder on `http://127.0.0.1:4747`. The first screen at `/` is **Today**: a linked summary, **Needs you**, **In progress** and **Goals**. Human asks come from the shared attention projection. Needs-you entries stay within 48px. For questions with one-choice options, Answer opens a popover with buttons that record an answer against the current reviewed context. In progress shows up to eight items Fleet holds in executing, reviewing, repairing or adopting, with their stage and recorded PR link; **All in Now →** opens the full work view. Its summary counts all held items, including those beyond the preview. An unavailable Fleet source shows an unknown count. Goal cards show the next action clamped to two lines and done, in-progress and planned work with an **N of M done** count; criteria and their evidence counts sit behind a closed **Criteria** disclosure. These counts describe recorded source, not verified success. The optional home file remains a heading board through **Workspace notes**; other files remain documents. An empty Today links to getting-started guidance. **Getting started** remains available at `/_board/start`, with copyable project, investigation and agent-result templates. Save them through your editor or agent tool; the reader does not create files.
|
|
48
52
|
|
|
49
53
|
A heading board uses `#` for its title, text before the first `##` for its intro, `##` for sections and `###` for cards. A section without cards shows its text. A `---` after the last heading starts the footer; a divider inside a card before another heading stays in that card. Code spans, reference links, footnotes and `<details>` can stay in the Markdown body. Leave a blank line after `<summary>` and before `</details>` when its content is Markdown.
|
|
50
54
|
|
|
51
|
-
The sidebar
|
|
55
|
+
The sidebar shows Today, Goals, Now, Library and System, with counts only on Today and Now, followed by pinned documents, active goals with linked-work status bars and quiet done/total figures, and at most five recent documents. Today counts waiting human actions and Now counts open tasks. Each active-goal bar names its done count for assistive technology and shows the same count on hover. Below 768px, Files in the top bar opens an overlay drawer; Escape or a tap outside closes it and returns focus to Files. Library lists document titles with kind and status filters, a folder view that loads immediate children on expansion, and a Recently changed view sorted by file modification time. Links preserve logical workspace paths, including reference-directory aliases.
|
|
52
56
|
|
|
53
57
|
Directory links can include reference Markdown without copying it:
|
|
54
58
|
|
|
@@ -103,7 +107,7 @@ items: [work.search]
|
|
|
103
107
|
Inspect the selected work and its source before giving direction.
|
|
104
108
|
```
|
|
105
109
|
|
|
106
|
-
Open **Work**
|
|
110
|
+
Open **Work** on Now, or choose All work and Table. The same item may belong to several boards; a board definition is excluded from All work. All work columns use exact recorded status; missing status stays blank. Filters use status, owner and work text; sorting uses title, owner or status, with missing values last. The URL carries board, filters, layout, sort and selected item. Board and table render the same projection and source detail in React. Missing, repeated and ambiguous members are disclosed.
|
|
107
111
|
|
|
108
112
|
Use `relationships` for `implements`, `informs`, `depends_on` or `relates_to` links to an item or `item#criterion`. A result can record evidence against the criterion. Save this as `result.md`:
|
|
109
113
|
|
|
@@ -127,17 +131,17 @@ The recorded check is a source claim. Review its evidence before accepting it.
|
|
|
127
131
|
|
|
128
132
|
Record an outcome only after an actual observation, and save its supporting `evidence.md`; omit evidence until that check exists.
|
|
129
133
|
|
|
130
|
-
`source` is required for an evidence record; `criterion`, `checked_revision`, `observed_at`, `method` and `outcome` are optional. This example has no checked revision or observation time, so both stay
|
|
134
|
+
`source` is required for an evidence record; `criterion`, `checked_revision`, `observed_at`, `method` and `outcome` are optional. This example has no checked revision or observation time, so both stay blank. When known, record a full 40- or 64-digit hexadecimal revision and an ISO timestamp with a timezone. Source paths resolve from the file holding the claim.
|
|
131
135
|
|
|
132
|
-
Criteria collect explicitly linked claims across files. **Referenced by** also shows incoming relationships, board membership, evidence sources and ordinary Markdown links. Decisions keep their options and rationale in body Markdown. Old recorded revisions remain visible; the viewer does not compare them with current Git state or infer human acceptance. See the [source field reference](docs/delivery/source-examples.md) and [attention field reference](docs/delivery/attention-examples.md) for complete shapes.
|
|
136
|
+
Criteria collect explicitly linked claims across files. **Referenced by** also shows incoming relationships, board membership, evidence sources and ordinary Markdown links. Each source appears under its most specific kind. Repeated source titles collapse into a count that expands to the individual links. Decisions keep their options and rationale in body Markdown. Old recorded revisions remain visible; the viewer does not compare them with current Git state or infer human acceptance. See the [source field reference](docs/delivery/source-examples.md) and [attention field reference](docs/delivery/attention-examples.md) for complete shapes.
|
|
133
137
|
|
|
134
138
|
#### Richer reading in ordinary documents
|
|
135
139
|
|
|
136
|
-
|
|
140
|
+
`DocumentView` renders tables, task lists, footnotes, raw-HTML details and highlighted fenced code in the browser from typed document-query data. The server delivers the React shell rather than document HTML. Heading passage links and an **On this page** outline distinguish duplicate headings. Relative document links resolve from their source file, including a nested home served at `/`.
|
|
137
141
|
|
|
138
|
-
Document content starts with its title and, for frontmatter documents, source status and next action. Missing authored values
|
|
142
|
+
Document content starts with its title and, for frontmatter documents, source status and next action. Missing authored values render nothing. **Context and tools** follows the introduction in document order and contains source provenance, backlinks, the outline and the favorite control. DOM fixtures check this order, the disclosure's desktop/narrow media-query defaults, and a CSS upper bound on title placement using the viewport height and capped page controls. They also check the question form's text-column width and margins and the desktop grid's row allocation. These checks do not measure browser layout or establish physical-device behavior.
|
|
139
143
|
|
|
140
|
-
`mermaid` fences draw locally in the browser. Diagrams follow the theme and keep unchanged drawings during refresh. A parse failure exposes its source and error
|
|
144
|
+
`mermaid` fences draw locally in the browser. Diagrams follow the theme and keep unchanged drawings during refresh. A parse failure exposes its source and error in the React document view.
|
|
141
145
|
|
|
142
146
|
Metrics and progress use fixed directives with a label and a source:
|
|
143
147
|
|
|
@@ -153,29 +157,31 @@ The component shows the authored tally. Unknown or zero-total counts do not fabr
|
|
|
153
157
|
|
|
154
158
|
Use ordinary image Markdown for source-relative PNG, JPEG, GIF or WebP files. The image route serves at most 16 MiB per file inside the real workspace; images in outside reference folders must be copied inside that boundary. The image gallery and **Inspect diagram** provide zoom and keyboard dismissal. Local image downloads and SVG downloads of a rendered diagram use the browser. A source update marks an already-open preview as older and requires reopening before saving. These actions do not write source or establish acceptance.
|
|
155
159
|
|
|
156
|
-
### 3. Every day: read
|
|
160
|
+
### 3. Every day: read and give direction
|
|
157
161
|
|
|
158
|
-
**Search** or Ctrl/Cmd+K finds document titles/paths, headings, passages and recorded work fields. Matching uses the first 200 query characters and up to eight terms; each
|
|
162
|
+
**Search** or Ctrl/Cmd+K opens the command palette. Go-to commands open Today, Goals, Now, Library, System and each open goal from the goals query. Appearance commands toggle the file sidebar, density and theme. Results update as you type; matching commands come first. Search finds document titles/paths, IDs, headings, passages and recorded work fields. Matching uses the first 200 query characters and up to eight terms; each term must occur in a block, ignoring case. Item results rank before headings and passages. Within items, open work ranks before closed and deferred work, title and ID matches rank before body matches, then the most recently changed sources come first. Body matches also return the item itself. Each anchor appears once, retaining its best match before the result limit and count. Item results show their ID, kind and authored status; rows without a recorded status omit the chip. Fleet decisions, captured questions, responses, application receipts, `fleet/status.md` and `responses/fleet-report.*` appear only when the query starts with `records:`. Snippets omit structured metadata. At most 40 source results are shown with the full match count. Arrow keys choose, Enter opens, and Escape closes. Incomplete reads are disclosed, and older requests cannot replace a newer query. Search requires JavaScript. `src/server/search/palette.spec.ts`, `src/server/search/ranking.spec.ts`, `src/client/react/palette.dom.spec.tsx` and `src/client/react/searchRanking.dom.spec.tsx` and `src/client/react/fleetSearch.dom.spec.tsx` cover record filtering, ranking, snippets and commands with fixtures.
|
|
159
163
|
|
|
160
|
-
Back restores selected text and expanded details.
|
|
164
|
+
Back restores selected text and expanded details. Reading history opens a bounded dialog with favorites and up to ten unique recents. Favorites and recents belong to the workspace/origin; deleted favorites remain labeled missing. Save up to ten named Work views with the applied board, filters, sort and layout. Selection stays in the URL, and saving the same name updates it. At capacity, remove or update a view; none is silently evicted. Unavailable storage is disclosed, with controls usable for the current page.
|
|
161
165
|
|
|
162
|
-
**
|
|
166
|
+
**Work** opens on **Now**: fixed Queued, Executing, Reviewing, Delivering, Waiting on a person, and collapsed Done in the last 7 days lanes. Fleet stages set the lane even when the source still says `planned`; reviewing, repairing and validating share Reviewing. Lanes hold tasks only. Every available Fleet stage takes precedence over authored status, including prepared and human-waiting work whose source is inactive. Without a matching Fleet item, authored superseded, deferred, cancelled, done and completed items stay outside Now. Done includes only recent Fleet completions. Queued holds prepared tasks or approved tasks waiting to start, never unapproved planned work. Cards show one Fleet-derived StatusChip and show the holder, PR link and time in stage only when known. When Fleet is unavailable, lanes use authored status and disclose the fallback. Saved views and filters sit behind **Filter**, collapsed by default on Now. Completed work with no known completion time is available through **All work**. All work keeps status columns in a fixed order; **Table** uses the chosen row sort. Decisions, questions, responses, results and request receipts remain readable in their source views and stay outside these work lists. Lists over 200 rows render a moving window inside bounded scrolling lanes or a table. `src/client/react/WorkNow.dom.test.tsx`, `workRecords.dom.spec.tsx` and `workScale.dom.spec.tsx` cover these projections and the rendered row bound with a 1,500-item fixture.
|
|
163
167
|
|
|
164
|
-
**
|
|
168
|
+
**System** in the sidebar reads Codex usage windows labelled by duration, GitHub REST and GraphQL rate limits, and Fleet health through the Fleet daemon's `daemon.diagnostics` HTTP RPC query at `127.0.0.1:3457`. Set `--fleet-port <port>` or `BoardOptions.fleetPort` to select another daemon port. A stopped daemon leaves System available with an explicit unavailable state and a start command; the next refresh retries. Board does not start provider commands or read Fleet's database or health file. The daemon reads Codex and GitHub with its existing CLI authentication, caches rate-limit observations for one minute across Board clients and reports each source's missing configuration or error independently.
|
|
165
169
|
|
|
166
|
-
The view refreshes through `client.api.diagnostics.query()` every 15 seconds while visible. Pause updates holds the displayed state; resume and returning to a visible tab refresh it. The shared `DiagnosticsContract` and `DiagnosticsSnapshot` schemas live in `@shivaedev/work-board/diagnostics/daemonContract.ts`; the version 2 `FleetHealth` schema lives in `@shivaedev/work-board/diagnostics/health.ts`. The page shows the publisher's observation time, freshness, running and queued counts and waiting counts for maintainer, orchestrator and automation, concurrency cap, last scheduler pass and last observed provider capacity rejection. Stale snapshots show a Stale badge
|
|
170
|
+
The view refreshes through `client.api.diagnostics.query()` every 15 seconds while visible. Pause updates holds the displayed state; resume and returning to a visible tab refresh it. The shared `DiagnosticsContract` and `DiagnosticsSnapshot` schemas live in `@shivaedev/work-board/diagnostics/daemonContract.ts`; the version 2 `FleetHealth` schema lives in `@shivaedev/work-board/diagnostics/health.ts`. The Fleet lane lists every running or waiting item from `client.api.fleetItems.query()` by source title, stage and recorded PR, with explicit loading, unavailable and empty states. Items without readable source retain their work ID; missing PRs remain explicit. The page also shows the publisher's observation time, freshness, running and queued counts and waiting counts for maintainer, orchestrator and automation, concurrency cap, last scheduler pass and last observed provider capacity rejection. Stale snapshots show a Stale badge. Reset times show relative time and the browser’s local clock; System requires JavaScript. Communication failures and API-key accounts explain why their data is unavailable. A publisher clock ahead of Board is disclosed; absent scheduler/rejection observations remain unknown or unobserved.
|
|
167
171
|
|
|
168
|
-
|
|
172
|
+
`client.api.fleetItems.run(undefined)` reads per-item execution through the same daemon client. A `ready` result has `items` for every stage except `completed` and `released`, and `completed` for current records completed within the last seven days, including the boundary. Each item carries `workId`, `stage`, a waiting `attentionOwner` when present, `prUrl` when known, and millisecond `stageEnteredAt` and `updatedAt`; completions also carry `completedAt`. Board joins each unique matching ID to `document: { file, title, metadata }`; missing or duplicate IDs keep the Fleet item with `document: null`. For legacy records, stage entry and completion times remain unknown until an observed stage transition; `updatedAt` becomes known on the next write. A stopped daemon, communication failure or Board index failure returns `{ state: "unavailable", reason }`. Set `BoardOptions.fleetPort: null` to disable the item integration. `src/server/views/fleetItems.test.ts` covers these reads through HTTP RPC with a synthetic daemon.
|
|
169
173
|
|
|
170
174
|
**Pause updates** holds the displayed reading state while counting observed hints, bounded at **256+**. Resume and reconnect reconcile the workspace. Unrelated source edits retain mounted document reads; relevant updates retain unchanged reading blocks. A failed read keeps visible source and says **refresh failed**. Connection or watcher loss says **reconnecting**. These are reconciliation hints, not a durable event journal or a count of completed work.
|
|
171
175
|
|
|
172
176
|
#### Find what waits on you
|
|
173
177
|
|
|
174
|
-
|
|
178
|
+
**Today** and its navigation badges count human asks from the shared attention projection. They include human-owned next actions, unaddressed standalone questions, `needs-human` work, and validated open attention requests addressed to the maintainer label. Set `--maintainer <name>` to select another literal, case-sensitive label. The default is `maintainer`. Questions open an answer card; other rows open their source. Each row shows its reason and age. Missing or duplicated identities stay visible with a problem and source link. Incomplete indexes withhold membership and counts.
|
|
179
|
+
|
|
180
|
+
A recorded answer to a uniquely registered ordinary request retires that ask only for the reviewed source bytes and path. Managed decisions retire after an exact-context acknowledgement or when all their targets are closed or deferred. Active asks for the same target set share one row, using the newest reason and response link. Agent-only asks remain available through the typed attention projection. Source diagnostics never create human asks. Work cards show Fleet state, or **needs-you** for an authored ask when Fleet has no item state. These projections do not edit source status.
|
|
175
181
|
|
|
176
|
-
Owner labels are local conventions: `codex`, `claude`, `fleet`, `agent`, `automation`, `bot` and `copilot`, including labels beginning with those names followed by a dash, underscore, dot, space or slash, denote automation. Other nonblank owner labels denote people. A human owner needs a nonblank `next_action` to enter
|
|
182
|
+
Owner labels are local conventions: `codex`, `claude`, `fleet`, `orchestrator`, `agent`, `automation`, `bot` and `copilot`, including labels beginning with those names followed by a dash, underscore, dot, space or slash, denote automation. Other nonblank owner labels denote people. A human owner needs a nonblank `next_action` to enter Today. Statuses `closed`, `done`, `superseded`, `completed`, `cancelled`, `canceled`, `resolved` and `released` leave the queue. These rules classify waiting work; they do not edit the recorded status.
|
|
177
183
|
|
|
178
|
-
Fleet decision sources, captured questions
|
|
184
|
+
Fleet decision sources, captured questions, their answers and request receipts are hidden by default in Library. **Show Fleet records (N)** includes them in the current view. Ordinary authored questions remain visible, and all underlying files remain readable and searchable with the `records:` query prefix.
|
|
179
185
|
|
|
180
186
|
An agent can ask a standalone question with frontmatter:
|
|
181
187
|
|
|
@@ -198,7 +204,7 @@ Choose where the project keeps its readable source.
|
|
|
198
204
|
|
|
199
205
|
`options` is optional and accepts up to 32 entries with unique nonblank labels and descriptions. `recommended` names an option label. The item page presents buttons, marks the recommendation without selecting it, and accepts another answer as free text. Omit `options` for a text-only question. Use frontmatter options or a Markdown question packet on a question, rather than both.
|
|
200
206
|
|
|
201
|
-
Start with `--responses` to enable saving. Preview and record the answer on the item page with a local author label. The browser remembers that label for the workspace. The required author label stays visible; response kind and superseding controls sit in a collapsed details section; option questions show a choice and one answer box by default. Closed questions and invalid options keep recorded answers readable, with a clear message when another answer is unavailable. The existing publisher captures the reviewed source as a `kind: question` record in `responses/`, then writes a `kind: response` that links to that capture. Its `question.item` links back to the authored question. An `answer` removes the authored question from
|
|
207
|
+
Start with `--responses` to enable saving. Preview and record the answer on the item page with a local author label. The browser remembers that label for the workspace. The required author label stays visible; response kind and superseding controls sit in a collapsed details section; option questions show a choice and one answer box by default. Closed questions and invalid options keep recorded answers readable, with a clear message when another answer is unavailable. The existing publisher captures the reviewed source as a `kind: question` record in `responses/`, then writes a `kind: response` that links to that capture. Its `question.item` links back to the authored question. An `answer` removes the authored question from Today for those exact source bytes and path; clarification and deferral keep it waiting. An edited question needs another answer. The original source file stays unchanged, and the answer does not establish acceptance or start an agent.
|
|
202
208
|
|
|
203
209
|
#### Record a human response
|
|
204
210
|
|
|
@@ -206,13 +212,13 @@ Start with `--responses` to enable saving. Preview and record the answer on the
|
|
|
206
212
|
work-board ./project-notes --responses
|
|
207
213
|
```
|
|
208
214
|
|
|
209
|
-
Explicit opt-in enables writes. Open
|
|
215
|
+
Explicit opt-in enables writes. Open the item’s answer card, read the request reason, and inspect the original source in **Source**. Enter a local author label, choose an option or write an answer, then preview and record the Markdown. Questions and decisions can declare frontmatter options and a recommendation; the recommendation is marked but never selected for you. Requests with Markdown question directives keep their prompts and controls together in the card. **Answer** may say no; **Ask back / clarify** and **Not now** are separate reply kinds. Author labels provide local attribution, not authentication.
|
|
210
216
|
|
|
211
217
|
Registration captures one question generation in `responses/`; submission creates an independent response file there. Original source bytes stay unchanged. Source edits or moves require a fresh review/preview; historical replies still identify the old context. Same-identity/content retries reconcile, conflicting contributions are rejected, and uncertain publication is reported explicitly.
|
|
212
218
|
|
|
213
|
-
An execution integration may mark a generated `kind: decision` request with `attention[].managed: true`. A separate immutable `kind: result` document records `request_receipt` with the registered question ID, its `reviewedRevision`, `recordedAt` and disposition `applied` or `superseded`. An applied receipt names the unique current `answer`; clarification and deferral cannot acknowledge it. Supersession retires the request without inventing an answer. Only an unambiguous receipt matching the exact current source path and bytes removes the managed request from the
|
|
219
|
+
An execution integration may mark a generated `kind: decision` request with `attention[].managed: true`. A separate immutable `kind: result` document records `request_receipt` with the registered question ID, its `reviewedRevision`, `recordedAt` and disposition `applied` or `superseded`. An applied receipt names the unique current `answer`; clarification and deferral cannot acknowledge it. Supersession retires the request without inventing an answer. Only an unambiguous receipt matching the exact current source path and bytes removes the managed request from Today and the item's answer cards. `currentResponses(responses)` from `@shivaedev/work-board/responses/current.ts` selects the latest response per author, ordered by recorded time and then response ID, and removes explicitly superseded responses. Managed acknowledgements use this selection; different authors remain competing, and superseding an author’s latest response does not revive an earlier answer. `src/responses/current.test.ts` and Fleet’s PostgreSQL question tests cover this rule. The source remains unchanged and readable. Ordinary authored requests remain source-driven; receipts grant no execution, acceptance or delivery authority.
|
|
214
220
|
|
|
215
|
-
Browser drafts use effect-form’s persisted drafts, keyed by workspace, item and request, with a 256 KiB limit per draft and a seven-day lifetime after the last edit. Navigation, reload and source refresh retain them; text edited while an earlier save completes remains an unsaved draft with a fresh identity. Malformed or expired drafts are discarded; unavailable storage leaves the form usable. **Clear draft** restores the current form’s initial values without changing saved records or
|
|
221
|
+
Browser drafts use effect-form’s persisted drafts, keyed by workspace, item and request, with a 256 KiB limit per draft and a seven-day lifetime after the last edit. Navigation, reload and source refresh retain them; text edited while an earlier save completes remains an unsaved draft with a fresh identity. Malformed or expired drafts are discarded; unavailable storage leaves the form usable. **Clear draft** restores the current form’s initial values without changing saved records or saved responses.
|
|
216
222
|
|
|
217
223
|
#### Wait for an attributable reply
|
|
218
224
|
|
|
@@ -298,13 +304,14 @@ Import the module that defines a name. The package has no root entry; its manife
|
|
|
298
304
|
| `browser/document/schema.ts`, `browser/document/View.ts` | `Document`, `DocumentRequest`, `DocumentView`, `DocumentViewProps`: source query data and React document rendering |
|
|
299
305
|
| `rpc/responseContract.ts` | `responseContract`: question/read/wait queries and register/record commands |
|
|
300
306
|
| `rpc/handoffContract.ts` | `handoffContract`: source/history queries and reviewed preparation command |
|
|
301
|
-
| `browser/navigation/schema.ts` | `Navigation
|
|
307
|
+
| `browser/navigation/schema.ts` | `Navigation`: compact navigation result schema/type |
|
|
308
|
+
| `browser/navigation/library.ts` | `Library`, `LibraryFile`, `LibraryInput`: titled document and folder query schemas |
|
|
302
309
|
| `browser/responses/schema.ts` | Question, response, answer and draft schemas/types |
|
|
303
310
|
| `rpc/rejections.ts` | `documentRejections`, `DocumentRejection`, `responseRejections`, `ResponseRejection`: declared taxonomy and application errors; `PublicationUncertain` and `Unanswered` |
|
|
304
311
|
| `browser/handoffs/schema.ts` | Handoff record, input, reading and source-preview schemas/types |
|
|
305
312
|
| `metadata/schema.ts`, `metadata/parse.ts`, `metadata/model.ts` | Source schemas, parsed fields/diagnostics and explicit identity/reference model |
|
|
306
313
|
|
|
307
|
-
Other defining modules are also exposed by the wildcard. Their [source directory](https://github.com/ShivaeDev/platform/tree/main/packages/work-board/src) contains file/watch, HTTP, rendering, search, views
|
|
314
|
+
Other defining modules are also exposed by the wildcard. Their [source directory](https://github.com/ShivaeDev/platform/tree/main/packages/work-board/src) contains file/watch, HTTP, rendering, search, views and result-review helpers. Compose `boardLayer` to retain the package's source policy and request guards.
|
|
308
315
|
|
|
309
316
|
#### Embed the workspace
|
|
310
317
|
|
|
@@ -328,7 +335,7 @@ try {
|
|
|
328
335
|
}
|
|
329
336
|
```
|
|
330
337
|
|
|
331
|
-
`boardLayer` needs `FileSystem`, `Path` and the HTTP router services; `NodeServices` provides the filesystem/path implementation here. `root` is required, `home` is optional, `maintainer` selects the
|
|
338
|
+
`boardLayer` needs `FileSystem`, `Path` and the HTTP router services; `NodeServices` provides the filesystem/path implementation here. `root` is required, `home` is optional, `maintainer` selects the human responder label (default `maintainer`), and `responses: true` explicitly opts into publication. `HttpRouter.serve` can compose it beside application routes in a scoped Effect HTTP server. Requests still require a loopback `Host`; a missing/non-loopback host is refused, as is a known non-loopback remote address. The embedding host owns its trust boundary.
|
|
332
339
|
|
|
333
340
|
#### Read and wait from a Node agent
|
|
334
341
|
|
|
@@ -398,7 +405,13 @@ export async function registerReviewedQuestion(url: string, revision: string) {
|
|
|
398
405
|
|
|
399
406
|
Call this function with a revision whose source/context you have reviewed and a server started with `--responses`. `api` binds reading operations; `responses` binds question and response operations. `read` resolves a query atom, `run` executes a query Effect, and `mutate` executes a command with its invalidation service. `handoffs` binds source/history queries and the preparation command. The client also exposes `registry` and `updates`; dispose the registry when its owner ends.
|
|
400
407
|
|
|
401
|
-
`client.api.navigation.query({ current: "
|
|
408
|
+
`client.api.navigation.query({ current: "" })` returns compact destination `counts`, `inboxCount` (a number or `null` when the index is unavailable), and optional `home` with the configured home file and its unique identity. It contains no file tree. `client.api.library.query({})` loads document metadata on demand: `files` contain `path`, encoded `href`, `title`, `modified`, `kind` and `status`; `kinds` and `statuses` populate filters, and `fleetCount` counts hidden generated records. Optional `kind`, `status` and `showFleet` filter the files. Passing `folder: ""` lists root files and immediate folder descriptors; passing a folder path loads its direct files and immediate child folders. Folder descriptors contain `path`, `name` and descendant `count`. The shell reads active goal status counts from `client.api.goals.query()`; opening Library loads its own query.
|
|
409
|
+
|
|
410
|
+
A `kind: project` page puts goal progress before its authored Markdown: a large segmented bar with the goals query's **done / in progress / planned** counts and its goal-specific open-ask count, including zero. The progress header sits immediately below the item header, before open answer cards. Criteria, linked work and prose follow the answer cards. The header and each criterion render query counts directly, including Fleet-held work as in progress. These are work counts, never an overall success state or percentage. The open-ask count uses the same eligible, active, grouped rows as the maintainer's Today attention list; resolved, parked and earlier grouped asks do not add to it.
|
|
411
|
+
|
|
412
|
+
Each criterion shows its progress split in one small line, targeting items and recorded evidence when present. Untargeted criteria retain their text without an extra label; absent evidence stays quiet. The table shows each implementing item once under nonempty In progress, Planned, Done (collapsed) or Deferred groups. Each row and criterion link has one state chip: the Fleet stage while held, otherwise the authored status. A released stage falls back to authored status; missing status and missing PR leave blank cells. Items without status belong to Planned. The outline rail remains beside the prose on wide screens and follows it on narrow screens. Closed projects show the same goal and criterion counts as open projects while staying outside active-goal navigation.
|
|
413
|
+
|
|
414
|
+
`client.api.goals.query()` returns `{ closedGoals, goals, items }`. `items` contains every uniquely identified implementing document, including results, decisions, questions, responses and work targeting closed projects, with `file`, `id`, `title` and `metadata`. Goal criteria and work tables select from this same set used for counts. `goals` contains uniquely identified `kind: project` documents with an open status, using the attention projection's open-item convention. `closedGoals` contains the remaining identified projects with the same progress and criterion fields. Project pages read both lists; the sidebar and navigation count use only `goals`. The Goals view shows active goals as compact cards with next actions, linked-work progress and positive open-ask counts. Only criteria with linked work appear, as single-line links with done/total counts. Empty progress and zero-count metadata render nothing. Closed goals sit below the active cards in one disclosure, closed by default. Each goal includes `id`, `title`, optional authored `status`, `owner` and `nextAction`, and `criteria`. `linked` counts distinct identified items with an `implements` relationship targeting the goal or a criterion anchor. `counts` always has `done`, `"in progress"` and `planned` numbers, including zeros. Fleet-held stages override authored status: completed is done, prepared is planned and other held stages are in progress. Released stages and unavailable Fleet fall back to authored status: closed statuses are done, planned, deferred and missing statuses are planned, and other statuses are in progress. Deferred work keeps its own table group but contributes to planned progress. Multiple matching relationships on one item count once. Each criterion includes its `id`, `text`, `linked`, `counts` and `evidence`, the number of recorded claims targeting that exact criterion across indexed documents. `openAsks` counts eligible active attention rows whose targets include the goal, its criteria or a linked item, once per grouped row; it cannot exceed the attention count. A goal without linked items has zero counts, `linked: 0` and `unlinked: true`; an untargeted criterion has `linked: 0`. The query returns no completion percentage or overall success flag. Mounted queries refresh when indexed source changes.
|
|
402
415
|
|
|
403
416
|
For a handoff, first read the preview with `client.run(client.handoffs.handoffSource.run({ item: "work.search" }))` and inspect its `context`. This complete program takes that reviewed path and revision as inputs:
|
|
404
417
|
|
|
@@ -420,7 +433,7 @@ export async function prepareReviewedHandoff(
|
|
|
420
433
|
revision,
|
|
421
434
|
recipient: "agent-navigation",
|
|
422
435
|
goal: "Fix keyboard focus",
|
|
423
|
-
constraints: "Preserve
|
|
436
|
+
constraints: "Preserve keyboard navigation.",
|
|
424
437
|
nextAction: "Inspect the current source and report browser evidence.",
|
|
425
438
|
}),
|
|
426
439
|
);
|
|
@@ -463,7 +476,7 @@ RPC rejections use Platform taxonomy classes: `Forbidden` for disabled writes, `
|
|
|
463
476
|
|
|
464
477
|
Read `client.api.document.run({ url: "/notes.md" })` to get Markdown body source, metadata and diagnostics, resolved links and references, file information, resolved question actions and request previews with response history. Identity URLs and `/` use the same document query. Missing and duplicate identities reject with `NotFound` and `Conflict`; incomplete history stays explicitly unavailable. The query sends no rendered HTML or syntax tree.
|
|
465
478
|
|
|
466
|
-
Pass that data as the `document` prop of `DocumentView` from `@shivaedev/work-board/browser/document/View.ts`. The view uses the Board's GFM, directive, heading and footnote plugins with raw HTML, browser-side Shiki and a Mermaid code override. `idPrefix` scopes footnotes when a host displays several documents. The Board shell is a React app with TanStack Router. Its route loaders read document and projection contract queries through `effect-react` in the shell's native registry; preloading and navigation share those reads. Document and item pages mount `DocumentView` from the typed document query;
|
|
479
|
+
Pass that data as the `document` prop of `DocumentView` from `@shivaedev/work-board/browser/document/View.ts`. The view uses the Board's GFM, directive, heading and footnote plugins with raw HTML, browser-side Shiki and a Mermaid code override. `idPrefix` scopes footnotes when a host displays several documents. The Board shell is a React app with TanStack Router. Its route loaders read document and projection contract queries through `effect-react` in the shell's native registry; preloading and navigation share those reads. Document and item pages mount `DocumentView` from the typed document query; Today, Goals, Now, Library and System render typed projection queries in React, as do Workspace notes, Start, Respond, Handoff and Result. Their direct URLs load the shell and require JavaScript. The HTML page RPC is removed. The optional `reading` data supplies source context, backlinks, criterion claims and managed receipts; request `prompts` supply answer controls. Hosts can mount `DocumentView` directly from source-query data, or pass `context` and `introduction` React nodes for its document layout.
|
|
467
480
|
|
|
468
481
|
#### Headless addon API
|
|
469
482
|
|
|
@@ -474,7 +487,7 @@ Work Fleet uses five server entry points and one portable metadata type entry po
|
|
|
474
487
|
| `integration/board.ts` | `board`: `metadataParse`, `metadataModel`, `listMarkdown`, `markdownPath`, `watchChanges`, `searchSnapshot`; exported types `Diagnostic`, `ParsedMetadata`, `MetadataDocument`, `MetadataModel`, `MarkdownFile`, `Changes`, `Snapshot` |
|
|
475
488
|
| `integration/metadata.ts` | Portable types `Diagnostic`, `ParsedMetadata`, `MetadataDocument`, `MetadataModel`, also available through `integration/board.ts` |
|
|
476
489
|
| `integration/responses.ts` | `responses`: `Responses`, `ResponseConfig`, `readResponses`, `currentResponses`, `makeResponse`, `publish`, `revisionOf`, `questionId`, `questionFrom`, `questionMarkdown`, `responseMarkdown`, `DraftInput`, `Question`, `Reading`, `RecordedResponse`; exported types `DraftInput`, `Question`, `Reading`, `RecordedResponse`, `ResponseOptions` |
|
|
477
|
-
| `integration/attention.ts` | `attention`: `RequestReceipt`, `managedRequestReceipt`; exported
|
|
490
|
+
| `integration/attention.ts` | `attention`: `RequestReceipt`, `managedRequestReceipt`, `projection(snapshot)`; exported types `RequestReceipt`, `AttentionProjection` |
|
|
478
491
|
| `integration/diagnostics.ts` | `diagnostics`: `FleetHealth`, `CapacityRejection`, `FLEET_HEALTH_NAME`, `fleetHealth`, `DiagnosticsContract`, `DAEMON_PORT`, `DAEMON_RPC_PATH`, `DiagnosticsSources`, `SourceFailure`, `diagnostics`, `codexRateLimits`, `codexLimits`, `githubLimits`; exported types `FleetHealth`, `CapacityRejection`, `SourceFailure` |
|
|
479
492
|
| `integration/publication.ts` | `publication`: `directoryPath`, `validateDirectory` for addons that publish their own records through open directory handles |
|
|
480
493
|
|
|
@@ -490,17 +503,36 @@ const read = Effect.scoped(Effect.gen(function* () {
|
|
|
490
503
|
})).pipe(Effect.provide(NodeServices.layer));
|
|
491
504
|
```
|
|
492
505
|
|
|
493
|
-
The snapshot retains parsed documents, identity diagnostics and unavailable paths. Compose `responses.Responses.layer` with `responses.ResponseConfig` containing that index, the same watcher, workspace root and explicit `enabled` write choice. Use the service to register reviewed questions and record answers; `responses.publish` writes an immutable record under `responses/` (or `handoffs/` when selected), and the record helpers preserve exact reviewed bytes and source path. Agent-owned items remain ordinary Markdown edits. `attention.managedRequestReceipt` qualifies an acknowledgement against those records; it does not confer execution or acceptance authority. The publication helpers retain the filesystem limits below.
|
|
506
|
+
The snapshot retains parsed documents, identity diagnostics and unavailable paths. Compose `responses.Responses.layer` with `responses.ResponseConfig` containing that index, the same watcher, workspace root and explicit `enabled` write choice. Use the service to register reviewed questions and record answers; `responses.publish` writes an immutable record under `responses/` (or `handoffs/` when selected), and the record helpers preserve exact reviewed bytes and source path. Agent-owned items remain ordinary Markdown edits. `attention.projection(snapshot)` returns the typed attention projection: `you`, `agents`, `resolved`, `parked`, `issues` and `complete`, with `items` retaining the same rows as `you` for existing clients. `attention.managedRequestReceipt` qualifies an acknowledgement against those records; it does not confer execution or acceptance authority. The publication helpers retain the filesystem limits below.
|
|
494
507
|
|
|
495
508
|
Fleet's production imports are fenced to these six entry points by `pnpm lint`; its test fixtures may still use Board modules directly. The packed-package consumer exercises the headless read, response and receipt path through these exports.
|
|
496
509
|
|
|
510
|
+
#### Read the running board through MCP
|
|
511
|
+
|
|
512
|
+
Start the board with `work-board /absolute/path/to/notes`. Register its read-only stdio MCP server with Claude Code or Codex:
|
|
513
|
+
|
|
514
|
+
```sh
|
|
515
|
+
claude mcp add --transport stdio work-board -- work-board mcp /absolute/path/to/notes
|
|
516
|
+
codex mcp add work-board -- work-board mcp /absolute/path/to/notes
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
Both commands require `work-board` on the client's PATH. `work-board mcp <dir>` reads the running board through `<dir>/board.sock`; it uses the same computed queries as the browser. If no board answers, every tool returns one error naming the directory and the `work-board <dir>` command to start it.
|
|
520
|
+
|
|
521
|
+
| Tool | Returns |
|
|
522
|
+
| --- | --- |
|
|
523
|
+
| `board_overview` | Needs-you count and items, in-flight Fleet items with stage and PR, and active and closed goal progress counts |
|
|
524
|
+
| `needs_you` | The `you` lane with reason, frontmatter options, computed question prompts and their choices, recommendation, and `ageMs` since the source's last modification (`null` when unknown) |
|
|
525
|
+
| `item` with `{ "id": "task.example" }` | Computed status, owner, criteria, relationships, Fleet stage and open decisions |
|
|
526
|
+
|
|
527
|
+
Fleet unavailability stays explicit in results. These tools read state without changing files or starting a board.
|
|
528
|
+
|
|
497
529
|
#### CLI reference
|
|
498
530
|
|
|
499
531
|
| Server argument | Default | Meaning |
|
|
500
532
|
| --- | --- | --- |
|
|
501
533
|
| `<dir>` | Required | Existing folder to read |
|
|
502
|
-
| `--home <file>` | None | Listed Markdown
|
|
503
|
-
| `--maintainer <name>` | `maintainer` | Literal `response_from` label for
|
|
534
|
+
| `--home <file>` | None | Listed Markdown heading board linked as Workspace notes; a missing file prevents startup |
|
|
535
|
+
| `--maintainer <name>` | `maintainer` | Literal `response_from` label for human questions; unaddressed standalone questions remain included |
|
|
504
536
|
| `--port <number>` | `4747` | Loopback server port; `0` asks for a free port |
|
|
505
537
|
| `--responses` | Off | Enable local question/response/handoff publication |
|
|
506
538
|
|
|
@@ -513,7 +545,19 @@ Fleet's production imports are fenced to these six entry points by `pnpm lint`;
|
|
|
513
545
|
| `--port <number>` | Select the shared server's port; default `4747` |
|
|
514
546
|
| `--url <origin>` | Select an HTTP loopback origin instead of `--port` |
|
|
515
547
|
|
|
516
|
-
The browser uses local NDJSON RPC at `POST /_board/rpc`. Ordinary document GETs, `/_board/start`, `/_board/work`, `/_board/
|
|
548
|
+
The browser uses local NDJSON RPC at `POST /_board/rpc`. Ordinary document GETs, `/_board/start`, `/_board/goals`, `/_board/work`, `/_board/library`, `/_board/system`, `/_board/respond`, `/_board/handoff`, `/_board/result`, and identity links load the React shell. Search and live subscriptions use the same RPC route. There is no automatic workspace discovery or server launch in agent commands.
|
|
549
|
+
|
|
550
|
+
A running `work-board <dir>` also serves that NDJSON RPC at `POST /_board/rpc` over the Unix socket `<dir>/board.sock`, using the same handlers and services as TCP. Tools can read `work-board.inbox`, `work-board.fleetItems` and `work-board.goals` from the board directory without knowing its port. Each board directory has its own socket. For example:
|
|
551
|
+
|
|
552
|
+
```sh
|
|
553
|
+
printf '%s\n' '{"_tag":"Request","id":"1","tag":"work-board.server","payload":null,"headers":[]}' |
|
|
554
|
+
curl --unix-socket ./notes/board.sock http://localhost/_board/rpc \
|
|
555
|
+
-H 'Content-Type: application/ndjson' --data-binary @-
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
The `work-board.server` query takes no payload and returns `{ url, directory }`, for example `{ "url": "http://127.0.0.1:4747/", "directory": "/home/me/project/notes" }`. It is available over both TCP and the socket; `url` uses the actual browser port, including when `--port 0` selects a free port. Its `Server` schema is exported from `@shivaedev/work-board/rpc/Server.ts`.
|
|
559
|
+
|
|
560
|
+
The socket has owner-only access from creation: startup binds inside a private sibling directory at `.sXXXXXX/s`, applies mode `0600`, then publishes `board.sock`. The private socket pathname is no longer than the public pathname, so staging does not reduce the directory lengths that Unix sockets support. These permissions provide its access boundary because Unix connections have no TCP remote address. Requests to `http://localhost/_board/rpc` with `Host: localhost` work over the socket; TCP retains its loopback Host and remote-address checks. Startup removes an unanswered stale socket and refuses to start when another board already answers there. A temporary `.board.sock.starting/` directory serializes stale removal and publication across processes. It is removed when startup completes or its scope closes. The private staging directory is also removed when startup completes or its scope closes. If a process is forcibly killed during startup, the error identifies the lock directory; remove abandoned startup directories only after confirming that startup is no longer running. Closing the board removes its socket, including on SIGINT and SIGTERM. If the board directory is committed, add `board.sock` and `.board.sock.starting/` to that directory's ignore rules.
|
|
517
561
|
|
|
518
562
|
### Install and limits
|
|
519
563
|
|
|
@@ -529,6 +573,6 @@ Files/folders below the root beginning with a dot, and `node_modules`, are skipp
|
|
|
529
573
|
|
|
530
574
|
Publication runs on Linux and macOS and needs a real workspace directory, hard links and directory synchronization. Linux anchors each step to open directory descriptors through `/proc/self/fd`. macOS has no such anchor in Node, so it uses canonical paths and checks the directories' device/inode identity before and after publishing; a directory or ancestor swapped between two checks is not detected, so keep write boundaries under trusted local ownership. Node's `fsync` on macOS does not issue `F_FULLFSYNC`, so a successful save is not a power-loss guarantee there. Read mode remains separate. No-replace publication and retry reconciliation protect recorded contributions; agents edit handoff receipt through ordinary files. An unrelated editor can still change source after preflight. Records retain the exact reviewed context, rather than claiming an atomic transaction with that editor. Moved directories or synchronization failures can produce an uncertain outcome.
|
|
531
575
|
|
|
532
|
-
|
|
576
|
+
The browser workspace requires JavaScript. Tailwind and shared React primitives style its views; project Markdown remains readable in an editor independently of the browser. Image routes exclude SVG, HTML, PDF and arbitrary attachments. The board does not launch agents, verify recorded evidence or generate exported document packets.
|
|
533
577
|
|
|
534
|
-
The [north star](docs/north-star.md) explains design priorities. The [roadmap](docs/roadmap.md) owns implementation status and unresolved decisions.
|
|
578
|
+
The [north star](docs/north-star.md) explains design priorities. The [roadmap](docs/roadmap.md) owns implementation status and unresolved decisions.
|