v0.1.0
Pre-release
Pre-release
taciturnaxolotl
released this
10 Sep 22:45
·
180 commits
to master
since this release
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