Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 91 additions & 0 deletions .devdaily.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
{
"$schema": "https://raw.githubusercontent.com/hempun10/devdaily/main/schemas/devdaily.schema.json",
"version": 1,
"theme": {
"primary": "blue",
"success": "green",
"warning": "yellow",
"error": "red",
"accent": "cyan",
"muted": "gray"
},
"ascii": true,
"animations": true,
"compactMode": false,
"aliases": {
"standup": ["s", "su", "daily"],
"pr": ["p", "pull"],
"week": ["w", "weekly"],
"dash": ["d", "dashboard"]
},
"output": {
"format": "markdown",
"copyToClipboard": true,
"showStats": true,
"verbose": false
},
"git": {
"defaultBranch": "main",
"excludeAuthors": [],
"excludePatterns": ["merge commit", "Merge branch"]
},
"projects": [],
"shortcuts": {
"quit": "q",
"help": "?",
"refresh": "r",
"copy": "c",
"create": "enter",
"back": "esc",
"nextProject": "tab",
"prevProject": "shift+tab"
},
"projectManagement": {
"tool": "github",
"jira": {
"useApiToken": true
},
"linear": {
"useApi": true
},
"notion": {
"useApi": true
}
},
"notifications": {
"slack": {
"enabled": false
},
"discord": {
"enabled": false
},
"standupTimezone": "America/New_York"
},
"copilot": {
"timeout": 30000,
"retries": 2
},
"standup": {
"defaultDays": 1,
"includeWIP": false,
"sections": ["completed", "in-progress", "blockers"],
"groupBy": "none",
"includeTicketLinks": true,
"scheduleDays": ["monday", "tuesday", "wednesday", "thursday", "friday"]
},
"pr": {
"defaultBase": "main",
"autoLabels": true,
"defaultLabels": [],
"defaultReviewers": [],
"defaultAssignees": [],
"titleFormat": "conventional",
"includeTicketInTitle": true,
"includeDiff": true,
"maxDiffLines": 200
},
"week": {
"startDay": "monday",
"includeWeekends": false
}
}
79 changes: 79 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,84 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.5.0] - 2025-07-13

### Added

- **Persistent Work Journal** β€” Local work memory stored in `~/.config/devdaily/journal/` that tracks your work across sessions, days, and projects.
- `src/core/work-journal.ts` β€” Full storage layer with index, search, merge, cross-project aggregation, pruning, and stats.
- `src/core/snapshot-builder.ts` β€” Captures rich repo state (branches, commits, PRs, tickets, diffs, categories) into `WorkSnapshot` objects.

- **`devdaily snapshot`** (`snap`, `save`) β€” Manually capture a work snapshot with notes and tags.
- `--light` mode for fast captures (no PRs/tickets).
- `--list [days]` to browse recent snapshots.
- `--stats` to see journal storage usage.
- `--prune <days>` to clean up old entries.

- **`devdaily context`** (`ctx`, `resume`) β€” Recover what you were working on after a context switch.
- Date range filtering (`--from`, `--to`, `--date`, `--days`).
- `--all-projects` for cross-project context.
- `--ai` for AI-powered "where did I leave off?" summaries.
- `--branches` for detailed active branch status.

- **`devdaily recall`** (`search`, `find`) β€” Search your work history by keyword, file, tag, or date range.
- Fuzzy matching across commit messages, branch names, notes, and tags.
- `--file <path>` to find when a specific file was changed.
- `--ai` for AI-powered search result summaries.
- `--json` output for scripting.

- **Automatic Side-Effect Snapshots** β€” Zero-friction snapshot capture.
- `src/core/auto-snapshot.ts` β€” Silent, non-blocking snapshot module.
- `sideEffectSnapshot()` runs at the end of `standup`, `pr`, and `week` commands.
- `fireAndForgetSnapshot()` for fully async background captures.
- Tagged with source (`auto:standup`, `auto:pr`, `auto:week`, etc.).
- Respects `journal.autoSnapshot` config flag.
- `--no-journal` flag on `standup` and `pr`, `--no-auto-snapshot` on `week` to skip.

- **Git Hooks for Auto-Capture** β€” Opt-in `post-commit` and `post-checkout` hooks.
- `devdaily init --git-hooks` β€” Interactive hook installer.
- `devdaily init --remove-hooks` β€” Clean removal of devdaily hooks.
- POSIX-compatible (`#!/bin/sh`), background-executed, safe with existing hooks.
- Appends to existing hooks rather than overwriting.
- `generatePostCommitHook()` and `generatePostCheckoutHook()` in `auto-snapshot.ts`.

- **`journal` Config Section** β€” New configuration block for snapshot automation.
- `autoSnapshot` (default: `true`) β€” Enable/disable side-effect snapshots globally.
- `gitHooks` (default: `false`) β€” Track whether git hooks are installed.
- `hooks.postCommit` / `hooks.postCheckout` β€” Per-hook enable/disable.
- `quiet` (default: `true`) β€” Suppress snapshot side-effect messages.

- **Enhanced `devdaily week`** β€” Major improvements to weekly summaries.
- `--from` / `--to` for custom date ranges.
- `--weeks-ago <n>` for relative week selection.
- `--all-projects` for cross-project summaries from journal data.
- `--save` to persist the AI summary to the journal.
- `--json` for machine-readable stats output.
- Journal enrichment β€” weekly summaries incorporate snapshot history.

- **Comprehensive Test Suite** β€” 654 tests across 12 test files.
- `tests/auto-snapshot.test.ts` β€” 74 tests covering side-effect snapshots, hook generation, hook install/remove, config integration, edge cases, and round-trip cycles.
- `tests/work-journal.test.ts` β€” 123 tests covering persistent storage, search, cross-project aggregation, merge logic, pruning, and stats.

- **Production-Grade README** β€” Complete rewrite with full command reference, config documentation, architecture overview, testing guide, FAQ, and troubleshooting.

### Changed

- **`devdaily init`** β€” Added `πŸ“Έ Git hooks for automatic snapshots` as an interactive setup option, `--git-hooks` and `--remove-hooks` flags, and `dd context` in quick-start hints.
- **`devdaily standup`** β€” Now auto-saves a light snapshot to the journal after generating (disable with `--no-journal`).
- **`devdaily pr`** β€” Now auto-saves a light snapshot to the journal after generating (disable with `--no-journal`).
- **`devdaily week`** β€” Now auto-saves a light snapshot to the journal after generating (disable with `--no-auto-snapshot`).
- **Config schema** β€” Added `JournalSchema` with `autoSnapshot`, `gitHooks`, `hooks`, `autoPromptDays`, and `quiet` fields. Exported `Journal` type.
- **README** β€” Rewritten from scratch to production-grade standard. Updated project structure, feature table, command reference, config examples, roadmap (marked completed items), and added sections for auto-snapshots, privacy, and testing.

### Technical

- New modules: `src/core/auto-snapshot.ts`, `src/core/snapshot-builder.ts`, `src/core/work-journal.ts`.
- New commands: `src/commands/snapshot.ts`, `src/commands/context.ts`, `src/commands/recall.ts`.
- New test file: `tests/auto-snapshot.test.ts` (74 tests).
- Total test count: 580 β†’ 654 (12 test files).
- Build output: 348 KB (ESM), clean TypeScript compilation with zero errors.

## [0.4.1] - 2026-02-14

### Fixed
Expand Down Expand Up @@ -112,6 +190,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Support for custom date ranges
- No emoji output (professional terminal style)

[0.5.0]: https://github.com/hempun10/devdaily/releases/tag/v0.5.0
[0.4.1]: https://github.com/hempun10/devdaily/releases/tag/v0.4.1
[0.3.0]: https://github.com/hempun10/devdaily/releases/tag/v0.3.0
[0.2.0]: https://github.com/hempun10/devdaily/releases/tag/v0.2.0
Expand Down
Loading