forked from janek/mostr
1
0
Fork 0
mostr/README.md

96 lines
2.9 KiB
Markdown
Raw Normal View History

2024-07-09 14:56:08 +00:00
# mostr
A nested task chat, powered by nostr!
## Quickstart
2024-07-29 11:20:49 +00:00
First, start a nostr relay, such as
- https://github.com/coracle-social/bucket for local development
2024-07-29 19:56:30 +00:00
- https://github.com/rnostr/rnostr for production use
Run development build with:
2024-07-09 14:56:08 +00:00
2024-07-29 11:20:49 +00:00
cargo run
2024-07-29 19:56:30 +00:00
Creating a test task:
`nostril --envelope --content "test task" --kind 1621 | websocat ws://localhost:4736`
Install latest build:
cargo install --path . --offline
2024-07-24 22:02:26 +00:00
## Principles
- active task is tracked automatically
- progress through subdivision rather than guessing
- TBI: show/hide closed/done tasks
Recommendation: Flat hierarchy, using tags for filtering (TBI)
## Reference
2024-07-25 19:40:35 +00:00
### Command Syntax
`TASK` creation syntax: `NAME: TAG1 TAG2 ...`
2024-07-24 22:02:26 +00:00
- `TASK` - create task
- `.` - clear filters and reload
- `.TASK`
+ select task by id
+ match by task name prefix: if one or more tasks match, filter / activate (tries case-sensitive then case-insensitive)
+ no match: create & activate task
- `.2` - set view depth to `2`, which can be substituted for any number (how many subtask levels to show, default 1)
2024-07-24 22:02:26 +00:00
Dots can be repeated to move to parent tasks
- `:[IND][COL]` - add / remove property column COL to IND or end
2024-07-25 07:50:53 +00:00
- `>[TEXT]` - Complete active task and move to parent, with optional state description
- `<[TEXT]` - Close active task and move to parent, with optional state description
- `|TEXT` - Set state for current task from text (also aliased to `/` for now)
2024-07-26 08:07:47 +00:00
- `-TEXT` - add text note (comment / description)
2024-07-25 07:50:53 +00:00
Property Filters:
- `#TAG` - filter by tag
2024-07-29 11:20:49 +00:00
- `?STATE` - filter by state (type or description) - plain `?` to reset
2024-07-25 07:50:53 +00:00
State descriptions can be used for example for Kanban columns.
2024-07-29 11:20:49 +00:00
An active tag or state filter will also set that attribute for newly created tasks.
2024-07-24 22:02:26 +00:00
2024-07-25 19:51:12 +00:00
### Available Columns
2024-07-24 22:02:26 +00:00
- `id`
- `parentid`
- `name`
- `state`
2024-07-29 11:20:49 +00:00
- `hashtags`
2024-07-30 06:09:54 +00:00
- `tags` - values of all nostr tags associated with the event, except event tags
- `desc` - last note on the task
- `description` - accumulated notes on the task
2024-07-24 22:02:26 +00:00
- `path` - name including parent tasks
- `rpath` - name including parent tasks up to active task
- `time` - time tracked on this task
- `rtime` - time tracked on this tasks and all recursive subtasks
- `progress` - recursive subtask completion in percent
- `subtasks` - how many direct subtasks are complete
2024-07-24 22:02:26 +00:00
2024-07-30 06:09:54 +00:00
For debugging: `props`, `alltags`, `descriptions`
TBI: Combined formatting and recursion specifiers -
for example progress count/percentage and recursive or not.
Subtask progress immediate/all/leafs.
2024-07-24 22:02:26 +00:00
## Plans
2024-07-29 11:20:49 +00:00
- Relay Selection, fetch most recent tasks first
- parse Hashtag tags from task name
- Personal time tracking
- Unified Filter object
-> include sub
- Time tracking: Active not as task state, ability to postpone task and add planned timestamps (calendar entry)
- TUI - Clear terminal?
- Expiry (no need to fetch potential years of history)
2024-07-29 19:56:30 +00:00
- Offline caching
- Web Interface, Messenger integrations
2024-07-29 11:20:49 +00:00
- Relay: filter out task state updates within few seconds, also on client side