backstep 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "backstep",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Press ctrl+z to rewind everything Claude did in its last turn: file edits, shell commands, and database and tool changes.",
5
5
  "types": "./types/index.d.ts",
6
6
  "userConfig": {
@@ -132,6 +132,8 @@ test('with nothing to undo the band still holds the key, and a press says there
132
132
 
133
133
  const ui = await $.ui.mount({ ...BAND, surface: 'terminal' })
134
134
  expect((await ui.find({ type: 'Text', text: /nothing to undo yet/ }))).toBeTruthy()
135
+ // The mark: the front triangle in the terminal's own color, the one behind in the logo's pink.
136
+ expect((await ui.find({ type: 'Text', text: '◀', props: { color: '#ee7bb6' } }))).toBeTruthy()
135
137
  await ui.press({ key: 'undo' })
136
138
  expect(toasts[0]).toContain('Nothing to undo yet')
137
139
  await ui.unmount()
@@ -16,8 +16,9 @@ const armed = atom({ plugin: 'backstep', key: 'armed' } as const, null as number
16
16
  // The keys bound to undo, read as a session starts and when the person changes
17
17
  // them. Kept in state, not a variable, so the band redraws with the new key.
18
18
  const keys = atom({ plugin: 'backstep', key: 'keys' } as const, ['ctrl+u'] as string[])
19
- // Backstep's mark, two rewind triangles, in the terminal's own black or white.
20
- const MARK = '◀◀'
19
+ // Backstep's mark, as on the logo: the front rewind triangle in the terminal's
20
+ // own black or white, the one behind it in the logo's pink.
21
+ const PINK = '#ee7bb6'
21
22
  // How long the "press again to undo" question waits before it lets go.
22
23
  const CONFIRM_MS = 5000
23
24
 
@@ -598,7 +599,9 @@ export const register: Register = (on, options) => {
598
599
  if (r?.phase === 'running') {
599
600
  return (
600
601
  <Box>
601
- <Text bold>{MARK} Rewinding </Text>
602
+ <Text bold>◀</Text>
603
+ <Text color={PINK} bold>◀</Text>
604
+ <Text bold> Rewinding </Text>
602
605
  <Text>{bar(r.frame)}</Text>
603
606
  <Text dimColor> undoing the last turn…</Text>
604
607
  </Box>
@@ -632,7 +635,9 @@ export const register: Register = (on, options) => {
632
635
  if (target && (await read($, armed)) !== null) {
633
636
  return (
634
637
  <Box>
635
- <Text color="warning" bold>{MARK} Undo Claude's last turn? </Text>
638
+ <Text bold>◀</Text>
639
+ <Text color={PINK} bold>◀</Text>
640
+ <Text color="warning" bold> Undo Claude's last turn? </Text>
636
641
  <Text dimColor>{summary(target)} </Text>
637
642
  <Button key="undo" action={UNDO_ACTION} plain onPress={() => void pressUndo($)}>
638
643
  {`${label} again to undo`}
@@ -650,7 +655,9 @@ export const register: Register = (on, options) => {
650
655
  // with nothing to undo, a press says so rather than doing nothing.
651
656
  return (
652
657
  <Box>
653
- <Text bold>{MARK} </Text>
658
+ <Text bold>◀</Text>
659
+ <Text color={PINK} bold>◀</Text>
660
+ <Text> </Text>
654
661
  <Text dimColor>{target ? `Last turn: ${summary(target)} ` : 'Backstep is on · nothing to undo yet '}</Text>
655
662
  <Button key="undo" action={UNDO_ACTION} plain dimColor onPress={() => void pressUndo($)}>
656
663
  {`${label} to undo`}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "backstep",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Undo for everything your agents touch: an MCP proxy that makes agent actions reversible.",
5
5
  "scripts": {
6
6
  "dev": "node src/cli.ts",