Repository navigation
Tine Beta: a second, smaller Tine #617
Replies: 6 comments 16 replies
|
@Brikas @EllisMorrow @Dieterbe @hestratos @lingkuma @da5nsy hi - you are few of those who engage with Tine the most, so I'm tagging you in hopes you could spare a moment and test this new release and report bugs that you spot. I hope it will turn out to feel better than the current master (it does for me). Thanks! |
Good call. With AI, it's better to be strict when merging new code, rather than trying to fix bad code later. Sometimes that means going back to the last known good version. I never used 0.6.5 so I don't know what "peak tine" looks like. I started tine recently. In support of your awesome work, I will try to use beta as my daily driver, and report any issues. Most of my issues are already known & listed in the issue tracker. My main issue is that many queries simply don't show any result. I don't see any slowdowns similar to what @EllisMorrow reported, but i am on linux. So far, i haven't noticed a difference yet with master. |
|
The windows 32bit build which was introduced in v0.6.97 is missing from the 0.7.0-beta.1 release. It is not an urgent requirement, please just bring it back when appropriate. v0.6.987 is good enough to run on my x86 win pad now. |
|
Here's the version I'm using: I haven't run into the issue mentioned in #617 (reply in thread). The issue at #590 has been fixed. I'll keep using it, and if I run into any issues, I'll report them here. |
|
To be honest, I never really understood the previous architectural decisions very well. I like this approach more; everything else seemed like over-engineering to me, although I did like supporting CRDTs (technically), and also because it could enable some interesting things. But to be honest, it’s quite complicated (let’s see how https://github.com/outlmd/outl gets on). As someone who uses several devices, synchronisation between them is also something I’d like to have (rather than relying on Syncthing as I have been doing so far), but this has always been quite complex, especially when you’re also supporting files. I don’t know what the roadmap will look like now (7.x, 8.x milestones, etc.). I’ll keep testing and reporting things as I can, with the limited time I have. |
|
beta2 is a huge improvement over beta1. been really enjoying this build. |

Uh oh!
There was an error while loading. Please reload this page.
Starting today Tine comes in two channels. Stable is the Tine you have now. Tine Beta is a separate app you can install next to it, where new work will land first from now on. This first Beta is more than a channel, though: it is a rebuilt Tine. This post says what it is, why I rebuilt it, and how it was made.
Why
Since around 0.6.9x, Tine has felt worse to many of you, and to me: writes rejected on Android, launches stuck waiting for the index, renames taking a minute on large graphs, backlinks slow or missing. Each of those got fixed, and each fix was followed by a new problem of the same kind. When I looked at why, the answer was not one bug. Tine had grown a second copy of your graph (a SQLite index kept in sync with the Markdown), plus the machinery to keep the two agreeing, and most of the recent bugs lived in the space between them. The code had roughly tripled since 0.6.5, and nobody, me included, could reason about it with confidence anymore.
How it got there: after 0.6.5 I asked an AI agent (GPT-5.6-Sol) to build Managed Storage. The work got derailed by adversarial review standards far beyond what a local notes app needs, which Sol adopted instead of stopping to ask me. Days of non-stop implementation followed and produced a great deal of code, and most of the work since has gone into trying to make that code good. Beta is the decision that starting again from 0.6.5 is easier than finishing that job.
What Beta is
Beta starts again from 0.6.5, the last version where your Markdown files were the only truth. Storage was rebuilt first, as one module that owns reading, saving, watching files and its caches, with a small interface everything else goes through. There is no database. Then every feature added since 0.6.5 was brought over, family by family (32 of them), with stable's current behaviour as the reference: queries, Concord, sheets, export, the editor changes, the settings. A few things were deliberately left out, mainly Managed Storage (already removed from stable) and the SQLite index itself.
The result does what stable does with about a third less code, and it is faster where you wait. On my test graphs, against current stable:
These are Linux measurements; I have not measured Windows yet.
How it was made
The same agents as before, under stricter rules. Every change had to keep one place responsible for each question (what is this page's name, which blocks link here), state its cost up front, and go through the one save path. Every batch had to pass the full test suite, open and save my entire anonymised graph without changing a byte it should not, and pass end-to-end tests in the real app. Every few batches, a sweep over the whole codebase looked for rule violations and data-safety problems, and performance was measured against 0.6.5, not just against stable, so slow drift could not hide. This did not make the process bug-free. It made the bugs cheaper to find, and it kept the code from growing faster than the features.
Stable and Beta from now on
Several of you asked for a stable and a testing channel, and you were right. Stable now gets fixes for serious problems only. When this rebuilt Beta has been used enough, on enough platforms, that I trust it, it becomes the next stable release (0.7.0). After that, Beta stays: it is where new features land first, and each Beta that proves itself becomes the next stable release.
Trying it
Tine Beta
0.7.0-beta.1is available for Linux, Windows, macOS and Android (as an APK from the GitHub release). It is a separate app with its own settings, so it installs next to stable and does not touch it. On desktop, its first launch copies your stable settings and graph list; on Android you open your graph folder once more. Beta updates itself only to newer Beta builds.Please do not open the same graph in stable and Beta at the same time. Using both on one graph one after the other is fine.
What helps most is a report of anything Beta does worse than stable: something missing, slower, or different. The version string (it says Beta) and the steps are usually enough. Bugs that are in both versions are still welcome, but regressions are what decide when Beta can become stable.
All reactions