feat: "ARIA hart neu starten"-Button (docker restart aria-core)
Zweiter Eskalations-Button neben dem Reparieren-Button — fuer Faelle wo doctor --fix nicht reicht (Run alive aber haengt im Tool-Call). Mit Confirmation-Dialog damit's nicht versehentlich gedrueckt wird. Wege: - App-Settings: Reparatur-Sektion, zwei Buttons (Reparieren + Hart neu) - App-Thinking-Bubble: 🔧 + 🚨 + Abbrechen - Diagnostic-Thinking-Indicator: 🔧 + 🚨 + Abbrechen - Diagnostic-Server: POST /api/aria-restart → child_process exec `docker restart aria-core` - Bridge: rvs aria_restart → HTTP zu Diagnostic Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,7 @@ import {
|
||||
ToastAndroid,
|
||||
AppState,
|
||||
NativeModules,
|
||||
Alert,
|
||||
} from 'react-native';
|
||||
import AsyncStorage from '@react-native-async-storage/async-storage';
|
||||
import RNFS from 'react-native-fs';
|
||||
@@ -1251,7 +1252,22 @@ const ChatScreen: React.FC = () => {
|
||||
</Text>
|
||||
<View style={{flexDirection: 'row', gap: 6}}>
|
||||
<TouchableOpacity style={[styles.thinkingCancel, {borderColor: '#FF9500'}]} onPress={() => rvs.send('doctor_fix' as any, {})}>
|
||||
<Text style={[styles.thinkingCancelText, {color: '#FF9500'}]}>{'🔧 Reparieren'}</Text>
|
||||
<Text style={[styles.thinkingCancelText, {color: '#FF9500'}]}>{'🔧'}</Text>
|
||||
</TouchableOpacity>
|
||||
<TouchableOpacity
|
||||
style={[styles.thinkingCancel, {borderColor: '#FF3B30'}]}
|
||||
onPress={() => {
|
||||
Alert.alert(
|
||||
'ARIA hart neu starten?',
|
||||
'Container-Restart (~15s). Laufende Anfragen gehen verloren.',
|
||||
[
|
||||
{ text: 'Abbrechen', style: 'cancel' },
|
||||
{ text: 'Neu starten', style: 'destructive', onPress: () => rvs.send('aria_restart' as any, {}) },
|
||||
],
|
||||
);
|
||||
}}
|
||||
>
|
||||
<Text style={[styles.thinkingCancelText, {color: '#FF3B30'}]}>{'🚨'}</Text>
|
||||
</TouchableOpacity>
|
||||
<TouchableOpacity style={styles.thinkingCancel} onPress={cancelRequest}>
|
||||
<Text style={styles.thinkingCancelText}>Abbrechen</Text>
|
||||
|
||||
@@ -1306,6 +1306,29 @@ const SettingsScreen: React.FC = () => {
|
||||
>
|
||||
<Text style={[styles.clearButtonText, {color: '#FF9500'}]}>{'🔧 ARIA reparieren'}</Text>
|
||||
</TouchableOpacity>
|
||||
<Text style={[styles.toggleHint, {marginTop: 12}]}>
|
||||
Wenn auch Reparieren nicht hilft — Container hart neu starten.
|
||||
ARIA ist dann ~15 Sekunden weg und kommt mit frischem State zurueck.
|
||||
Laufende Anfragen gehen verloren.
|
||||
</Text>
|
||||
<TouchableOpacity
|
||||
style={[styles.clearButton, {marginTop: 8, backgroundColor: 'rgba(255,59,48,0.15)'}]}
|
||||
onPress={() => {
|
||||
Alert.alert(
|
||||
'ARIA hart neu starten?',
|
||||
'Container-Restart (~15s). Laufende Anfragen gehen verloren.',
|
||||
[
|
||||
{ text: 'Abbrechen', style: 'cancel' },
|
||||
{ text: 'Neu starten', style: 'destructive', onPress: () => {
|
||||
rvs.send('aria_restart' as any, {});
|
||||
ToastAndroid.show('Container-Restart angestossen…', ToastAndroid.LONG);
|
||||
}},
|
||||
],
|
||||
);
|
||||
}}
|
||||
>
|
||||
<Text style={[styles.clearButtonText, {color: '#FF3B30'}]}>{'🚨 ARIA hart neu starten'}</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
||||
</>)}
|
||||
|
||||
Reference in New Issue
Block a user