Releases: 200ok-ch/organice
Org Habits Consistency Graph
Track your daily habits with a visual consistency graph.
What's New
- Consistency graph showing habit completion history at a glance
- Color-coded status indicators: green (done), blue (not due), yellow (due today/tomorrow), red (overdue)
- Habits sort before non-habits in the Agenda view
- Configurable graph settings (preceding/following days)
How to Use
- Create a TODO item with a
SCHEDULEDtimestamp using the.repeater (e.g.,.+1d) - Add the property
STYLE: habit - Open the Agenda view to see your consistency graph appear
Example:
* TODO I will get sunlight, in the morning, so that I can become an awake person
SCHEDULED: <2026-01-08 Thu .+1d>
:PROPERTIES:
:STYLE: habit
:END:
Screenshots of Org Habits in Emacs compared to organice:
Emacs
organice
Documentation
For full details on habit configuration, repeater syntax, and min/max ranges, see the documentation.
1.22
1.21 Fix CI tasks
CI Tasks: docker build/push and deploy-prod
- Building the docker image has been broken for some time.
- Deploying to prod via CI had an issue since switching to parcel.
Both seem to be working as of commit e72d010. There's no PR, because I made these changes directly to the master branch, because these CI tasks should only run for production ready code.
1.2 Switch to Parcel & Fix Upgrade Issues
Important Update Information: One-Time Action May Be Required
Due to an issue introduced during the previous upgrade from CRA v3 to v4, some users may have been stuck on an older version of organice, particularly if using it as a PWA (Home Screen App on iOS). This release fixes that underlying caching problem.
To ensure you receive this update and future ones correctly, you might need to perform a one-time manual action:
- iOS Home Screen App (PWA) Users: Please delete the existing organice bookmark/icon from your home screen and then re-install it by visiting the site in Safari and using "Add to Home Screen".
- Other Browser Users: A hard refresh (e.g., Ctrl+Shift+R or Cmd+Shift+R) might be necessary to clear the old cached version.
After performing this one-time action, future updates should load automatically as expected.
—
Switch from Create React App (CRA) to Parcel
This release marks a significant internal change: we have migrated our build tooling from Create React App (CRA) to Parcel.
Motivation:
Create React App, our previous build tool, has reached its End-of-Life (EOL) as announced by the React team (https://react.dev/blog/2025/02/14/sunsetting-create-react-app). This migration ensures the project remains maintainable and utilizes modern tooling.
Decision:
We chose Parcel (https://parceljs.org/), a zero-configuration web application bundler. The migration largely followed the official guide (https://parceljs.org/migration/cra/).
Key Changes & Benefits:
- /Modern Tooling:* Replaces the EOL CRA with an actively maintained build tool.
- /Future Upgrade Reliability:* Fixes the critical bug mentioned above, ensuring smoother updates going forward.
- /Simplified Build:* Reduces complexity by leveraging Parcel's built-in features.
- /SCSS Handling:* Integrated Sass/SCSS support allowed the removal of custom build logic (see commit
26fc36d0). - /Improved Dev Experience:* Assets like changelog files can now be updated and reloaded during development without restarting the server.
- /SCSS Handling:* Integrated Sass/SCSS support allowed the removal of custom build logic (see commit
- /Testing Adjustments:* Since Parcel doesn't manage Jest configuration like CRA did, the Jest setup was "ejected" and is now managed manually via configuration files (
babel.config.json,jest.config.json, etc.) (see commitb171dcca). - /Other Refinements:* Minor adjustments were made to how SVGs are handled in JSX, the service worker implementation, and the manifest file to align with Parcel's conventions.
This work was done in Pull Request #1014 and #1015.
For more detailed context on the decision and its consequences, please
refer to ADR-004: Using Parcel in our wiki.
What's Changed
- Added capture template variables to enable advanced dates by @dmorlitz in #838
- contrib/organice-webdav-traefik: Fix docker-compose file and update README.org by @edgar-vincent in #854
- fix: Conflated Routing by @munen in #847
- fix: Automatically sign out when Dropbox has expired access token by @munen in #850
- feat: Handle empty files by @munen in #853
- doc: Fix several links for the documentation by @munen in #856
- Contrib webdav post by @dmorlitz in #857
- Some UX changes in task modal by @munen in #862
- fix: Undo/Redo persists to storage, again by @munen in #861
- Upgrade Dropbox, switch to OAuth 2 and PKCE by @munen in #851
- build(deps): bump tmpl from 1.0.4 to 1.0.5 by @dependabot in #729
- build(deps): bump url-parse from 1.5.7 to 1.5.10 by @dependabot in #782
- Added setting to change textbox height in the description editor by @munen in #875
- fix: Proper route for changelog by @munen in #869
- fix: Make header sticky by @munen in #870
- fix: Start from the top by @munen in #878
- fix: Rendering of HTML in documentation by @munen in #881
- fix: Changelog has
backbutton inHeaderBarby @munen in #882 - doc: organice on Android with WebDAV server by @munen in #903
- fix: Use correct HTML anchor tag inside public.html by @josephmturner in #902
- Add filtering by description by @neildavidforrest in #907
- Parse inline markup non-greedily by @lechten in #910
- Fix typos by @lechten in #911
- Disable auto-capitalization for search by @neildavidforrest in #914
- Fixed rotation of table editor icons to reflect their action by @dmorlitz in #890
- issue 918 converting leading start ('*') to dash ('-') by @saikiransathpadi in #920
- feat: Configuration option for default file on startup by @munen in #922
- Deadline overlay UI improvements by @dmorlitz in #925
- 376 - fixed text discards while check/uncheck box when text has inline-markup by @saikiransathpadi in #928
- fix: Don’t replace all leading * in the description by @munen in #931
- Don't cancel swipe due to vertical movements by @neildavidforrest in #938
- Implements list manipulation functions by @kjmatsuda in #945
- Update Android/Firefox instructions in README by @pakelley in #947
- fix: Color of checkbox by @munen in #949
- feat(ux): Ticking a checkbox as part of a list item by @munen in #951
- fix: grammar on testimonial by @jcpst in #958
- doc: ADR for Syncronization back-ends strategy pattern by @munen in #961
- Add Contrib/organice-caddy-webdav by @edgar-vincent in #960
- feat: Capture Template substitution
%yexpanding to the raw year by @munen in #964 - fix: Capture template available everywhere, but capturing to one by @munen in #965
- feat: Print all content (including below the fold) by @munen in #969
- Clarify docs according (issue #628) by @schoettl in #975
- Fix whitespaces in JS string in README by @schoettl in #977
- Add basic flake.nix to get a dev shell on NixOS by @schoettl in #987
- fix: Prevent app crash when deleting a list item immediately after exiting edit mode by @kjmatsuda in #996
- doc: Clarify where to find docs (interactive tutorial vs. manual) by @munen in #991
- feat: Upgrade node to 16.20.2 by @munen in #998
- Feat: Upgrade Create-React-App to 4.0.3 by @munen in #999
- Upgrade to node 20.17.0 lts by @munen in #1000
- doc: Can I access local files? by @munen in #1003
- fix(995): Swiping vertically on iOS also allows horizontal swiping by @munen in #1012
- fix(1006): Creating a static /manifest.json by @munen in #1013
- chore: Switch from CRA to parcel by @munen in #1014
New Contributors
- @josephmturner made their first contribution in #902
- @neildavidforrest made their first contribution in #907
- @lechten made their first contribution in #910
- @saikiransathpadi made their first contribution in #920
- @kjmatsuda made their first contribution in #945
- @pakelley made their first contribution in #947
- @jcpst made their first contribution in #958
Full Changelog: 1.1.1...1.2
1.1.1: Merge pull request #846 from 200ok-ch/chore/better-error-logging
Switching from a rolling release to proper releases.