mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-25 04:31:18 +00:00
feat: ask_user — structured questions from the agent with web card, channel buttons, and text answers (#109922)
* feat(gateway): add transient question runtime (question.* methods + broadcasts) * feat(agents): add blocking ask_user question tool with chat prompt delivery and text-reply claim * feat(ui): interactive in-thread question cards for ask_user * feat(channels): native tap-to-answer buttons for ask_user on Telegram, Discord, and Slack * feat(ui): unify codex and gateway question cards with interactive gateway answering * refactor(agents): collapse ask_user pending state to one registry; docs for ask_user * fix(agents): include ask_user in normal gateway runs; add question-flow control-ui e2e * test(ui): avoid credential-shaped fixture in question card test * refactor(ui): reorder stream-group context keys * fix(gateway,ui): validate question answers at resolve; reject secret/duplicate-label questions; UI retry and reconnect hardening * fix(gateway,agents): canonicalize accepted option answers; bound ask_user option labels to 64 chars * chore(ci): prune unused question exports, allowlist mobile question events, fix discord lint * chore(ci): regenerate protocol/i18n/docs/tool-display artifacts for question surface * fix(protocol): flatten QuestionRecord for native codegen; drop TS-only alias from schema registry * chore(android): regenerate ask-user localization resources * docs: regenerate docs map after rebase * fix(ci): avoid stale read-only dependency disks * test: remove stale reef lint suppression ratchet * fix(ci): keep source locale drift advisory in release gates * fix(ci): scope locale advisory handling to parity check
This commit is contained in:
committed by
GitHub
parent
bab9a5ede7
commit
da44d52ac6
33
.github/actions/setup-node-env/action.yml
vendored
33
.github/actions/setup-node-env/action.yml
vendored
@@ -345,6 +345,31 @@ runs:
|
||||
;;
|
||||
esac
|
||||
|
||||
sticky_marker="$STICKY_ROOT/.openclaw-deps-fingerprint"
|
||||
sticky_fingerprint=""
|
||||
sticky_snapshot_matches="false"
|
||||
if [ "$STICKY_DISK" = "true" ] && [ -f "$sticky_marker" ]; then
|
||||
sticky_fingerprint="$(<"$sticky_marker")"
|
||||
fi
|
||||
if [ "$STICKY_DISK" = "true" ] && [ -n "$sticky_fingerprint" ] &&
|
||||
[ "$sticky_fingerprint" = "${OPENCLAW_STICKY_DEPS_FINGERPRINT:?}" ]; then
|
||||
sticky_snapshot_matches="true"
|
||||
fi
|
||||
if [ "$STICKY_DISK" = "true" ] && [ "$STICKY_WRITER" != "true" ] &&
|
||||
[ "$sticky_snapshot_matches" != "true" ]; then
|
||||
# Read-only PR clones cannot refresh a stale snapshot. Installing into
|
||||
# that clone can saturate its ext4 device until short jobs time out.
|
||||
# Detach only the workspace bind; the action still discards its clone.
|
||||
sudo umount "$GITHUB_WORKSPACE/node_modules"
|
||||
rm -rf "$GITHUB_WORKSPACE/node_modules"
|
||||
mkdir -p "$GITHUB_WORKSPACE/node_modules"
|
||||
ephemeral_store="${RUNNER_TEMP:?}/openclaw-pnpm-store"
|
||||
mkdir -p "$ephemeral_store"
|
||||
export PNPM_CONFIG_STORE_DIR="$ephemeral_store"
|
||||
echo "PNPM_CONFIG_STORE_DIR=$ephemeral_store" >> "$GITHUB_ENV"
|
||||
echo "Sticky dependency snapshot is stale; using runner-local storage for this read-only run"
|
||||
fi
|
||||
|
||||
install_args=(
|
||||
install
|
||||
--prefer-offline
|
||||
@@ -374,13 +399,7 @@ runs:
|
||||
ln -sfn . "$PNPM_CONFIG_MODULES_DIR/node_modules"
|
||||
export NODE_PATH="$PNPM_CONFIG_MODULES_DIR${NODE_PATH:+:$NODE_PATH}"
|
||||
fi
|
||||
sticky_marker="$STICKY_ROOT/.openclaw-deps-fingerprint"
|
||||
sticky_fingerprint=""
|
||||
if [ "$STICKY_DISK" = "true" ] && [ -f "$sticky_marker" ]; then
|
||||
sticky_fingerprint="$(<"$sticky_marker")"
|
||||
fi
|
||||
if [ "$STICKY_DISK" = "true" ] && [ -n "$sticky_fingerprint" ] &&
|
||||
[ "$sticky_fingerprint" = "${OPENCLAW_STICKY_DEPS_FINGERPRINT:?}" ]; then
|
||||
if [ "$sticky_snapshot_matches" = "true" ]; then
|
||||
bash "$GITHUB_ACTION_PATH/sticky-importers.sh" restore "$STICKY_ROOT" "$GITHUB_WORKSPACE"
|
||||
echo "Sticky dependency snapshot matches the install fingerprint; skipping pnpm install"
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user