The old squash-merge workflow closed the branch, which made it
impossible to keep working after squashing. Now squash uses
git reset --soft to the merge base, preserving all changes as a
single commit on the current branch. Rolls back to the original
HEAD on failure.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The config command already parsed the key but ignored it when calling
set() and printing the result. Also clarify sync vs async convention
in CLAUDE.md and log invalid memory config instead of silently falling
back.
The validator is now reusable by both the CLI config command and
the VM startup path, which falls back to the default if the stored
value is invalid. Also lowers the default memory limit to 16G and
makes config.load() resilient to malformed JSON.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Allow users to configure container memory limit (default 32G) via
`sandlot config memory <value>` instead of hardcoding it.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move in_review flag set inside try block so finally always clears it,
and actively clear stale flags in list when Claude is no longer active.
Previously a crash between setting the flag and entering try would
leave the session stuck in review state.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Review status now requires Claude to be active, preventing stale flags
from showing after a crash. Consolidates icon/color maps into a single
styles record and defers setting in_review until the container is up.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>