prep: Fix increment script to auto-commit dirty worktree before version bump
This commit is contained in:
+3
-3
@@ -11,20 +11,20 @@ hotkey=Ctrl+Alt+V
|
||||
type_delay_us=8000
|
||||
max_record_seconds=30
|
||||
# always-on VAD controls
|
||||
always_on=1
|
||||
always_on=0
|
||||
# legacy window size (unused by new VAD pipeline, kept for compatibility)
|
||||
always_on_window_ms=1400
|
||||
|
||||
# live level threshold (0.0 - 1.0)
|
||||
vad_peak_threshold=0.0460
|
||||
# level must stay above threshold this long before speech starts
|
||||
vad_trigger_ms=100
|
||||
vad_trigger_ms=153
|
||||
# level must stay below threshold this long before speech ends
|
||||
vad_release_ms=300
|
||||
# include this much pre-trigger audio in transcript segment
|
||||
vad_preroll_ms=500
|
||||
# discard segments shorter than this
|
||||
vad_min_speech_ms=250
|
||||
vad_min_speech_ms=692
|
||||
# hard cap for one speech segment
|
||||
vad_max_speech_ms=15000
|
||||
|
||||
|
||||
+34
-5
@@ -37,6 +37,10 @@ EXAMPLES:
|
||||
./increment_and_push.sh -m "Add live debug indicators"
|
||||
./increment_and_push.sh -M "Breaking config format update"
|
||||
./increment_and_push.sh -r -m "Release minor update"
|
||||
|
||||
NOTES:
|
||||
- If the working tree is dirty, the script auto-commits pending changes first
|
||||
as: prep: <commit message>
|
||||
EOF
|
||||
}
|
||||
|
||||
@@ -47,11 +51,36 @@ check_git_repo() {
|
||||
fi
|
||||
}
|
||||
|
||||
require_clean_worktree() {
|
||||
if ! git -C "$ROOT_DIR" diff --quiet || ! git -C "$ROOT_DIR" diff --cached --quiet; then
|
||||
print_error "Working tree is not clean. Commit or stash changes before running this script."
|
||||
exit 1
|
||||
has_pending_changes() {
|
||||
if ! git -C "$ROOT_DIR" diff --quiet; then
|
||||
return 0
|
||||
fi
|
||||
if ! git -C "$ROOT_DIR" diff --cached --quiet; then
|
||||
return 0
|
||||
fi
|
||||
if [[ -n "$(git -C "$ROOT_DIR" ls-files --others --exclude-standard)" ]]; then
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
auto_commit_pending_changes() {
|
||||
local message="$1"
|
||||
|
||||
if ! has_pending_changes; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
print_warning "Working tree is dirty. Auto-committing pending changes before version bump."
|
||||
git -C "$ROOT_DIR" add -A
|
||||
|
||||
if git -C "$ROOT_DIR" diff --cached --quiet; then
|
||||
print_warning "No staged changes after auto-add; continuing."
|
||||
return 0
|
||||
fi
|
||||
|
||||
git -C "$ROOT_DIR" commit -m "prep: ${message}" >/dev/null
|
||||
print_success "Committed pending changes: prep: ${message}"
|
||||
}
|
||||
|
||||
latest_version_tag() {
|
||||
@@ -221,7 +250,7 @@ fi
|
||||
|
||||
print_status "voice_linux increment and push"
|
||||
check_git_repo
|
||||
require_clean_worktree
|
||||
auto_commit_pending_changes "$COMMIT_MESSAGE"
|
||||
|
||||
LATEST_TAG="$(latest_version_tag || true)"
|
||||
if [[ -z "$LATEST_TAG" ]]; then
|
||||
|
||||
@@ -992,6 +992,26 @@ static unsigned int voice_cmd_mods_from_gdk(guint state) {
|
||||
return mods;
|
||||
}
|
||||
|
||||
static int is_modifier_keyval(guint keyval) {
|
||||
switch (keyval) {
|
||||
case GDK_KEY_Shift_L:
|
||||
case GDK_KEY_Shift_R:
|
||||
case GDK_KEY_Control_L:
|
||||
case GDK_KEY_Control_R:
|
||||
case GDK_KEY_Alt_L:
|
||||
case GDK_KEY_Alt_R:
|
||||
case GDK_KEY_Meta_L:
|
||||
case GDK_KEY_Meta_R:
|
||||
case GDK_KEY_Super_L:
|
||||
case GDK_KEY_Super_R:
|
||||
case GDK_KEY_Hyper_L:
|
||||
case GDK_KEY_Hyper_R:
|
||||
return 1;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean on_window_key_press(GtkWidget *widget, GdkEventKey *event, gpointer user_data) {
|
||||
(void)widget;
|
||||
gui_state_t *s = (gui_state_t *)user_data;
|
||||
@@ -999,6 +1019,20 @@ static gboolean on_window_key_press(GtkWidget *widget, GdkEventKey *event, gpoin
|
||||
|
||||
if (!s->cmd_capture_armed) return FALSE;
|
||||
|
||||
if (event->keyval == GDK_KEY_Escape) {
|
||||
s->cmd_capture_armed = 0;
|
||||
s->cmd_capture_keyval = 0;
|
||||
s->cmd_capture_mods = 0;
|
||||
gtk_label_set_text(GTK_LABEL(s->cmd_capture_label), "Capture cancelled");
|
||||
gtk_button_set_label(GTK_BUTTON(s->cmd_capture_btn), "Capture");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (is_modifier_keyval(event->keyval)) {
|
||||
gtk_label_set_text(GTK_LABEL(s->cmd_capture_label), "Hold modifier(s), then press a non-modifier key...");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
s->cmd_capture_keyval = (unsigned int)event->keyval;
|
||||
s->cmd_capture_mods = voice_cmd_mods_from_gdk(event->state);
|
||||
s->cmd_capture_armed = 0;
|
||||
|
||||
+1
-2
@@ -21,6 +21,5 @@ open bracket|text|[
|
||||
close bracket|text|]
|
||||
open brace|text|{
|
||||
close brace|text|}
|
||||
over|key|65293:0
|
||||
end of command|key|65293:3
|
||||
over.|text|Return
|
||||
over.|key|65293:2
|
||||
|
||||
Reference in New Issue
Block a user