feat: record canonical session snapshots via adapters (#511)

This commit is contained in:
Affaan Mustafa
2026-03-16 01:35:45 -07:00
committed by GitHub
parent bae1129209
commit 426fc54456
7 changed files with 1025 additions and 82 deletions

View File

@@ -11,10 +11,26 @@ const TARGET_TYPE_TO_ADAPTER_ID = Object.freeze({
'session-file': 'claude-history'
});
function createDefaultAdapters() {
function buildDefaultAdapterOptions(options, adapterId) {
const sharedOptions = {
loadStateStoreImpl: options.loadStateStoreImpl,
persistSnapshots: options.persistSnapshots,
recordingDir: options.recordingDir,
stateStore: options.stateStore
};
return {
...sharedOptions,
...(options.adapterOptions && options.adapterOptions[adapterId]
? options.adapterOptions[adapterId]
: {})
};
}
function createDefaultAdapters(options = {}) {
return [
createClaudeHistoryAdapter(),
createDmuxTmuxAdapter()
createClaudeHistoryAdapter(buildDefaultAdapterOptions(options, 'claude-history')),
createDmuxTmuxAdapter(buildDefaultAdapterOptions(options, 'dmux-tmux'))
];
}
@@ -60,7 +76,7 @@ function normalizeStructuredTarget(target, context = {}) {
}
function createAdapterRegistry(options = {}) {
const adapters = options.adapters || createDefaultAdapters();
const adapters = options.adapters || createDefaultAdapters(options);
return {
adapters,