Repository navigation
Still on the way to 0.7.0 :) #342
Replies: 6 comments 8 replies
|
Just a suggestion for the iOS version: maybe you could ship a TestFlight build first. This way you can avoid most of the form‑filling overhead for now, before preparing for the official App Store launch. |
|
@martinkoutecky Because Tine relies heavily on AI for assistance with both development and design thinking, and AI itself is constantly improving and evolving, I think that when some features already work well enough, Tine could sometimes adopt a kind of staggered iteration approach. What I mean is that, for certain existing features, if there is no urgent need to improve them immediately, it may sometimes make sense to wait until a newer and more capable generation of AI becomes available, or until AI has gone through several further iterations, before asking it to revisit, develop, or upgrade those features. This kind of staggered development may have an advantage: AI will almost certainly become more capable over time, with stronger reasoning and coding abilities. For some parts of Tine, postponing further development could therefore actually be more cost-effective. Something that might take a month to develop today could perhaps take only a week in the future, while also producing a better result. I personally believe that a clear-thinking developer working with AI assistance can have greater development capability than someone working without AI assistance. Human knowledge and experience are inevitably limited, while AI can draw from a very broad range of data and experience, and its capabilities continue to improve. Whether development is done entirely by humans or by humans working together with AI, there will inevitably be some cost of trial and error. As long as we are trying to make something better, trial and error is ultimately unavoidable. It is part of the process of progress. I would also like to share with Martin two small excerpts from the root prompt / personalized base prompt that I use when developing with AI:
|
|
For my personal use, Tine v0.6.93 has now basically reached the point where it can serve as my primary tool. However, one of its most noticeable weaknesses at this stage is that there are still quite a lot of small bugs and rough edges in everyday use. I suspect that other people who, like me, already use Tine as one of their main tools may feel similarly. Once Managed Storage reaches a certain level of maturity—perhaps sometime after 0.7.0?—I think it may be worth spending some focused time fixing a substantial portion of the bugs that affect basic everyday use, as well as addressing some smaller but highly practical feature requests, before moving further into the next major areas of development. At the same time, I would also suggest that, when working on larger, more difficult, and time-consuming problems in the future, it may be useful to periodically set aside some time for smaller everyday issues and highly practical minor feature requests. This could help avoid a situation where work on one major feature causes most other parts of the product to remain relatively static for a long period of time. I think this kind of balance could help Tine continue improving more evenly even while a major project is under development. The larger work can keep moving forward—perhaps a little more slowly—while these periodic intervals of everyday maintenance can steadily make the daily experience more polished and reliable. This would also mean that users would not have to wait a very long time before frequently encountered basic issues and small but useful features receive attention. |
|
Another longer-term direction I think could be very important for Tine is the plugin system. After looking more closely at what Tine already has, I think the current foundation is actually very good: a capability-limited WebAssembly architecture, explicit permissions, independent distribution, a community catalogue, and a strong safety model. So the important question is no longer whether Tine should have plugins, but how much of Tine can eventually be extended through them. Perhaps around 0.9.0, it could be worth aiming for a substantially more mature and capable plugin API. The principle I have in mind is: a wide extension surface with narrow, explicit permissions. Plugins should eventually have enough well-designed extension points to build substantial features, while still avoiding unrestricted access to things like the DOM, filesystem, processes, or network. I think this is especially important because Tine currently still depends heavily on one core developer for most significant new capabilities, while externally written application code is deliberately not merged into the core. A powerful plugin system could be the natural middle ground: Martin can keep the core stable, coherent, and secure, while other people can extend Tine without interfering with it. This becomes even more valuable in the AI era. More ordinary users can now build useful software with AI assistance, and many future needs will be highly personalized—sometimes useful only to one workflow, profession, small group, or even one person. Those features do not all need to become part of Tine's core if the plugin system gives users enough room to build them themselves. Ideally, even if core development slowed down significantly—or Martin stopped developing Tine for several years—the software could still continue gaining meaningful capabilities through its plugin ecosystem. If this is done well, I think it would give Tine much more long-term vitality and also greatly reduce one potential negative perception of the project: that its future development and extensibility depend too heavily on a single developer. A stable core can depend on one maintainer; Tine's wider ecosystem does not have to. |
|
A lot of bugs have been fixed over the past week, along with several nice improvements, and the progress is really noticeable. Among the releases since v0.6.9, v0.6.98 feels noticeably more reliable in Direct Files mode. For me, it is gradually getting close to the level of reliability I felt with v0.6.5. Many of the issues that appeared after the underlying refactor in v0.6.9 have now been resolved to a large extent, and the overall experience is getting closer and closer to the reliability that v0.6.5 had. It’s great to see Tine moving in a positive direction again. And, jokingly, it feels like Tine took a little detour for a month — but now the car is heading toward new goals again. 😄 |
|
Hi @martinkoutecky. |
Uh oh!
There was an error while loading. Please reload this page.
Hi all! Sorry for the long wait, and also for not responding to discussions here. Turns out I have not turned on notifications for discussions and missed these. I will keep track of it now.
I am still working on the new Managed Storage (MS) backend, and I am making sure that Direct Files (DF), which is more or less the old backend, is solid and the work on MS does not interfere with it. (DF is "more or less" the old backend in the sense that I replaced the old custom made indices, caches, queries etc. internally with SQLite, of the same shape as the one derived from the oplog in MS, so that I am not maintaining two unrelated ways of doing the same thing).
I think things are converging, but slowly. The reason this is such a mess is self-inflicted: I had a rule that the work is divided into small chunks, each has a specification written, and before it gets implemented, it gets a verification by an independent verifier. The verifier was supposed to come with "adversarial" scenarios - basically "will this work if the network disconnects at exactly such and such moment?" (or power goes out, or ...). However, the agents took "adversarial" too far, to "malicious" -- so the implementers invented all kinds of ways to protect against custom crafted bytes that could break things. So the engine ended up overengineered (for what Tine actually needs), slow, buggy, etc. The lesson is to be careful what I ask for, and also to trust the agents a bit more and do less verification during the implementation process, and maybe only run an audit look at the end. (Now - I started when SotA was Opus 4.8 and GPT-5.5; so things change and what worked then does not quite work now...)
I am now getting the Android version to a shape where it is not obviously broken - that is, I can enable managed storage, set up sync, and it works for my simple use. When I get there, I will release 0.6.94.
I am also implementing an interesting design for #337, more on that when the release lands - thanks to @EllisMorrow and @sulisu for their input.
Also enough people now contributed that I want to get the iOS app out, but that involves filling in forms etc. which competes with my keyboard time on other tasks. But it is getting closer too.
Feel free to say anything and I will try to respond to the other discussion threads too.
All reactions