Skip to content

JungSH28/tonarino

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

tonarino 隣の

As You Code, As You Will. Immortality.

tonarino is a version control system built around preserving traces, not just versions.

It sits quietly beside you — not pulling you forward, just making sure nothing you've done disappears.


Why

A note written on an iPad vanished because iCloud synced an older version over it before the new one could upload. The change was gone. No trace, no recovery.

That shouldn't happen. Once a system has seen your work, it should never lose it.

tonarino preserves traces, not just versions.


What it is

A daemon-based, append-only trace system — and eventually a comfortable alternative to Git for people who want trace-first workflows.

Every save is recorded. Every change is kept. Rolling back doesn't erase what came after. Erasing is an explicit, deliberate act — not an accident.

You can run Git-less day-to-day and still get a familiar muscle-memory layer: optional git-compat profile maps Git-shaped commands and output (status, log, commit, …) onto tonarino semantics.


Structure

Book          entire workspace
└── Chapter   project / folder
    └── Page  file
                timeline (single append-only sequence per file)
                ├── Bookmark   system anchor (push/pull basis; branch-like pointers live here, not as Git branches)
                └── Tag        user annotation (commit-message feel)

Metadata (what attaches to data)

  • Author — who edited; attached automatically to each change (not a structural layer).
  • Bookmark — system-facing anchor on the timeline; carries sync identity and optional branch-like fields (e.g. active view name). Can be applied automatically by policy instead of per-file manual tagging.
  • Tag — user-facing note on a point in time; similar role to a commit message or sticky explanation.

Seeing “branches” without Git branches

There is one physical timeline per file (append-only). Bookmarks define how you slice and present that timeline — switch active bookmark context to browse, restore, or sync from different anchors. Same traces; different lenses.


Core principles

  • Append-only — records only grow, never shrink by default
  • Trace over version — the timeline is the source of truth
  • No silent loss — the system warns before anything is removed
  • Erase is explicit — user-initiated, with full disclosure of what will be lost

The one real limit

Changes in RAM before a save cannot be captured without OS-level access. That's a true hardware constraint, not a design choice — and it'll be addressed when tonarino eventually runs on its own OS layer.

Current tonarino: "What's been saved will never be lost." Future tonarino: "What hasn't been saved yet won't be lost either."


Commands

Three styles, all equivalent. Plus user-defined aliases.

Action Tonari Book English
Create Book hajimeru begin init
Open Chapter hiraku open chapter
Start tracking sobani write track
Stop tracking hanarete pause untrack
Track all minna sobani write all track all
Untrack all minna hanarete pause all untrack all
Keep auto-tracking (rules) tsuzuku stay watch
Status ima state status
View timeline ayumi read log
Browse timeline saguru browse browse
Restore to point yobu revert restore
Create Bookmark shiori mark commit
Create Tag fusen note note
Fold segment / cumulative diff musubu bind bind
Push okuru publish push
Pull morau receive pull
Archive owarita archive done
Archive all minna owarita archive all done all
Lock final state kore seal lock
Erase traces kesu burn burn
Ignore mienai fold fold
Emergency recover tasukete remember recover

minna sobani / track all is a one-shot “track everything now”. watch (and chapter rules) keeps new paths under tracking without repeating that command.

bind combines spans of timeline changes into one logical step. Two modes are planned: fold (still append-only — hide granularity in the UI while keeping traces) and merge (actually collapse into a single recorded step; finer detail moves to archive / explicit retention rules).

Word meanings (Tonari style)
hajimeru  始める   to begin
hiraku    開く     to open
sobani    傍に     beside you
hanarete  離れて   step away
minna     みんな   everyone / all
ima       今       now
ayumi     歩み     footsteps (the path you've walked)
saguru    探る     to feel around, to search
yobu      呼ぶ     to call (calling the past back)
shiori    栞       bookmark
fusen     付箋     sticky note
okuru     送る     to send
morau     もらう   to receive
owarita   終わった it's done
kore      これ     this (this is it)
kesu      消す     to erase (traces fade)
mienai    見えない can't see it (ignore this)
tasukete  助けて   help me
musubu    結ぶ     to tie / bind (fold segments together)
tsuzuku   続く     to continue (keep watching / auto-track)

Collaboration

No Git-style branches diverging the object graph — one timeline per file, with bookmark-scoped views for “which anchor am I working from?”.

When two authors work on the same file, their timelines merge — each change tagged with its author. Conflicts don't block work; they can be resolved later. Experimenting means working directly on the timeline, then rolling back if needed — with everything after the rollback still preserved.


Roadmap

MVP

  1. Append-only trace recording
  2. First snapshot on sobani
  3. Crash recovery
  4. yobu — restore to any point

Later

  1. Bookmark / Tag / Book hierarchy (bookmark-driven timeline views + sync)
  2. musubu / bind — fold vs merge modes for cumulative edits
  3. tsuzuku / watch — persistent auto-tracking rules
  4. Optional git-compat command & output shims
  5. owarita — archive
  6. okuru / morau — push/pull (Bookmark-based)
  7. Collaboration + timeline merge
  8. Binary diff (bsdiff / xdelta)
  9. Integrity — hash chain + monotonic sequence
  10. External time anchor
  11. Timelapse UI
  12. Remote backup plugin system (azukeru — 預ける, to entrust)

Implementation

  • Language: Rust
  • Storage: .tonarino/ alongside tracked files, excluded from cloud sync
  • Daemon: always running, survives terminal close, auto-restores after reboot
  • Platform support: macOS first → Windows / Linux → mobile later

tonarino — 隣の — beside you.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors