A file-based task manager
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Drop tsk-16 (implemented in previous commit)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

+10 -10
-1
.tsk/index
··· 1 1 tsk-32 Use git refs to store tasks 1776481730 2 - tsk-16 Add ability to search archived tasks with find command 1767466011 3 2 tsk-15 Add link identification to tasks 1732594198 4 3 tsk-9 fix timestamp storage and parsing 1732594198 5 4 tsk-7 allow for creating tasks that don't go to top of stack 1732594198
-1
.tsk/tasks/tsk-16.tsk
··· 1 - ../archive/tsk-16.tsk
+1 -1
src/attrs.rs
··· 1 + use std::collections::BTreeMap; 1 2 use std::collections::btree_map::Entry; 2 3 use std::collections::btree_map::{IntoIter as BTreeIntoIter, Iter as BTreeMapIter}; 3 - use std::collections::BTreeMap; 4 4 use std::iter::Chain; 5 5 6 6 type Map = BTreeMap<String, String>;
+1 -1
src/main.rs
··· 5 5 mod task; 6 6 mod util; 7 7 mod workspace; 8 - use clap_complete::{generate, Shell}; 8 + use clap_complete::{Shell, generate}; 9 9 use errors::Result; 10 10 use std::io::{self, Write}; 11 11 use std::path::PathBuf;
+1 -1
src/stack.rs
··· 4 4 5 5 use crate::errors::{Error, Result}; 6 6 use crate::util; 7 - use std::collections::vec_deque::Iter; 8 7 use std::collections::VecDeque; 8 + use std::collections::vec_deque::Iter; 9 9 use std::fmt::Display; 10 10 use std::fs::File; 11 11 use std::io::{self, BufRead, BufReader, Seek, Write};
+7 -5
src/workspace.rs
··· 7 7 use crate::stack::{StackItem, TaskStack}; 8 8 use crate::task::parse as parse_task; 9 9 use crate::{fzf, util}; 10 - use std::collections::{vec_deque, BTreeMap, HashSet}; 10 + use std::collections::{BTreeMap, HashSet, vec_deque}; 11 11 use std::ffi::OsString; 12 12 use std::fmt::Display; 13 - use std::fs::{remove_file, File}; 13 + use std::fs::{File, remove_file}; 14 14 use std::io::{BufRead as _, BufReader, Read, Seek, SeekFrom}; 15 15 use std::ops::Deref; 16 16 use std::os::unix::fs::symlink; ··· 1013 1013 assert!(archive_dir.join(format!("tsk-{}.tsk", task_id.0)).exists()); 1014 1014 1015 1015 let archive_tasks_dir = workspace.path.join("tasks"); 1016 - assert!(!archive_tasks_dir 1017 - .join(format!("tsk-{}.tsk", task_id.0)) 1018 - .exists()); 1016 + assert!( 1017 + !archive_tasks_dir 1018 + .join(format!("tsk-{}.tsk", task_id.0)) 1019 + .exists() 1020 + ); 1019 1021 1020 1022 let archived_tasks: Vec<SearchTask> = std::fs::read_dir(&archive_dir) 1021 1023 .unwrap()