Skip to content

Releases: kartoza/go-timesheets-go

v0.15.0 - Enhanced Gaps View

Choose a tag to compare

@timlinux timlinux released this 28 Mar 11:55

🎉 Release v0.15.0 - Enhanced Gaps View

✨ Features

Scrollable Gaps Analysis

The gaps view has been significantly enhanced to provide better visibility into your timesheet coverage throughout the month:

  • Full Month Coverage: Now shows all days from the start of the current month to today (previously limited to 14 days)
  • Horizontal Scrolling: Navigate through all days easily
    • TUI: Use left/right arrow keys to scroll the viewport, Home/End to jump to start/end
    • GUI: Horizontal scroll bar for smooth navigation
  • Dynamic Title: Shows the current date range being viewed with scroll indicators

🖼️ Screenshots

The gaps view now allows you to scroll back and fill gaps from any day in the current month, making it easier to maintain complete timesheets.

📦 Installation

# Using Go
go install github.com/kartoza/go-timesheets-go@v0.15.0

# Or download from releases

🙏 Acknowledgements

Made with 💗 by Kartoza


Full Changelog: v0.14.0...v0.15.0

v0.14.0 - Google Calendar Integration

Choose a tag to compare

@timlinux timlinux released this 26 Feb 00:40

What's New

Google Calendar Integration

This release adds Google Calendar integration to help fill gaps in your timesheet by showing calendar appointments for the selected day.

Features

  • OAuth 2.0 Authentication - Connect your Google account with your own Google Cloud credentials
  • Calendar Settings Screen - Configure Client ID/Secret in both GUI and TUI interfaces
  • Calendar Panel Widget - View your day's calendar events when creating time entries
  • Click-to-Fill - Click any calendar event to auto-populate start and end times in the entry form
  • Secure Token Storage - OAuth tokens stored securely with auto-refresh

How to Use

  1. Go to Settings → Google Calendar
  2. Enter your Google Cloud OAuth Client ID and Secret
  3. Click Connect to authorize the application
  4. When filling gaps, calendar events will appear in a panel on the right side
  5. Click any event to use its time range for your timesheet entry

Documentation

  • Added PACKAGES.md - Complete annotated package structure documentation
  • Updated SPECIFICATION.md with calendar data models and user stories

Installation

Debian/Ubuntu

wget https://github.com/kartoza/go-timesheets-go/releases/download/v0.14.0/kartoza-timesheet_0.14.0_amd64.deb
sudo dpkg -i kartoza-timesheet_0.14.0_amd64.deb

From Source

git clone https://github.com/kartoza/go-timesheets-go.git
cd go-timesheets-go
go build -o kartoza-timesheet .

Full Changelog

v0.13.0...v0.14.0

v0.13.0: Gaps View Improvements, Submission Validation & History Redesign

Choose a tag to compare

@timlinux timlinux released this 19 Feb 17:40

What's New in v0.13.0

🔍 Gaps View Improvements

  • Automatic refresh - Gaps view now refreshes automatically after creating a new entry
  • Smart end time defaults - When clicking a gap to create an entry, end time is pre-filled based on the gap duration
  • Entry editing from gaps - Click on project segments in gaps view to edit unsubmitted entries
  • Missing description warnings - Yellow exclamation mark (!) indicator on entries without descriptions
  • Entry selection dialog - When multiple entries exist for a project, shows a selection dialog to choose which to edit

✅ Submission Validation

  • Description requirement - Submit action now validates that all pending entries have descriptions
  • Validation dialog (GUI) - Shows a clear error dialog listing entries missing descriptions with count and project names
  • Validation dialog (TUI) - Shows a styled error dialog indicating how many entries need descriptions
  • Helpful guidance - Prompts users to click on entries to add descriptions before submitting

📋 History Screen Redesign (GUI)

  • Two-column master-detail layout - Left column shows compact entry list, right column shows full details
  • Compact list view - Entries display project, task, date, hours, and status without descriptions
  • Expandable detail panel - Selected entry shows full details with scrollable description area
  • Description fills available space - Description area expands vertically and scrolls for long content
  • Status indicators - Visual icons for running (🟢), pending (○), submitted (✓), missing description (⚠), and POW video (🎬)
  • Contextual action buttons - Edit/View, Delete, and Play POW buttons appear based on entry state

Installation

Download the appropriate package for your platform from the assets below (packages will be built and attached by CI).

Linux

  • DEB (Ubuntu/Debian): kartoza-timesheet_0.13.0_amd64.deb
  • RPM (Fedora/RHEL): kartoza-timesheet-0.13.0-1.fc43.x86_64.rpm
  • Flatpak: kartoza-timesheet-0.13.0.flatpak
  • Binary: kartoza-timesheet-0.13.0-linux-amd64.tar.gz

macOS

  • DMG (Universal): kartoza-timesheet-0.13.0-macos-universal.dmg
  • Intel: kartoza-timesheet-0.13.0-macos-amd64.tar.gz
  • Apple Silicon: kartoza-timesheet-0.13.0-macos-arm64.tar.gz

Windows

  • ZIP: kartoza-timesheet-0.13.0-windows-amd64.zip

v0.12.0: Gaps Visualization & Improved Autocomplete

Choose a tag to compare

@timlinux timlinux released this 03 Feb 10:13

What's New

Gaps Visualization

A new Gaps view shows your last 14 days of time entries as vertical bars:

  • Each bar is segmented and color-coded by project
  • Red segments indicate unlogged time (gaps from 8-hour daily target)
  • GUI: Hover over segments to see project name, task, activity, hours, and descriptions
  • TUI: Use arrow keys to navigate between days and segments, with a detail panel showing the same information
  • Click (GUI) or press Enter (TUI) on a gap to open a new timesheet entry pre-filled with that date and start time

Improved Autocomplete

  • Project field: Restored full autocomplete with API-based search (type 2+ characters to search), custom popup with keyboard navigation (Up/Down arrows, Enter to select, Escape to close)
  • Task and Activity fields: Now use traditional dropdowns (click to open, no typing required) - simpler and more reliable

Technical Improvements

  • New shared GapsService for DRY code between TUI and GUI
  • Custom hoverableSegment widget for GUI mouse interaction
  • Segment-based navigation model for TUI keyboard control

Installation

Download the appropriate package for your platform from the assets below.

v0.11.0: Favourites UX, Colour Picker, Dark-Themed Dropdowns

Choose a tag to compare

@timlinux timlinux released this 29 Jan 07:10

What's New in v0.11.0

Timezone Awareness

  • All times stored as UTC, displayed in local timezone across TUI, GUI, and CLI
  • Consistent timezone handling in start/stop commands, history, dashboard, and timesheet views
  • Correct local-time display for time entry cards, systray status, and favourites

AI Assistant Enhancements

  • Comprehensive domain knowledge embedded for LLM prompts (time tracking, utilization, team comparison, best practices)
  • 11 new analytical query handlers: utilization, overtime, pace, context switching, gaps, unsubmitted entries, weekly/project comparison, longest period, most productive day, session length
  • Embedded query reference document into binary for LLM context
  • All AI queries logged to ~/.config/kartoza-timesheets/ai-query.log
  • Fixed GUI AI screen layout and Enter key submission

Favourites UX Improvements

  • Keyboard navigation for autocomplete dropdowns — Up/Down arrows, Enter to select, Escape to close
  • Colour picker for favourite buttons — 19 preset colours to personalise your favourites grid
  • Custom colours render with darkened fill and bright stroke border
  • Favourite buttons expand to fill available screen space using Border layout
  • Colour field added to TUI favourites editor with hex input and live background preview

Dark-Themed Autocomplete Dropdowns

  • Dropdown popups now have a dark background (#2A2A2A) with gold border (#DDA036)
  • Light text (#CCCCCC) with gold highlight for keyboard-selected items
  • Popups correctly positioned below their parent widget (fixed absolute positioning)

Code Repos Screen Fixes

  • Fixed vertical text rendering in repository list (switched from HBox to Border layout)
  • Fixed crash when opening code repos (replaced fragile index-based widget access with tree-walking)
  • Styled editor popup to match dark theme (was default white Fyne dialog)

CI/CD

  • Consolidated packaging workflow with builds for Linux (.deb, .rpm, .flatpak, binary), macOS (universal DMG), and Windows (.zip)
  • All builds use Go 1.24 with CGO_ENABLED=1 for Fyne/OpenGL support

Cleanup

  • Removed workspace/desktop associations feature entirely (GUI, TUI, CLI, models, storage, tests)

Downloads

Platform File
Linux x86_64 kartoza-timesheet-linux-amd64.tar.gz
Debian/Ubuntu kartoza-timesheet_*.deb
Fedora/RHEL kartoza-timesheet-*.rpm
Flatpak kartoza-timesheet-*.flatpak
macOS (Universal) kartoza-timesheet-*-macos-universal.dmg
Windows x86_64 kartoza-timesheet-*-windows-amd64.zip

Full Changelog

v0.10.0...v0.11.0

v0.10.0: AI Assistant with multi-level fallback engine

Choose a tag to compare

@timlinux timlinux released this 27 Jan 20:24

What's New

AI Assistant

  • Multi-level AI engine - 4-level fallback chain: Embedded LLM (llama.cpp) → Ollama (local LLM server) → Neural Network (TF-IDF similarity) → Rule-based fuzzy matching
  • Natural language project discovery - Ask questions like "Which project for GeoServer Docker?" to find the right project/task/activity combination
  • Timesheet analytics - Ask analytical questions: "Which projects did I work on last week?", "How consistent was my timekeeping?", "Which project did I spend the most time on?"
  • Consistency analysis - Detects rounded entries (exact hours, half-hours, quarter-hours) indicating retroactive rather than as-you-work recording
  • One-click timer start - Select an AI-suggested match to immediately start a timer with the correct project/task/activity
  • Neural network training - TF-IDF cosine similarity model automatically trains from your timesheet history
  • Ollama integration - Connects to local Ollama LLM server for enhanced AI responses (no API key required)
  • Embedded LLM support - Optional llama.cpp integration via llamacpp build tag for fully offline AI
  • GUI AI screen - Full AI assistant interface in the Fyne GUI with query input, example queries, and clickable match results
  • TUI AI screen - Full AI assistant interface in the Bubbletea TUI with keyboard navigation and example query shortcuts
  • Dashboard access - AI button on dashboard (GUI) and 'a' shortcut key (TUI) for quick access

GUI Enhancements

  • GUI timesheet creator with date/time editing and completed entry support
  • Themed stop timer dialog with editable fields
  • Themed entry detail dialog with edit, delete, and POW playback
  • ESC key navigation and history list descriptions

Multi-Instance Consistency

  • API-canonical architecture: remote API is the single source of truth
  • Atomic file writes prevent corruption from concurrent access
  • CLI commands properly sync with API and local cache

Note: Platform-specific packages (macOS DMG, Windows ZIP, DEB, RPM) will be added automatically by CI within a few minutes.

Full Changelog: v0.9.1...v0.10.0

v0.9.1: Cross-platform package builds

Choose a tag to compare

@timlinux timlinux released this 23 Jan 00:20

What's New

Cross-Platform Packages

  • Windows package - ZIP archive with GUI executable (no console window)
  • macOS package - Universal binary DMG supporting both Intel and Apple Silicon Macs
  • macOS tar.gz - Separate Intel (amd64) and ARM64 archives for manual installation
  • Linux binary - Standalone amd64 binary tar.gz for systems without package managers

Changed

  • Updated GitHub Actions workflow to build packages for all major platforms on release

Full Changelog: v0.9.0...v0.9.1

v0.8.1

Choose a tag to compare

@timlinux timlinux released this 22 Jan 17:18

Full Changelog: v0.8.0...v0.8.1

v0.8.0

Choose a tag to compare

@timlinux timlinux released this 22 Jan 16:40

Full Changelog: v0.7.0...v0.8.0

v0.7.0 - Pervasive Mouse Support

Choose a tag to compare

@timlinux timlinux released this 22 Jan 11:59

🖱️ Pervasive Mouse Support

This release adds full mouse interaction support throughout the entire application!

✨ New Features

Mouse Support on All Screens

  • Main Menu - Click menu items to select and open them
  • History View - Click on timesheet entries to view details
  • Workspace Associations - Click Name column to edit, Edit button to open popup, Clear button to remove
  • Code Repos - Click on repository rows to edit associations
  • Timesheet Creator - Click on form fields to focus, click popover items to select, click Submit button
  • Login Screen - Click on input fields (API URL, Username, Password) to focus them
  • Favourites - Click on favourite slots to start timers

Mouse support works alongside keyboard navigation - use whichever input method you prefer!

🐛 Bug Fixes

  • Fixed workspace associations edit mode crash when clicking Name column

📦 Downloads

Platform Architecture Download
Linux AMD64 (x86_64) kartoza-timesheet-linux-amd64.tar.gz
Linux ARM64 (aarch64) kartoza-timesheet-linux-arm64.tar.gz
macOS Intel (AMD64) kartoza-timesheet-darwin-amd64.tar.gz
macOS Apple Silicon (ARM64) kartoza-timesheet-darwin-arm64.tar.gz
Windows AMD64 (x86_64) kartoza-timesheet-windows-amd64.tar.gz

Installation

# Download and extract (Linux/macOS example)
tar -xzf kartoza-timesheet-linux-amd64.tar.gz
chmod +x kartoza-timesheet-linux-amd64
sudo mv kartoza-timesheet-linux-amd64 /usr/local/bin/kartoza-timesheet

Full Changelog: v0.6.0...v0.7.0