Skip to content

v0.1.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@taciturnaxolotl taciturnaxolotl released this 10 Sep 22:45
· 180 commits to master since this release
53938d5

Changelog

Full Commit Log: https://github.com/kcoderhtml/hackatime/commits/v0.1.0

[0.1.0] - 2024-09-10

🚀 Features

  • Change default value for time Fields to CURRENT_TIMESTAMP for better cross database support. Support Scanning String Dates for HeartBeatReqTime
  • Add support for sqlite3
  • Ability to set default username and password
  • User signup
  • Introduce base path config option to better support redirections behind a proxy
  • Display api key on user interface (resolve muety#24)
  • Add basic sign up instructions
  • Use bcrypt with salts instead of md5 for hashing password (resolve #21)
  • Add auto-migrations for old md5 password to maintain backwards compatibility
  • Allow insecure cookies (resolve muety#27)
  • Persist user creation date (resolve muety#31)
  • Persist user creation date (resolve muety#31)
  • Add ability to change passwords (resolve muety#30)
  • Add ability to reset api key (resolve muety#29)
  • Add base_path environment variable
  • Show data loss warning (resolve muety#38)
  • Extract machine name from heartbeat requests (resolve muety#47)
  • Introduce machine summaries (resolve muety#48)
  • Add wakatime-compatible alltime endpoint
  • Add more pre-configured intervals (resolve muety#51)
  • Implement badges endpoint and sharing functionality
  • Introduce legacy config migration
  • Add front page (resolve muety#34)
  • Add ipv6 and tls support (resolve muety#79)
  • Ability to choose number of top entities to display (resolve muety#81)
  • Add ui for managing aliases (resolve muety#91)
  • Relay heartbeats to wakatime (resolve muety#28)
  • Ui for configuring wakatime integration
  • Embed assets into binary
  • Add missing query params to wakatime endpoints (resolve muety#109)
  • Account deletion (muety#99)
  • Wakatime data import (resolve muety#87)
  • Implement stats endpoint (resolve muety#114)
  • Option to publicly share stats data (resolve muety#36)
  • Add endpoint compatible to github readme stats (resolve muety#65)
  • Allow unlimited date ranges
  • Add swagger docs (resolve muety#40)
  • Display setup instructions on startup (resolve muety#120)
  • Add prometheus metrics without external standalone exporter
  • Per-user heartbeats count metrics
  • Custom time intervals (resolve muety#115)
  • Gui for sample data generator script
  • Sentry integration (resolve muety#142)
  • Password resets (resolve muety#133)
  • Smtp mail provider implementation
  • Implement wakatime users endpoint (resolve muety#193)
  • Email reports (resolve muety#124)
  • Settings dialog for mail reports
  • Implement wakatime projects endpoint (resolve muety#196)
  • Basic integration / api tests (wip) (resolve #9)
  • Implement project labels (resolve muety#204)
  • Ui for managing project labels
  • 🎸 add support for using a UNIX domain socket
  • Add alpine image
  • Build/push arm64 Docker image
  • Build/push arm64 Docker image
  • Add test steps to Linux workflow
  • Implement relay endpoint (see muety#237)
  • Support query parameter token
  • User avatars
  • Brotli precompressed assets (resolve muety#284)
  • Total heartbeats per summary (resolve muety#283)
  • Comprehensive summary-level filtering (resolve muety#262)
  • Ability to filter by project labels
  • Basic implementation of branch statistics
  • Project details page with branch statistics (resolve muety#242)
  • Build linux/arm/v7,linux/arm/v6
  • Allow to configure custom api url for relay and import (resolve muety#105)
  • GET /heartbeat endpoint (resolves muety#241)
  • Ability to clear all user data (resolve muety#339)
  • Add database size metric
  • Allow toggling vibrant color for all charts
  • Make vibrantColors a localStorage setting
  • Automatic version.txt updates
  • Introduce newsbox for front page (resolve muety#393)
  • Add leaderboard data model
  • Leaderboard generation and querying
  • (wip) Leaderboard ui
  • Top languages by user
  • Settings option to opt in to leaderboards
  • (wip) Leaderboard pagination (resolve muety#417) [ci-skip]
  • Implement data retention mechanism
  • Allow using mysql socket, fixes muety#433
  • (subscriptions) Introduce config options and user attribute to support subscriptions
  • (wip) Stripe integration for subscriptions
  • (wip) Implement stripe webhooks
  • (wip) Implement stripe webhooks
  • (wip) Polish settings ui for subscriptions
  • Implement computation of users first heartbeats data time
  • Subscription expiry notification mails
  • Add heartbeats download script
  • Add UI changes to add project to label
  • Insert label into database
  • (settings) Add UI for bulk associations
  • (settings) Handle bulk associations in db
  • (settings) Add btn to toggle add project btn
  • Implement file statistics (resolve muety#80)
  • -version flag
  • Add per weekday stats to report (resolve muety#493)
  • Expose total user activity time in admin metrics (resolve muety#484)
  • (wip) Implement query for fetching user project stats (see muety#302) [skip ci]
  • (wip) First draft of projects page implementation [skip ci]
  • (wip) Link from project page to summaries
  • Add pagination to projects page (resolve muety#302)
  • Add ui controls for filtering (resolve muety#511)
  • (wip) Implement activity chart generation (see #12)
  • Finish and include activity chart (resolve #12)
  • Support for reverse proxy trusted header authentication (resolve muety#534)
  • Implement daily average field for wakatime compat summary (resolve muety#545)
  • Add option to choose legacy wakatime importer (resolve muety#542)
  • Added more info per project
  • Show avatar url in wakatime user model
  • Show user id as display_name in user
  • Add ability to disable imports (resolve muety#552)
  • Add single project compat endpoint (resolve muety#562)
  • Implement leaders compat endpoint (resolve muety#570)
  • Implement language filtering in leaders compat endpoint
  • Include user rank in prometheus metrics (resolve muety#566)
  • Add user creation automation script (resolve muety#604)
  • Date format config
  • Customize date formatting
  • Signup captcha (resolve muety#635)
  • Implement invite links (resolve muety#624)
  • Ability to exlclude unknown projects from summaries (resolve muety#619)
  • Implement category chart and summaries (resolve muety#630)
  • Configurable heartbeats timeout and offset (resolve muety#156)
  • Support ip ranges for trusted proxy header auth (resolve muety#665)
  • Wildcard aliases (resolve muety#607)
  • Use hackclub hand logo
  • Remove features section and change footer
  • Remove weird spaces in the total hours and users fields
  • Make the logo be on the top
  • Make the buttons match the color scheme
  • Add two variations of the accent color
  • Make the footer follow the colorscheme
  • Switch logo to the side version if page to small
  • Squash the main page into a smaller width and change copy
  • Upate forgot password to match color scheme
  • Make the signup page reflect color scheme
  • Update icons and links in main menu
  • Update the summary page and main menu to follow colorscheme
  • Update the time picker and selectors to fit the color scheme
  • Add dark and light mode dynamic svg
  • Update projects page to fit colorscheme
  • Update settings page to match color scheme
  • Update readonly field style
  • Update site favicon
  • Customize mailing templates
  • Update set-password page styling to match color scheme
  • Update password reset and update pages to use colorscheme
  • Make email use color scheme
  • Add cliff workflow

🐛 Bug Fixes

  • Proper parsing of environment variables
  • Fix build script to cross-compile with sqlite dependency
  • Docker build
  • Update docekr file to include env vars and volume
  • Forgot to check in alerts template partial
  • Use relative urls
  • Html base href trailing slash
  • Quick summary paths
  • Base path for error redirects
  • Don't trim hash
  • Set string key value data type to text
  • Return created status code for heartbeats (resolve muety#43)
  • Make summary include timestamp of first and last heartbeat (resolve #18)
  • Adapt summary generation to new summary bounds
  • Return proper response to heartbeat requests (resolve muety#46)
  • Generate dummy items for missing types in historic summary data
  • Column definition in migration
  • Save heartbeats and summaries with millisecond time precision (resolve muety#49)
  • All time data model
  • Support project query param for alltime endpoint
  • Attempt to fix invalid fixture query for postgres (fix muety#52)
  • User agent strign parsing (fix muety#53)
  • Define flags on init
  • Adapt docker image to new config format
  • Add legacy config again for backwards-compatibility
  • Stop tracking legacy config file
  • Sample data script
  • Timestamp precision
  • Use custom date for summary model to support sqlite deserialization
  • Json serialization error when percentage is nan
  • Critical fixes related to alias resolution
  • Postprocessing for alias keys not corresponding to an actual entity
  • Crash when calling badge endpoint with no filters applied (resolve muety#66)
  • Postgres connection (resolve muety#70)
  • Filters
  • Crash on fail to listen
  • Do not attempt to bind on ipv6 in docker (resolve muety#84)
  • Concurrent access to language mappings (resolve muety#83)
  • Permissions bug related to deleting language mappings
  • Move caching out of authentication middleware
  • Embed of static, views
  • Delay defer templateFile.Close()
  • (ci) Actions release, build on push/pr
  • Tests
  • Attempt to quickfix hash collisions
  • Attempt to directly hash struct again
  • Start and end parameter parsing for wakatime summary route
  • Really fix it now 🤦‍♂️
  • Make logging middleware respect proxy headers
  • Selective summary generation
  • Missing summary api route
  • Wakatime relay
  • 30 days interval
  • Tests
  • Tests
  • Consider negative sharing intervals
  • Json marshalling of custom time (resolve muety#117)
  • Dockerfile syntax error
  • (ui) Convert logo text to path (resolve muety#121)
  • Include machine names when importing wakatime data
  • Commit missing asset
  • Support default range for stats endpoint (resolve muety#125)
  • Tests [ci skip]
  • Include overall total number of heartbeats again
  • Add migration for newly introduced has data field
  • Broken migration on postgres (resolve muety#127)
  • Drop_badges_column migration for sqlite
  • Mysql character encoding (resolve muety#131)
  • Use compatible tailwind version
  • Batch insert conflict bug (resolve muety#139)
  • Enable strict slash mode for api router
  • Delete language mapping (resolve muety#143)
  • Allow custom mappings with dot (resolve muety#144)
  • Disable recompute caching (resolve muety#149)
  • Responsiveness in firefox mobile (resolve muety#137)
  • Import bug with small number of heartbeats (fix muety#160)
  • Minor fixes (resolve muety#151) (resolve muety#154)
  • Adapt tests
  • Throttle wakatime api requests (attempt to fix muety#152)
  • Summary missing interval calculation (fix muety#168)
  • Make mail provider configs non-nullable
  • Table drop in migration
  • Missing summary aggregation after days without heartbeats (see muety#168)
  • Very basic sentry error logging
  • Failing auto migration of users table (resolve muety#171)
  • Precedence in case of multiple matching language mappings (fix muety#172)
  • Remove uniqueness constraint for email
  • Make range picker show actual range with ceiled to date (fix muety#175)
  • Serve static file from local fs when on dev (fix muety#176)
  • Include icon library to fix missing emojis on some platforms (resolve muety#119)
  • Rebuild tailwind
  • Lock aggregation jobs to one at a time on a per-user basis (resolve muety#180)
  • Prevent duplicate summaries from being counted twice (resolve muety#179)
  • Merge summaries by unique from date only
  • Timezone selector
  • Fix divide by zero (resolve muety#189)
  • Permit simple date time format in wakatime summaries endpoint (resolve muety#190)
  • Make wakatime summary endpoint date range inclusive (resolve muety#192)
  • Rebuild tailwind assets
  • Attempt to fix race condition when counting
  • Exact path matching for api endpoints (resolve muety#194)
  • Respect timezone parameter for wakatime summary endpoint (resolve muety#195)
  • Hotfix for invalid api base url prefix (muety#203)
  • Permissions for stats endpoint
  • Invalidate user summary cache (fix muety#209)
  • Exclude zero entries
  • Exclude zero entries again
  • Attempt to fix failing sqlite migrations (resolve muety#210)
  • Summary caching (resolve muety#211)
  • README link to 'config.default.yml'
  • Remove unix socket if exists (muety#220)
  • Speed up settings page (resolve muety#226)
  • Resolve project labels before resolving aliases (resolve muety#222)
  • README link to 'config.default.yml'
  • Remove unix socket if exists (muety#220)
  • Tests
  • Compatible with new wakatime-cli
  • Include tzdata package in alpine docker image [ci-skip]
  • Ui errors from conditional HasData on summary
  • Properly format x axis for durations (see muety#232)
  • Tooltip and legend
  • Continue chartjs migration
  • (docs) Wrong parameter in OpenAPI-Docs
  • Relative swagger-ui definition
  • Make test script fail if tests fail [ci skip]
  • Add missing non-zero field checks (fix muety#259)
  • Fix the empty key error
  • Remove hard coded string
  • Tests
  • Tests
  • Remove dead client-side proxy link in README [ci skip]
  • User time zone test (fix muety#275) [ci skip]
  • Limit sqlite connection pool to one
  • Anticipated docker push issue
  • Migrate id column type to bigint (resolve muety#281)
  • Adapt tests
  • Auto increment in bigint migration
  • Swagger /api/api duplication
  • Consider all Machine/UserAgent entries
  • Duration test
  • Properly sort durations to prevent heartbeats from being counted twice
  • Mocks
  • Api tests
  • Url template vars
  • Popups and dropdowns
  • Responsiveness
  • Critical infinite loop at the date of switch to daylight saving time
  • Settings forms
  • Wrongly displayed timezone offset
  • Omit null branches property of wakatime summary
  • Exec to replace environment.sh
  • Adapt badge filter entity regex to cover labels [ci skip]
  • Missing project labels form [ci skip]
  • Allow project names with dots for badges (resolve muety#301)
  • Allow to display more than ten entities and nine legend items (fix muety#303)
  • Allow to create labels for aliased projects (resolve muety#231)
  • Make cookie path respect server.base_path (resolve muety#310)
  • Branches chart (resolve muety#322)
  • Href to a 404 when service on a subpath
  • Href
  • Wrong key
  • Example for mail sender
  • Hotfix for muety#337 (resolve muety#33)
  • (perf) Speed up summary retrieval of all time interval (resolve muety#336)
  • Duration aggregation for heartbeats with identical timestamps (resolve muety#340)
  • Explicit milliseconds precision of timestamp columns
  • Remove user property of diagnostics as sent without auth
  • (ci) Use go 1.18 in ci build
  • Failing heartbeats index auto-migration on sqlite (resolve muety#346)
  • Double counting when using precise missing intervals
  • Prevent large difference between aggregated and recomputed summaries (resolve muety#354)
  • Remove authentication requirement from diagnostics endpoint
  • Summary page layout
  • Clear summary cache on new project label (resolve muety#369)
  • Explicitly set default value for unique columns (fix muety#367)
  • Work around invalid all_time_since_today data schema to fix failing import (resolve muety#370)
  • Update swaggo dependency
  • Error when querying with label filter (resolve muety#374)
  • Api tests time zone bug (resolve muety#355)
  • Bug in same day comparison
  • Admin users can't fetch other user data
  • Returning current user instead of requested one
  • Broken summary aggregation (resolve muety#385)
  • 500 on POST /api/heartbeats
  • Check database open
  • Initialise data/ dir in Docker
  • (build) Enable cgo, downgrade release to ubuntu-18.04, add -w -s (muety#404)
  • Swagger docs base path (resolve muety#412)
  • (ci) Build env vars on windows
  • Swagger docs path [skip ci]
  • Label on settings page
  • Heartbeat entity character length (resolve muety#415)
  • Summary items id type (see muety#416)
  • Clear leaderboard after user opted out
  • Replace mysql backticks
  • Leaderboard responsiveness
  • Case sensitivity with leaderboard languages (resolve muety#418)
  • Swagger ui (resolve muety#421)
  • Ignore rank column in migrations
  • Cache key
  • Errors during leaderboard generation
  • Composite index on heartbeats table
  • Index migration for sqlite
  • Make intervals robust to daylight saving time shift
  • Importing data from wakapi instance (resolve muety#428)
  • Include cumulative total key in wakatime summary compat endpoint (resolve muety#426)
  • Missing icons
  • User agents and machine names in wakatime import
  • Ignore error "starttls command has been already sent"
  • Prometheus metrics types
  • Tests
  • Concurrency bugs with summary aggregation and user counting
  • (ci) Adapt docker and gha build to use go 1.19
  • Disabling tcp webserver sockets, fixes muety#434
  • Remove config file requirement, fixes muety#435
  • Enable experimental column altering for cockroachdb (see muety#442)
  • Dont clean data for subscribed users
  • Tests
  • Critical bug with data retention / cleanup
  • Tests
  • Don't require db param for api test script
  • Minor fixes
  • Sentry middleware interface conversion
  • Make wakatime relay middleware accept single heartbeat format (resolve muety#445)
  • Ci tests
  • Sign up api test
  • Leaderboard ui on small screens
  • Sentry logging without user authentication [ci-skip]
  • Adapt csp header for subscriptions [ci-skip]
  • (metrics) Warning - postgres - failed to get database size (expected 0 arguments, got 1)
  • Respect requested user in summary compat endpoint (resolve muety#455)
  • Default cleanup job cron expression
  • When importing from wakapi, os & editor are reversed
  • (settings) Remove useless commas
  • (settings) Parse select as list
  • (settings) Change background color for options
  • (settings.tpl) Remove useless attribute
  • (ci) Replace deprecated codeql version
  • Track subscription renewal date
  • Disallow blank space usernames
  • Minor fix for key generation
  • Include missing mail headers (resolve muety#472)
  • Badges broken (resolve muety#475)
  • Support user agents set by browser plugin (see muety#237)
  • Updating subscription renewal date
  • Top files picker
  • View details of unknown projects on dashboard
  • Include query params with relayed request
  • Cancel active subscription upon user account deletion
  • Exclude unknown languages from leaderboard time
  • Return ok status even upon subscription event handling failure [skip ci]
  • Properly handle error responses during wakatime import
  • Invalid search query in Postgres
  • Respect errors thrown in misc functions
  • Badge endpoint caching (resolve muety#496)
  • (import) Data dump already exists
  • Failing migration
  • Properly parse edge user agent as editor (resolve muety#516)
  • Reverse interval resolution
  • Nil point error after unsuccessful wakatime key validation
  • Skip summary cache for sub second-level date precision (resolve muety#522)
  • Project stats query for postgres (resolve muety#531)
  • Skip sharing permissions check at badge endpoint for authorized users (see muety#533)
  • Hide attribution in activity chart on summary page (resolve muety#533)
  • Always permit badges for logged in user (resolve muety#533)
  • Nil pointer deref in wakatime dump import (resolve muety#544)
  • Correct prevously intended typo in wakatime summary view model (see muety#545)
  • Divide by zero during compat summary generation
  • Ignore permissions when logged in stats api
  • Logged user see own stats
  • Nil pointer in case of failing db connection setup (see muety#549)
  • Run api tests ordering
  • Tests
  • Crash on project summary
  • Avatar url wrong url using external api
  • Make leaders endpoint publicly accessible
  • Faulty parameter in default config (resolve muety#573)
  • Properly parse neovim (resolve muety#578)
  • Nil pointer in user metrics endpoint with disabled leaderboard (resolve muety#576)
  • Faulty summary computation with filters enabled (resolve muety#535)
  • Disable ipv6 in docker (resolve muety#584)
  • Clear branch name if no latest branch could be found [skip ci]
  • (test) Badges test
  • Auto redirect to summary page for any authentication mechanism (resolve muety#589)
  • Auto redirect to summary page for any authentication mechanism (resolve muety#589)
  • Top menu bar on small screens (resolve muety#593) [skip ci]
  • Display activity chart when running under subpath (resolve muety#594)
  • Activity chart routing for usernames containing dots (resolve muety#596)
  • Activity chart routing (again) (resolve muety#599)
  • Dump import (resolve muety#602)
  • Prevent empty slice error during summary items insertion
  • Exclude unknown languages from language specific leaderboard (see muety#606)
  • Entity filter dropdown for unknown project (resolve muety#621) [skip ci]
  • Validate date format
  • Custom date validation
  • Settings page responsiveness (resolve muety#618)
  • Consistently begin weeks on mondays (resolve muety#623)
  • Spacing between wrapped filter controls
  • Make entities non-clickable (resolve muety#625)
  • Add apply button to time filter controls (resolve muety#627)
  • Enable signup button when invite code is used [skip ci]
  • Set default value for vibrant colors picker
  • Make user cleanup opt-out (see muety#629)
  • Merge relicts
  • Make sonarqube happy [skip ci]
  • Wakatime dump importer downloading wrong file (resolve muety#640)
  • Wakatime summaries view model index error
  • Make categories stacked bar span full width
  • (ci) Migration tests on mssql
  • Multi-log to sentry and console in parallel
  • Signup rate limiting (resolve muety#674)

🚜 Refactor

  • Move migrations to separate method
  • Middlewares and get rid of negroni
  • Migrate to new config (resolve muety#54)
  • Introduce repositories as an additional layer of abstraction to allow for better testability
  • Alert handling
  • Simplify summary generation (resolve muety#68)
  • Define interface types for all services and repositories
  • Include logging framework (resolve muety#92)
  • Settings routes and actions
  • Significant changes related to routing and general code cleanup
  • Make intervals be string lists of aliases
  • Make each router handler register middleware on its own
  • Logging (resolve muety#169)
  • Time zone sensitivity (resolve muety#184)
  • Time zone sensitivity (resolve muety#184)
  • Mail service abstraction layer
  • Resolve project labels at runtime (resolve muety#227)
  • Introduce concept of durations (resolve muety#261)
  • (wip) Redesign settings page
  • (wip) Finish settings page
  • Migrate most non-chart-related js logic to petite-vue (resolve muety#282)
  • Include generics based utility lib and refactor some parts accordingly [ci-skip]
  • Use cross join instead of subquery for populating summary items (see muety#350)
  • Replace sqlite with pure go implementation
  • Use query param for leaderboard controls
  • Move more background jobs to using job queue
  • Use job queue for data imports
  • Split utility functions into utils and helpers
  • Minor code refactorings
  • (subscriptions) Store stripe customer id with user
  • Flash messages framework (resolve muety#446)
  • Replace gorilla mux with chi
  • Use wakatime dump api for data imports (resolve muety#323)
  • Remove repeated code in readyPollTimer
  • Use third-party worker pool inside wakatime heartbeats import
  • Embed activity chart in dom directly (resolve muety#569)
  • Drop mailwhale support (resolve muety#581)
  • View models (resolve muety#634)

📚 Documentation

  • Update version number
  • Update readme
  • Add badges
  • Add badges
  • Update badges
  • Update readme
  • Update readme
  • Update readme
  • Update readme
  • Update readme
  • Document api endpoints in readme
  • Document prometheus export
  • Include github project card for exporter repo
  • Readme
  • Update docs for new config format
  • Include sonarcloud badges
  • Update readme
  • Display latest release as badge
  • Update url
  • Fix badges
  • Fix endpoint paths in readme (thanks @mlunax)
  • Advanced setup instructions for client-side reverse proxy
  • Update readme
  • Reduce image layers
  • Update readme with new build instructions
  • Minor corrections in readme
  • Beautify readme
  • Update readme
  • Fix readme links and remove duplicated badge
  • Update readme
  • Update readme toc
  • Mention wiki in docs
  • Document thoughts about time zones
  • Clarify time zone comments [ci skip]
  • Quick run script in readme
  • Minor typos [ci skip]
  • Update backwards-compatible api url in readme
  • Readme [ci-skip]
  • Include relay endpoint in swagger docs
  • Update readme [ci skip]
  • Mention blog post
  • Add readme link
  • Update readme [ci skip]
  • Update docker run command to ghcr [ci skip]
  • Extend postman collection by get heartbeats compat endpoint
  • Update readme
  • Add smtp and mailwhale config details to readme
  • Update readme
  • Add public url parameter to readme (resolve muety#349) [ci skip]
  • Instructions for go install [ci skip]
  • Add eget option [ci skip]
  • Update default cron expressions
  • Update readme [ci-skip]
  • Add non-root user
  • Update readme [skip ci]
  • Update readme [skip ci]
  • Add note about necessity to enable public data for github readme integration (resolve muety#474) [skip-ci]
  • Update readme [skip ci]
  • Limit readme stats preview to past week [skip ci]
  • Add instructions for using export script
  • Instructions how to set up browser extension [skip ci]
  • Fix readme link [skip ci]
  • Document leaderboard scope config option
  • Add community contributions sections [skip ci]
  • Add clarifying comments
  • Update default config
  • Update README
  • Update sponsors
  • Refer to wakatime integration in initial setup instructions (resolve muety#611) [skip-ci]
  • Document gnome extension usage [skip ci]
  • Document projects query parameter as optional (resolve muety#653)
  • Update README.md for docker compose usage
  • Update README.md for docker compose usage
  • Change all naming in README to hackatime
  • Remove support and other sections and change license
  • Update option number in README for compiling and running from source

⚡ Performance

  • (dist) Load external swagger-ui files
  • Use --no-cache in Dockerfile
  • Separate download stage in Dockerfile
  • Strip binaries
  • Avoid allocations with (*regexp.Regexp).MatchString

🎨 Styling

  • Keep small column definitions together
  • Change color palette
  • New logo
  • Card theming

🧪 Testing

  • Add first few unit tests
  • Add essential unit tests for core functionality (resolve #6)
  • Add further tests for heartbeat augmentation (resolve muety#144)
  • More api tests [ci skip]
  • Add more api tests
  • Add api tests for query auth
  • User api retrieving user information
  • Adapt mocks
  • Migration testing for mysql/mariadb/postgres
  • More efficient database ready detection
  • Address pr comments
  • Revert to docker compose
  • Ref the config conditional
  • Remove api call for timezone

⚙️ Miscellaneous Tasks

  • Remove docker compose file
  • Enable templates to consist of partials
  • Remove unused dependencies
  • Trim white spaces from passwords before hashing them
  • Make sqlite the default database to easily get started
  • Update dockerfile
  • Run in dev mode by default
  • Minor changes to the github actions
  • Update version count
  • Minor code improvement
  • Remove debug comments
  • Parallel summary conversion
  • Restrict badge access by user agent
  • Update build workflow to exclude certain directories
  • Minor code enhancements
  • Add random seed to generator script
  • Minor code restyling
  • Make aggregation time configurable (resolve muety#60)
  • Display database type
  • Update version
  • Add quick start scripts for spinning up dev database container
  • Remove clean up related parameters
  • Attempt to configure coverage for sonar
  • Attempt to exclude test and mock code from analysis
  • Show badges on front page
  • Minor code smell
  • Even more code smell
  • Increment version to 1.18.2
  • Show total hours on index page (resolve muety#88)
  • Wording
  • Support for cockroachdb (resolve muety#90)
  • Include machine name in sample data script
  • Include integrity hashes (resolve muety#93)
  • Update version
  • Docs and typos
  • Increment patch version number
  • Use wakatime colors for editors and os (resolve muety#100)
  • Move route registration into the handler classes themselves (resolve muety#57)
  • Add check to validate wakatime api key before accepting it
  • Remove legacy config.ini and .env
  • Get rid of cdn and serve all static assets locally
  • Log request durations (resolve muety#102)
  • Introduce hashes for heartbeats
  • Stop gorm from logging queries
  • Require at least one database connection
  • (docker) Publish Docker Image on Release
  • Test coverage report
  • Ignore duplicate heartbeat conflicts while inserting
  • Make docker container wait properly for database to come up
  • Add config option to disable user registrations (resolve muety#113)
  • Update favicons
  • Optimize import date range
  • Settings interface for github readme stats
  • Add localhost notice to examples
  • Exclude static assets from request logging
  • Accept bearer prefix in auth header
  • Introduce user admin flag
  • Make very first user have admin privileges
  • Code smell [ci skip]
  • Change logging middleware to use different output
  • Change info message in migration (resolve muety#128)
  • Purge tailwind classes (resolve #22)
  • Save heartbeats created date
  • Introduce user email addresses (resolve muety#132)
  • Fix success messages
  • Add svelte language mapping
  • Remove integrity hashes from assets files since served locally anyway (resolve muety#141)
  • Exclude static assets from sonarqube [ci skip]
  • Include postman collection (resolve muety#148) [ci-skip]
  • Write authenticated user to logs and sentry
  • Exclude health endpoint from sentry tracing
  • Add support button
  • Log mailwhale error
  • Add html lang
  • Version
  • Send notification on successful import
  • Increment version
  • Add contribute.json (resolve muety#170)
  • Adapt go version in github build action
  • Set basic security headers (resolve muety#174)
  • Increment version
  • Add experimental sqlite to mysql migration script
  • Add option to silently fail in case of schema migration errors
  • Make back button on settings page a relative link
  • Usage instructions for sqlite migration script [ci-skip]
  • Batch mode for sample data script
  • Minor tweaks to migration script
  • Minor refactorings to custom time parsing logic
  • Guess user timezone on signup
  • Fix api key on instructions page
  • Add same date tests
  • Guess user timezone on signup
  • Fix api key on instructions page
  • Add same date tests
  • Version
  • Log requests from json response util method
  • Remove config script [ci ckip]
  • Less verbose logging
  • Upgrade dependencies
  • Add random time offset to scheduled reports jobs
  • Minor optimization to heartbeats by multi-user query
  • Adapt tests
  • Adapt tests and bump version
  • Link to labels settings
  • Minor ui improvements
  • Code smells
  • Add api tests for all alternative heartbeat endpoints
  • Bump version
  • Add default config param
  • Log unmatched requests
  • Configurable request timeout
  • Cache active users with hourly precision
  • Further optimizations and caching to speed up metrics endpoint (resolve muety#215)
  • Bump version
  • Dependency upgrades
  • Configurable count cache ttl
  • Upgrade dependencies
  • Fix syntax for postgres
  • More verbose logging
  • Notify users about failing wakatime connection
  • Implement diagnostics endpoint (resolve muety#225)
  • Update postman collection
  • Exclude health endpoint from logging
  • Use partial includes in mail templates to avoid code duplication
  • Bump version
  • Update issue templates [ci skip]
  • Persist raw user agent value
  • Bump version
  • Fix typo in test case
  • Bump version
  • Bump version
  • Update landing page
  • Invert visualization of project labels (resolve muety#263)
  • Version
  • Enhanced caching for user entity sets (resolve muety#264)
  • Include runtime metrics
  • Add ghcr for Docker deploy, change cache
  • Enable foreign key constraints for new sqlite databases
  • Upgrade dependencies (fix muety#280)
  • Bump version
  • Drop debian based docker image and use alpine by default
  • Minor code changes
  • Bump version
  • Add quick start option
  • Imprint and password reset pages
  • Move vue components to separate js files
  • Minor performance improvements
  • Add migration for heartbeats count
  • Add title attribute for kpi texts
  • More verbose logging with regard to reports
  • Filter model tests
  • Add more filtering unit tests
  • Add api tests for filtering
  • Move time picker to separate component
  • Make time picker a standalone petite-vue component
  • Add precompressed app css
  • Update screenshot [ci skip]
  • Update Docker to use golang:1.17-alpine
  • Remove armv6 again
  • Version
  • Add caddyfile [ci skip]
  • Indentation [ci skip]
  • Fix user agent parsing for unset wakatime version (resolve muety#306) [ci skip]
  • Major and major.minor tags for Docker publish
  • Minor fixes
  • Update precompressed assets
  • Include avatar rendering into wakapi itself
  • Cache avatars in memory
  • Easier setup instructions (resolve muety#325)
  • Bump version
  • Fix typo in error message
  • Apply filters in database query (see muety#335)
  • Introduce heartbeat max age
  • Add user project index on heartbeats table
  • Allow heartbeats from one hour into the future to compensate for clock inaccuracies (see muety#342)
  • Metrics performance improvements
  • Ditch lo module again
  • Make summary items subquery unique by summary id
  • Fall back to today badge on project page
  • Downgrade postgres driver
  • Adapt tests
  • Explicit width and height for front page images [ci skip]
  • Do not run expensive jobs initially but only scheduled
  • Minor changes to vibrant colors toggling
  • Remove hard-coded volume from Dockerfile
  • Update mapi org
  • Try merge release action
  • Fix release.yml
  • Fix release.yml
  • Try keep same name
  • Try use include
  • Merge mapi, test, build to ci.yml & keep release in release.yml
  • Fix upload relese
  • Add a new endline
  • Add descriptive names for workflows
  • Add example systemd service unit file [ci skip]
  • Update quick run script (resolve muety#400)
  • Update dependencies after sqlite pure go migration
  • Update readme and dockerfile
  • (build) Remove gcc dependency
  • (release) Reinclude ci conditions
  • Generate leaderboard when enabled in user settings
  • Caching for leaderboard
  • Empty leaderboard placeholder
  • Display leaderboard update time
  • Improve summary id fixing migration (see muety#416)
  • Update dependencies
  • Add clarification on relaying to other wakapi instance (resolve muety#420) [skip-ci]
  • Logging
  • Add maximum default leaderboard length
  • Update iconify
  • Clean up dependencies
  • Logging
  • Refine report scheduling
  • Dependency upgrades
  • Upgrade testing for SQLite
  • SQLite upgrade testing comments
  • Minor changes
  • Require email address for subscriptions
  • Cap data import according to max data retention time
  • Script to send mass mail via mailwhale
  • Add data privacy notice
  • Clear user cache upon logout
  • Validate email addresses with dns
  • Serve static assets without compression in dev mode
  • Ability to configure socket mode
  • Fix log line [ci-skip]
  • Add tests for heartbeat hashing
  • Show warning message when data about to expire
  • Introduce dry run flag for data cleanup [skip ci]
  • Error handling in mailing script [skip ci]
  • (settings) Remove duplicated code
  • Minor ui changes
  • Update .dockerignore
  • Upgrade dependencies
  • Add runtime directory param to systemd unit [skip ci]
  • Update actions versions
  • Update license [skip ci]
  • Add support for astro files (see muety#469)
  • Reuse securecookie keys in dev mode (resolve muety#463)
  • Ability to disable home page (resolve muety#460)
  • Add support indicator for users
  • Exclude avatar routes from logging [skip ci]
  • Consistent trigger for release docker
  • Add workflow_dispatch to docker.yml
  • Upgrade docker action
  • Upgrade dependencies
  • Upgrade dependencies
  • Update sentry sdk
  • Testing scripts for cockroachdb
  • Update to ubuntu-latest
  • Minor code style and cleanup
  • Bump to go 1.20
  • Set minimum go version to 1.20 [skip-ci]
  • Log response body of failed http requests
  • Skip multi-platform build step on pushes and prs [skip ci]
  • Upgrade dependencies
  • Introduce config parameter for min time between two consecutive imports
  • Allow specifying connection dsn for mysql
  • Include optional pprof profiling
  • Expose gc related metrics [skip ci]
  • Warn about overlapping summaries
  • Remove debug output
  • Remove mapi stuff
  • Refactorings and improvements for project stats calculation interfaces [skip ci]
  • Pre-warm project stats cache [skip ci]
  • Reduce permissions for non-release actions
  • Always log errors to sentry wherever possible [skip ci]
  • Add alt tag to activity chart [skip ci]
  • Allow promo codes during checkout [skip ci]
  • Implement support for last branch placeholder (resolve muety#538)
  • Data retention notice on first login
  • Minor fix in latest migration
  • Consistently use spaces over tabs
  • Upgrade dependencies
  • Make summaries compat view model included fields consistent with wakatime
  • Add utility method to execute functions while turning panics into errors (resolve muety#560)
  • Test coverage
  • Ability to disable leaderboard (resolve muety#571)
  • Upgrade dependencies
  • Require go 1.21
  • Add marketing logo
  • Update actions, cache go dependencies
  • Upgrade dependencies
  • Rename variables in auto-install script [skip ci]
  • Collect additional runtime memory statistics
  • (perf) Speed up badge endpoints and single-filter summary computation
  • Add indicator for total number of entity items shown in charts (resolve muety#588)
  • Minor formatting [skip ci]
  • Dependency upgrades
  • Fix caddyfile [skip ci]
  • Clear old releases upon new release [skip ci]
  • Upgrade dependencies
  • Rate limiting for sensitive endpoints (resolve muety#628)
  • Inactive users cleanup (resolve muety#629)
  • (test) Add housekeeping unit test [skip ci]
  • Test pushing of 2.11.0 without arm/v7
  • Re-enable push
  • Revert original docker build workflow (resolve muety#632) [skip ci]
  • Upgrade dependencies (see muety#632)
  • Update setup-go action
  • (test) Basic test cases to test for html template being fully rendered (see muety#634)
  • Add pure postgres sql aggregation script by @cwilby
  • Remove refs to deprecated io/ioutil
  • Category chart regenerate notice
  • Update chartjs to latest 3.x version
  • (docs) Regenerate api docs
  • Upgrade to latest smtp lib (resolve muety#657)
  • Upgrade dependencies (resolve muety#656)
  • Minor code cleanup [skip ci]
  • Run mail tests in workflow
  • Upgrade dependencies
  • Default to go 1.23 [skip ci]
  • Pass sentry environment tag
  • Update readme [skip ci]
  • Minor code style [skip ci]
  • Upgrade dependencies
  • Update Hackatim.yml URL in README
  • Add .env and config.yaml to .gitignore
  • Run prettier
  • Update page title and meta tags for Hackatime
  • Remove unnecessary buttons from index page
  • Make the page the full widht of the browser
  • Remove conflicting classes
  • Remove conflicting class
  • Remove conflicting class
  • Make the logo be not styled by default and at the top on index login and signup pages
  • Format
  • Update ss and use png
  • Update build scripts to use 'bun run' instead of 'npm run'
  • Update watch script to include tailwind.config.js
  • Add custom colors and fonts
  • Make the sideways logo appear on more screens
  • Update accent colors in tailwind.config.js
  • Update contact info and repo url

Integrations

  • Url-encode shields label
  • Show different params for shields.io

README

  • Mention the WAKAPI_AVATAR_URL_TEMPLATE configuration variable

WIP

  • SQLite support.

Bug

  • Add grow tag to settings page to avoid squished header and footer

Build

  • Test release architectures
  • Re-enable release steps

Debug

  • Remove workflows
  • Re-add workflows again

Hotfix

  • Remove user agent check for shields.io

Ref

  • Embed files, bump to go 1.16 (muety#167)
  • Remove unnecessary unicode characters
  • Add .gitattributes file for line normalisation
  • Simplify Dockerfile stages

Refctor

  • Change active users query

Wip

  • Password resets