mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-11-14 10:39:32 +01:00
Merge pull request #610: fix(approvals): treat DeepSeek permission prompts as terminal-only alerts
This commit is contained in:
commit
0feb5658ca
9 files changed
+119
-24
No files matched your search
@@ -261,6 +261,11 @@ Object.assign(CodemanApp.prototype, {
|
||||
`onkeydown="if(event.key==='Enter')app.answerApprovalIdleText('${id}')">` +
|
||||
`<button class="approval-btn approval-btn-primary" onclick="app.answerApprovalIdleText('${id}')">Send</button>` +
|
||||
`</div>`;
|
||||
} else if (item.answerInTerminal) {
|
||||
// Supervised-hook CLIs (DeepSeek Harness): keystrokes are unverifiable, so
|
||||
// Approve/Deny would hit the answer route and fail. Offer only Open session.
|
||||
actions =
|
||||
`<span class="approval-terminal-hint" data-i18n-skip>Answer in the terminal</span>`;
|
||||
} else if (item.options && item.options.length) {
|
||||
actions = item.options
|
||||
.map(
|
||||
|
||||
@@ -794,7 +794,7 @@ Object.assign(CodemanApp.prototype, {
|
||||
const wrap = document.createElement('div');
|
||||
wrap.className = 'mobile-overview-row-wrap';
|
||||
wrap.appendChild(item);
|
||||
wrap.appendChild(this._buildMobileOverviewApprovalStrip(approval));
|
||||
wrap.appendChild(this._buildMobileOverviewApprovalStrip(approval, row));
|
||||
return wrap;
|
||||
}
|
||||
|
||||
@@ -949,7 +949,7 @@ Object.assign(CodemanApp.prototype, {
|
||||
},
|
||||
|
||||
/** Compact answer buttons for a NEEDS YOU row: parsed options, else Approve/Deny. */
|
||||
_buildMobileOverviewApprovalStrip(approval) {
|
||||
_buildMobileOverviewApprovalStrip(approval, row) {
|
||||
const strip = document.createElement('div');
|
||||
strip.className = 'mobile-overview-approval-strip';
|
||||
strip.setAttribute('data-i18n-skip', '');
|
||||
@@ -964,6 +964,15 @@ Object.assign(CodemanApp.prototype, {
|
||||
});
|
||||
strip.appendChild(btn);
|
||||
};
|
||||
// Alert-only (DeepSeek Harness / supervised hooks): open the session instead
|
||||
// of Approve/Deny that the answer route would refuse.
|
||||
if (approval.answerInTerminal) {
|
||||
addBtn('Answer in terminal', 'primary', () => {
|
||||
if (typeof this.selectSession === 'function') this.selectSession(approval.sessionId);
|
||||
else if (typeof this.openApprovalSession === 'function') this.openApprovalSession(approval.id);
|
||||
});
|
||||
return strip;
|
||||
}
|
||||
if (approval.options && approval.options.length) {
|
||||
for (const o of approval.options) {
|
||||
const label = o.label.length > 24 ? o.label.slice(0, 24) + '…' : o.label;
|
||||
|
||||
Reference in new issue
Block a user