Commit graph

169 commits

Author SHA1 Message Date
0f73864693
feat: add zed extension
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 1m39s
Continuous Integration / Build Package (push) Successful in 2m18s
2026-04-19 18:09:23 +02:00
d872e9e338
fix(daily): use midnight when creating file for non-today date
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 4m17s
Continuous Integration / Build Package (push) Successful in 5m24s
2026-04-19 10:55:13 +02:00
d0e4dccd1a
refactor: simplify LSP implementation
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 1m34s
Continuous Integration / Build Package (push) Successful in 2m17s
- Extract find_pattern_occurrences_in_lines helper; use in both references and rename handlers (deduplicates word-boundary search logic)
- Add MD_EXT constant to replace three repeated "md" string literals
- Fix double lock acquire/drop/re-acquire in code_action (use single guard)
- Fix symbol() to populate file_lines cache when parsing from disk (avoids redundant re-reads on subsequent requests)
- Remove section separator comment blocks (code structure is self-evident from Rust syntax)
2026-04-13 21:52:41 +02:00
b224620212
fix: resolve clippy warnings in lsp module
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 2m30s
Continuous Integration / Build Package (push) Successful in 3m38s
- Replace map_or(false, ...) with is_none_or(... !=)
- Replace explicit auto-derefs (&*Static) with auto-deref (&Static)
- Refactor range-indexed loop to iterator with enumerate + skip/take
- Suppress deprecated root_path field with allow(deprecated)

docs: update README and REQUIREMENTS for streamd lsp

- Add streamd lsp to commands table in README
- Add Editor Integration section with Zed, Neovim, VS Code snippets
- Add R25 LSP requirements (R25a–R25e) to REQUIREMENTS.md
2026-04-13 21:42:15 +02:00
50c592a641
feat: add streamd lsp subcommand with LSP server
Implements a full Language Server Protocol server accessible via
`streamd lsp`. The server communicates over stdin/stdout and auto-
detects the workspace root from the LSP initialize request.

Features implemented:
- Passive mode when no .streamd.toml exists in workspace root
- Workspace-root-based config loading (bypasses R22/R23 global config)
- .streamd.toml file watcher (config reloads without restart)
- textDocument/completion with @ trigger, conditional suggestions
  (if_with relationships), and temporal date/time snippets (R16)
- textDocument/publishDiagnostics: R15 file-name format + R18
  timesheet violations (overlapping timecards, unclosed days)
- textDocument/documentSymbol: shard tree exposed as nested symbols
- textDocument/codeAction: "Mark task as done" quickfix for @Task
- workspace/symbol: cross-file shard search
- textDocument/references: find all @Marker occurrences
- textDocument/rename: rename @Marker across all files

Dependencies added: tower-lsp 0.20, tokio, dashmap, serde_json
2026-04-13 21:37:38 +02:00
77bf9c584b
chore: release 0.2.4
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 2m28s
Continuous Integration / Build Package (push) Successful in 3m2s
Release / Build and Release (push) Successful in 4m26s
2026-04-13 20:15:28 +02:00
ab2fc823e8
feat: streamd daily is now default instead of streamd new 2026-04-13 20:09:09 +02:00
6c8f1f5253 feat: add Windows cross-compilation and release artifacts
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 2m43s
Continuous Integration / Build Package (push) Successful in 3m16s
Release / Build and Release (push) Successful in 6s
- Add mkWindowsCraneLib using x86_64-pc-windows-gnu target
- Add mkStreamdWindows using mingw-w64 toolchain for cross-compilation
- Export streamd-windows package from flake
- Add Windows build step and .exe artifact to release workflow
2026-04-13 19:53:48 +02:00
46766a9ec7 fix: cross-platform compatibility for Windows support
- Use directories::BaseDirs for config path fallback instead of hardcoded Unix path
- Default to notepad on Windows instead of vi for editor commands
- Skip +N line argument for notepad in todo edit (notepad doesn't support it)
2026-04-13 19:53:48 +02:00
349a639e90 chore(deps): lock file maintenance
Some checks failed
Release / Build and Release (push) Successful in 9s
Continuous Integration / Lint, Check & Test (push) Has been cancelled
Continuous Integration / Build Package (push) Has been cancelled
2026-04-13 19:53:29 +02:00
693ffbc764
chore: release 0.2.3
Some checks failed
Continuous Integration / Build Package (push) Has been cancelled
Release / Build and Release (push) Has been cancelled
Continuous Integration / Lint, Check & Test (push) Has been cancelled
2026-04-13 19:52:59 +02:00
ee96033639
refactor: remove duplicate code
All checks were successful
Release / Build and Release (push) Successful in 5s
Continuous Integration / Lint, Check & Test (push) Successful in 1m43s
Continuous Integration / Build Package (push) Successful in 1m54s
2026-04-13 19:49:50 +02:00
b8a73bfb3e
docs: document file_type prefix convention and streamd daily command
All checks were successful
Release / Build and Release (push) Successful in 6s
Continuous Integration / Build Package (push) Successful in 44s
Continuous Integration / Lint, Check & Test (push) Successful in 1m9s
2026-04-13 19:33:19 +02:00
bf700a15af
feat: add streamd daily command
`streamd daily [YYYYMMDD]` opens the earliest existing daily file
(file_type=daily) whose timestamp falls within the target date.
If no such file exists it creates `<timestamp>_daily.md` and opens it.
Date defaults to today in the repository timezone.
2026-04-13 19:31:32 +02:00
b653590c36
feat(localize): extract file_type from filename prefix
Add `extract_file_type_from_file_name` to parse prefixes like `_daily`
from filenames (e.g. `20260412-123456_daily.md` → `"daily"`).

Insert the result into `initial_location` in `localize_stream_file` so
all localized shards carry a `file_type` dimension value.

Also register the `file_type` dimension in `TaskConfiguration` so the
propagation contract is documented.
2026-04-13 19:30:59 +02:00
e15e6f1053
fix: broken tasks extraction
All checks were successful
Release / Build and Release (push) Successful in 6s
Continuous Integration / Lint, Check & Test (push) Successful in 1m33s
Continuous Integration / Build Package (push) Successful in 1m43s
2026-04-13 19:26:31 +02:00
10f4ae282a chore(deps): update rust crate clap_complete to v4.6.1
All checks were successful
Continuous Integration / Build Package (push) Successful in 50s
Release / Build and Release (push) Successful in 5s
Continuous Integration / Lint, Check & Test (push) Successful in 1m12s
2026-04-11 00:05:42 +00:00
c2b4fb5160 chore(deps): update rust crate indexmap to v2.14.0
All checks were successful
Release / Build and Release (push) Successful in 6s
Continuous Integration / Build Package (push) Successful in 24s
Continuous Integration / Lint, Check & Test (push) Successful in 44s
2026-04-10 00:06:13 +00:00
e562af0dc3
fix: clippy warnings
All checks were successful
Release / Build and Release (push) Successful in 6s
Continuous Integration / Lint, Check & Test (push) Successful in 1m26s
Continuous Integration / Build Package (push) Successful in 1m36s
2026-04-07 13:43:40 +02:00
5dca68037d
chore: fix timezone handling
Some checks failed
Continuous Integration / Lint, Check & Test (push) Failing after 57s
Release / Build and Release (push) Successful in 5s
Continuous Integration / Build Package (push) Successful in 1m43s
2026-04-07 13:26:34 +02:00
e8dc2013bc
chore: make datetime pure 2026-04-07 13:13:55 +02:00
2ab2b6a52b
ci: bump to 0.2.2
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 2m7s
Continuous Integration / Build Package (push) Successful in 2m45s
Release / Build and Release (push) Successful in 2m56s
2026-04-07 09:57:30 +02:00
22ada87de6
feat(timesheet): make hour-output default, decimal with two decimals 2026-04-07 09:56:46 +02:00
7f4d3bb147
ci: remove cargo-audito from pre-commit-hooks 2026-04-07 09:42:38 +02:00
60fac418f8
fix: forgot to bump lock-file
Some checks failed
Continuous Integration / Build Package (push) Successful in 2m31s
Release / Build and Release (push) Successful in 2m44s
Continuous Integration / Lint, Check & Test (push) Failing after 48s
2026-04-07 08:47:32 +02:00
b322c0307d
chore: bump version to 0.2.1
Some checks failed
Continuous Integration / Build Package (push) Failing after 28s
Release / Build and Release (push) Failing after 29s
Continuous Integration / Lint, Check & Test (push) Failing after 49s
2026-04-07 08:42:42 +02:00
0533c7777a
feat: add timesheet debug 2026-04-07 08:42:14 +02:00
d614d678af
chore: switch from h-float to min-int in timesheet
Some checks failed
Release / Build and Release (push) Successful in 6s
Continuous Integration / Lint, Check & Test (push) Failing after 56s
Continuous Integration / Build Package (push) Successful in 1m42s
2026-04-07 08:28:50 +02:00
a79111c650
ci: add cargo audit 2026-04-07 08:16:18 +02:00
a9acd34801
ci: fix release-pipeline running on feature-branches
All checks were successful
Continuous Integration / Build Package (push) Successful in 26s
Continuous Integration / Lint, Check & Test (push) Successful in 56s
Release / Build and Release (push) Successful in 2m37s
2026-04-07 08:09:47 +02:00
9563ff4d93
feat: bump to 0.2.0
All checks were successful
Release / Build and Release (push) Successful in 5s
Continuous Integration / Lint, Check & Test (push) Successful in 2m9s
Continuous Integration / Build Package (push) Successful in 2m43s
2026-04-07 08:06:55 +02:00
42d9ecd3d9
feat: add --minutes flag to timesheet command
All checks were successful
Release / Build and Release (push) Successful in 5s
Continuous Integration / Lint, Check & Test (push) Successful in 1m43s
Continuous Integration / Build Package (push) Successful in 1m56s
Adds a -m/--minutes flag to `streamd timesheet` that displays time
in HH:MM format (e.g., 8:30) instead of decimal hours (e.g., 8.5h).
Includes unit tests for both formatting functions.
2026-04-07 07:57:28 +02:00
e4ed1d839e chore(deps): lock file maintenance
All checks were successful
Release / Build and Release (push) Successful in 6s
Continuous Integration / Lint, Check & Test (push) Successful in 4m20s
Continuous Integration / Build Package (push) Successful in 4m50s
2026-04-06 00:06:43 +00:00
19a9e6a72e
ci: change release pipeline to run on every push
All checks were successful
Release / Build and Release (push) Successful in 6s
Continuous Integration / Lint, Check & Test (push) Successful in 1m31s
Continuous Integration / Build Package (push) Successful in 1m44s
2026-04-03 16:01:15 +02:00
7564ce01d5
chore: update cargo lock to 0.1.1
All checks were successful
Continuous Integration / Build Package (push) Successful in 25s
Continuous Integration / Lint, Check & Test (push) Successful in 49s
2026-04-03 15:47:49 +02:00
4f3c7cc0e4
chore: bump tag to 0.1.1
Some checks failed
Continuous Integration / Build Package (push) Failing after 29s
Continuous Integration / Lint, Check & Test (push) Failing after 52s
2026-04-03 15:42:42 +02:00
1d934b1a0d
chore: add verbose flag to release action
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 1m34s
Continuous Integration / Build Package (push) Successful in 1m47s
2026-04-03 15:39:32 +02:00
9b74f13155
fix: use own release instance
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 1m45s
Continuous Integration / Build Package (push) Successful in 1m58s
2026-04-03 14:57:57 +02:00
16218a8da7
fix: sed not installed, release pipeline fails
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 1m41s
Continuous Integration / Build Package (push) Successful in 1m54s
2026-04-03 14:06:44 +02:00
725ebcfbfd docs: add installation instructions for .deb, binary, and Nix
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 1m50s
Continuous Integration / Build Package (push) Successful in 1m49s
Document the three installation methods:
- Debian/Ubuntu .deb package with shell completions
- Statically-linked binary for any Linux system
- Nix flake and Home Manager module
2026-04-03 13:57:01 +02:00
0d929b20b7 feat(ci): add release workflow for .deb and static binary
Add Forgejo Actions workflow that builds and publishes releases:
- Triggers on tag push (v*) or manual workflow dispatch
- Builds static binary using musl target
- Creates .deb package with shell completions
- Uploads artifacts to Forgejo Releases

Requires RELEASE_TOKEN secret to be configured in repository settings.
2026-04-03 13:57:01 +02:00
10728a554f feat(flake): expose streamd-musl and streamd-deb packages
Update packages output to include streamd-musl (static binary) and
streamd-deb (.deb package) alongside the default streamd package.
2026-04-03 13:57:01 +02:00
45f8b3503b feat(flake): add .deb packaging with shell completions
Add mkStreamdDeb function that uses nfpm to create a .deb package
containing the statically-linked binary and shell completions for
bash, zsh, and fish.
2026-04-03 13:57:01 +02:00
e242e0cc2c feat(flake): add musl static build for streamd
Add mkMuslCraneLib and mkStreamdMusl functions to create a
statically-linked binary using the x86_64-unknown-linux-musl target.
This enables portable binaries that don't depend on system glibc.
2026-04-03 13:57:01 +02:00
9d1b47d19e refactor(flake): read version from Cargo.toml
Extract version from Cargo.toml using builtins.fromTOML as single
source of truth instead of hardcoding "0.1.0" in derivations.
2026-04-03 13:57:01 +02:00
02c2310d53 chore(deps): lock file maintenance
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 4m44s
Continuous Integration / Build Package (push) Successful in 5m34s
2026-04-03 10:02:05 +02:00
6453ef7c2a fix(deps): update rust crate chrono-tz to 0.10
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 1m51s
Continuous Integration / Build Package (push) Successful in 2m23s
2026-04-03 02:12:18 +02:00
661a0ce230 chore(deps): update rust crate toml to v1.1.2
Some checks failed
Continuous Integration / Build Package (push) Has been cancelled
Continuous Integration / Lint, Check & Test (push) Has been cancelled
2026-04-03 02:09:50 +02:00
2398bee8d9 chore(deps): update rust crate indexmap to v2.13.1
Some checks failed
Continuous Integration / Lint, Check & Test (push) Has been cancelled
Continuous Integration / Build Package (push) Has been cancelled
2026-04-03 00:06:27 +00:00
aa8f83e321
fix: replace vec! with array to satisfy clippy useless_vec lint
All checks were successful
Continuous Integration / Build Package (push) Successful in 26s
Continuous Integration / Lint, Check & Test (push) Successful in 42s
2026-04-02 18:36:10 +02:00