Skip to content

GitTrix API

Core router API for durable and ephemeral storage routing.

new GitTrix({
durable,
ephemeral,
storeDir,
defaultEviction,
evictionSweepIntervalMs,
})
interface GitTrixOptions {
durable: DurableAdapter
ephemeral: EphemeralAdapter
storeDir?: string
defaultEviction?: Partial<EvictionPolicy>
evictionSweepIntervalMs?: number
}

durable must expose capabilities().git === true, or construction throws CAPABILITY_MISSING.

Default storeDir:

~/.gittrix/sessions
await gittrix.init()
const session = await gittrix.startSession({
task: 'update docs',
durablePath: '/path/to/repo',
durableBranch: 'main',
})
const activeAgain = await gittrix.getSession(session.id)
const sessions = await gittrix.listSessions()
const diff = await session.diff()
await session.promote({
selector: { mode: 'all' },
message: 'docs: update readme',
})
await gittrix.close()
interface StartSessionOpts {
task: string
durablePath?: string
durableRef?: string
durableBranch?: string
eviction?: Partial<EvictionPolicy>
}
{
ttlIdleMs: 4 * 60 * 60 * 1000,
ttlAbsoluteMs: null,
untilPromote: true,
manual: false,
}

Default sweep interval:

5 * 60 * 1000

The current core uses Node APIs, including EventEmitter and a filesystem-backed session store. Do not assume full Workers or Deno runtime support for the current implementation.