bingocode 1.1.75 → 1.1.76

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bingocode",
3
- "version": "1.1.75",
3
+ "version": "1.1.76",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "claude": "bin/claude-win.cjs",
@@ -997,8 +997,8 @@ export const CliMenuManager: React.FC = () => {
997
997
  return <StateDisplay type="empty" message={i18nMap[lang].emptyHistory} />;
998
998
  }
999
999
 
1000
- const LIST_H = Math.floor(MID_H * 0.7);
1001
- const ACTIONS_H = MID_H - LIST_H - 1; // -1 for separator/buffer
1000
+ const ACTIONS_H = 6;
1001
+ const LIST_H = Math.max(2, MID_H - ACTIONS_H - 1);
1002
1002
 
1003
1003
  if (historyMenuStage === 'window' && selectedHistory) {
1004
1004
  // Detailed View with Split
@@ -1061,46 +1061,46 @@ export const CliMenuManager: React.FC = () => {
1061
1061
  );
1062
1062
  }
1063
1063
 
1064
- // History List View (Default)
1065
- const HIST_VISIBLE = MID_H - 2;
1066
- const start = Math.min(listOffset, Math.max(0, groupedHistoryItems.length - HIST_VISIBLE));
1067
- const slicedItems = groupedHistoryItems.slice(start, start + HIST_VISIBLE);
1068
-
1069
- return (
1070
- <Box width={VIEW_W} height={MID_H} flexDirection="row" position="relative">
1071
- <Box flexDirection="column" flexGrow={1} paddingX={1}>
1072
- <SelectInput
1073
- key={`${historyCursor ?? 'first'}:${slicedItems.length}:${start}`}
1074
- items={slicedItems}
1075
- onSelect={item => {
1076
- if (String(item.value).startsWith('__group_')) return;
1077
- const session = historyList.find(h => h.id === item.value);
1078
- if (session) {
1079
- setSelectedHistory(session);
1080
- setHistoryMenuStage('window');
1081
- }
1082
- }}
1083
- itemComponent={({ isSelected, label }) => {
1084
- const it = groupedHistoryItems.find(i => i.label === label);
1085
- const isGroup = it?.isGroup;
1086
- const color = it?.color;
1087
- return (
1088
- <Box height={1} overflow="hidden">
1089
- <Text wrap="truncate" color={isGroup ? 'gray' : (color ? color : (isSelected ? 'cyan' : undefined))}>
1090
- {isSelected ? '> ' : ' '}{label}
1091
- </Text>
1092
- </Box>
1093
- )
1094
- }}
1095
- />
1096
- <Box marginTop="auto">
1097
- <Hint>{i18nMap[lang].historyHint}</Hint>
1098
- </Box>
1099
- </Box>
1100
- <ScrollBar total={groupedHistoryItems.length} offset={start} height={MID_H - 1} />
1101
- </Box>
1102
- );
1103
- }
1064
+ // History List View (Default)
1065
+ const HIST_VISIBLE = MID_H - 2;
1066
+ const start = Math.min(listOffset, Math.max(0, groupedHistoryItems.length - HIST_VISIBLE));
1067
+ const slicedItems = groupedHistoryItems.slice(start, start + HIST_VISIBLE);
1068
+
1069
+ return (
1070
+ <Box width={VIEW_W} height={MID_H} flexDirection="row" position="relative">
1071
+ <Box flexDirection="column" flexGrow={1} paddingX={1}>
1072
+ <SelectInput
1073
+ key={`${historyCursor ?? 'first'}:${slicedItems.length}:${start}`}
1074
+ items={slicedItems}
1075
+ onSelect={item => {
1076
+ if (String(item.value).startsWith('__group_')) return;
1077
+ const session = historyList.find(h => h.id === item.value);
1078
+ if (session) {
1079
+ setSelectedHistory(session);
1080
+ setHistoryMenuStage('window');
1081
+ }
1082
+ }}
1083
+ itemComponent={({ isSelected, label }) => {
1084
+ const it = groupedHistoryItems.find(i => i.label === label);
1085
+ const isGroup = it?.isGroup;
1086
+ const color = it?.color;
1087
+ return (
1088
+ <Box height={1} overflow="hidden">
1089
+ <Text wrap="truncate" color={isGroup ? 'gray' : (color ? color : (isSelected ? 'cyan' : undefined))}>
1090
+ {isSelected ? '> ' : ' '}{label}
1091
+ </Text>
1092
+ </Box>
1093
+ )
1094
+ }}
1095
+ />
1096
+ </Box>
1097
+ <ScrollBar total={groupedHistoryItems.length} offset={start} height={MID_H - 2} />
1098
+ <Box position="absolute" bottom={0} left={1} width={VIEW_W - 4}>
1099
+ <Hint>{i18nMap[lang].historyHint}</Hint>
1100
+ </Box>
1101
+ </Box>
1102
+ );
1103
+ }
1104
1104
 
1105
1105
  // Provider
1106
1106
  if (page === 'provider') {
@@ -1134,7 +1134,7 @@ export const CliMenuManager: React.FC = () => {
1134
1134
  const sliced = entries.slice(start, start + visible);
1135
1135
  return (
1136
1136
  <Box width={VIEW_W} height={MID_H} flexDirection="column">
1137
- <ScrollBar total={entries.length} offset={start} height={visible} />
1137
+ <ScrollBar total={entries.length} offset={start} height={visible - 1} />
1138
1138
  {sliced.map(([k, v]) => <Text key={k}>{k}: {typeof v === 'object' ? JSON.stringify(v) : String(v)}</Text>)}
1139
1139
  <Hint>
1140
1140
  ↑/k and ↓/j scroll · {start+1}-{Math.min(start+visible, entries.length)}/{entries.length}