Skip to main content

Overview

The Work Journal is DevDaily’s “memory” layer — it stores daily work snapshots locally so you can recall what you were doing on any date, across any project. It powers context recovery, smart recall, and cross-project weekly summaries.

Storage Location

All journal data is stored locally at:
Nothing is sent to external servers. Your work history stays on your machine.

Directory Structure

The journal uses a date-based directory structure:

Index File

The index.json file maintains a registry of all projects and their snapshot history:

Snapshot Files

Each snapshot is stored as a JSON file with this structure:

Snapshot Data Structure

Core Metadata

string
required
ISO date string (YYYY-MM-DD)
string
required
ISO timestamp of when snapshot was taken
string
required
Sanitized repo name or directory name
string
required
Absolute path to the repo root

Git Information

string
required
Current branch at snapshot time
array
required
All active (non-merged) local branches with status
array
required
Commits made on the snapshot date
array
required
Commits made in the last 7 days for context

Work Context

array
Open/recently merged PRs
array
Active/recently touched tickets from Jira, Linear, GitHub Issues
array
Work categories breakdown (e.g., frontend: 60%, backend: 40%)
array
Most frequently changed files
object
Diff statistics: filesChanged, insertions, deletions

User-Added Content

string
Free-form notes attached by the user
string
AI-generated summary of what you were working on
array
Auto-extracted + user-supplied tags for search

Search and Retrieval

Search by Query

The journal supports full-text search across all snapshot content:
Searchable fields:
  • Commit messages
  • Branch names
  • File paths
  • PR titles
  • Ticket IDs and titles
  • Notes
  • AI summaries
  • Tags
  • Project IDs

Search by Tags

Search by Project

Relevance Scoring

Search results are ranked by relevance:
  • Branch name match: +10 points
  • Active branch match: +5 points
  • PR title match: +5 points
  • Ticket match: +5 points
  • Tag match: +5 points
  • Notes match: +4 points
  • Commit message match: +3 points
  • AI summary match: +3 points
  • Project ID match: +3 points
  • File path match: +2 points
From src/core/work-journal.ts:1050:

Auto-Tagging

Snapshots are automatically tagged based on content:

Branch Prefixes

  • feature/feature tag
  • fix/, bugfix/bugfix tag
  • hotfix/hotfix tag
  • chore/chore tag
  • refactor/refactor tag
  • docs/docs tag
  • test/test tag

Conventional Commits

Extracted from commit messages:
  • feat:feat tag
  • fix:fix tag
  • docs:docs tag
  • refactor:refactor tag
  • test:test tag
  • chore:chore tag
  • perf:perf tag

Ticket IDs

  • PROJ-123PROJ-123 tag
  • #456#456 tag

Work Categories

Categories with ≥20% contribution:
  • frontend, backend, api, database, etc.

PR Labels

All PR labels are added as tags

Maintenance

Get Storage Stats

Prune Old Snapshots

Remove snapshots older than a specific number of days:
Pruning is permanent. Removed snapshots cannot be recovered.

Rebuild Index

If your index becomes corrupted or out of sync:
This scans all date directories and reconstructs the project registry.

Cross-Project Summaries

Get aggregated activity across all projects:

File History

Find when a specific file was last worked on:

Snapshot Merging

When you take multiple snapshots on the same day for the same project, they are merged instead of overwritten:
  • Newer metadata wins (branch, timestamp, etc.)
  • Commits are deduplicated by hash
  • Branches are deduplicated by name
  • PRs are deduplicated by number
  • Notes are concatenated
  • Tags are combined
From src/core/work-journal.ts:987:

Privacy

All journal data is stored locally at ~/.config/devdaily/journal/. Nothing is ever sent to external servers.
See the Privacy page for more details.