mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-18 00:56:30 +03:00
feat(live): make live sessions recoverable (#125)
* feat(live): make live sessions recoverable tired of live mode losing the plot when the browser moved faster than the agent. now the state is boring: journal it, resume it, finish it. --- - add durable live-session journal, checkpoint events, and status/resume/complete commands - split browser session storage into a testable helper and harden accept/discard completion - fix Astro live CSS preview mode and add recovery/live E2E coverage - declare Bun as the package manager and add a Bun-native audit script * fix(live): acknowledge fallback recovery states * fix(live): flush recoverable handoffs promptly * fix(live): keep recovery handoffs accurate * fix(live): preserve poll reply metadata * fix(live): treat event HTTP failures as failed sends * fix(live): acknowledge manual completion through helper * Add .impeccable project state paths * Fix live disconnect recovery phase * Refine live CSS authoring contract * Test live CSS authoring guidance * Harden live LLM E2E recovery * Fix live recovery review issues --------- Co-authored-by: Paul Bakaus <paulbakaus@pauls-mbp-3.lan>
This commit is contained in:
co-authored by
Paul Bakaus
parent
88b82ae5f5
commit
d874af046a
+1
-1
@@ -744,7 +744,7 @@ async function build() {
|
||||
const skillsDest = path.join(ROOT_DIR, configDir, 'skills');
|
||||
|
||||
if (fs.existsSync(skillsSrc)) {
|
||||
// Preserve per-project script artifacts (e.g. live-mode config.json)
|
||||
// Preserve legacy per-project script artifacts (e.g. live-mode config.json)
|
||||
// across the rm + recopy. The build intentionally doesn't ship them,
|
||||
// so without this the sync destroys local state on every rebuild.
|
||||
const stashed = stashPerProjectArtifacts(skillsDest);
|
||||
|
||||
@@ -5,9 +5,8 @@ import path from 'path';
|
||||
// belong to the consuming project, not the distributable skill. The build
|
||||
// excludes them from dist, and the harness-sync step preserves them across
|
||||
// the rm+recopy so local state isn't destroyed on every rebuild.
|
||||
// - config.json: live-mode inject target list for the current project.
|
||||
// Written by the agent at first /impeccable live; tied to the project's
|
||||
// filesystem layout. Losing it resets the user's glob + exclusions.
|
||||
// - config.json: legacy live-mode inject target list for existing projects.
|
||||
// New installs write project config at .impeccable/live/config.json instead.
|
||||
export const PER_PROJECT_SCRIPT_ARTIFACTS = new Set(['config.json']);
|
||||
|
||||
// Walk the harness-dir skill tree and return any per-project script
|
||||
|
||||
Reference in New Issue
Block a user