feat: add voice-to-draft mobile capture (Closes #929)
CI / lint (pull_request) Successful in 2m14s
CI / build-release (pull_request) Successful in 7s
CI / browser-journey (pull_request) Successful in 1m10s
CI / release-candidate (pull_request) Has been skipped

This commit is contained in:
timmy committed 2026-08-16 02:02:24 +00:00
1 parent 9adfcd01b6
commit 3b4bb618dd
9 files changed
+346 -4

No files matched your search

+21
View File
@@ -816,6 +816,26 @@
<label for="create-issue-body">Note <span class="small">Optional</span>
<textarea id="create-issue-body" maxlength="10000"></textarea>
</label>
<section class="voice-issue-capture" id="voice-issue-capture" aria-labelledby="voice-issue-heading" hidden>
<div class="voice-issue-heading">
<strong id="voice-issue-heading">Speak capture</strong>
<span class="small">Your browser transcribes speech. Stackchain does not retain audio.</span>
</div>
<div class="voice-issue-controls">
<button id="start-voice-issue-capture" type="button">Speak capture</button>
<button id="stop-voice-issue-capture" type="button" hidden>Stop listening</button>
</div>
<div id="voice-issue-status" class="small" aria-live="polite"></div>
<div class="voice-issue-review" id="voice-issue-review" hidden>
<label for="voice-issue-transcript">Review transcript
<textarea id="voice-issue-transcript" maxlength="10255"></textarea>
</label>
<div class="voice-issue-review-actions">
<button id="append-voice-issue-transcript" type="button">Append to draft</button>
<button id="replace-with-voice-issue-transcript" type="button">Replace draft</button>
</div>
</div>
</section>
<div class="create-issue-capture-actions">
<button id="save-unfiled-issue" type="button">Save to Drafts</button>
<button id="file-new-issue" type="button">File now</button>
@@ -1349,6 +1369,7 @@
<script src="static/issue-attachment.js"></script>
<script src="static/issue-filing-review.js"></script>
<script src="static/issue-sheet.js"></script>
<script src="static/voice-issue-capture.js"></script>
<script src="static/create-issue-sheet.js"></script>
<script src="static/create-and-start.js"></script>
<script src="static/assign-and-start.js"></script>