Human Gates inbox: one hash-bound review queue to zero #1415
Closed
opened 2026-08-25 23:37:07 +00:00 by rockachopa
·
14 comments
No Branch/Tag Specified
main
timmy/1489-pin-current-mobile-detail
timmy/1487-compact-rank-pinned-mobile-work
timmy/1485-mobile-recent-work-sync
timmy/1483-stabilize-today-to-week-dialog-closure-in-packag
timmy/1479-disk-usage-86
timmy/1477-pin-mobile-frequent-work
timmy/1475-sync-mobile-recent-work
timmy/1473-restore-bare-environment-full-suite-cache-policy
timmy/1468-demand-load-mobile-workspace
timmy/1466-self-healing-queue-priority
timmy/1464-sync-mobile-queue-priority
timmy/1462-principal-scoped-security-activity
timmy/1460-personalized-mobile-queue-priority
timmy/1456-actionable-following-authored
timmy/1454-principal-scoped-device-revocation
timmy/1450-adaptive-mobile-queue-action
timmy/1446-recover-human-gate-decision
timmy/1444-paginated-human-gate-history
timmy/1439-human-gate-mobile-decision-tray
timmy/1435-resume-human-gate-review
timmy/1431-recover-progressive-mobile-identity
timmy/1427-progressive-mobile-dock
timmy/1421-require-fresh-authorization-audit-human-gate-decisions
timmy/1419-open-human-gates-before-optional-hydration
timmy/1417-human-gates-mobile-queues-prepare-today
timmy/1415-human-gates-inbox-one-hash-bound-review-queue-to
timmy/1413-progressive-my-work-detail
timmy/1411-progressive-my-work-live-recovery
timmy/1407-progressive-mobile-capture
timmy/1405-progressive-live-snapshot-handoff
timmy/1403-progressive-queue-handoff
timmy/1401-progressive-my-work-hydration
timmy/1398-320-active-today-week-reschedule-dialog
timmy/1396-find-photo-only-reply-drafts-from-mobile-my-work
timmy/1396-photo-reply-drafts
timmy/1394-ci-regression-active-timed-break-hidden-after-co
timmy/1392-mobile-notification-quiet-hours
timmy/1388-search-following-comment-actions
timmy/1386-atomic-multi-file-review-suggestions
timmy/1384-atomic-review-suggestion-batch
timmy/1382-mobile-review-suggestions
timmy/1380-mobile-comment-reactions
timmy/1378-pin-release-actions
timmy/1376-mobile-review-feedback-fix
timmy/1374-bind-push-session-identity
timmy/1370-conflict-safe-release-rollback
timmy/1368-secure-source-branch-deletion
timmy/1366-post-merge-release-check-recovery
timmy/1364-delete-merged-source-branches
timmy/1362-create-pull-requests-from-pushed-branches-on-mob
timmy/1360-update-authored-pull-branch
timmy/1358-reopen-closed-authored-pull-search
timmy/1356-close-authored-pull-recovery
timmy/1354-mobile-ci-recovery
timmy/1348-authored-pull-workspace
timmy/1346-authored-pull-queue
timmy/1344-publish-draft-pull
timmy/1342-lazy-review-feedback
timmy/1340-cancel-pending-review
timmy/1338-address-review-feedback
timmy/1336-review-feedback
timmy/1334-reviewer-decisions
timmy/1332-revise-pull-context
timmy/1330-request-teammate-review
timmy/1326-plan-following-change-continue-review
timmy/1324-review-attention-app-badge
timmy/1322-explain-following-changes
timmy/1320-keep-following-for-later
timmy/1315-ci-browser-journey-loses-active-break-state-afte
timmy/1317-open-following-alert-review
timmy/1313-following-change-push
timmy/1313-notify-mobile-operators-when-following-changes
timmy/1311-ci-browser-journey-intermittently-leaves-week-re
timmy/1309-watch-from-mobile-detail
timmy/1307-follow-pulls-from-search
timmy/1305-retire-closed-following
timmy/1301-prepare-today-following
timmy/1299-following-review-pass
timmy/1297-changed-first-following
timmy/1295-truthful-search-watch-admission
timmy/1289-ci-timing-gate-flakes-under-runner-load
timmy/1290-watch-mobile-search
timmy/1287-disk-usage-93
timmy/1285-calendar-import-performance-gate
ox/11-bucket-latency
timmy/1281-background-updates-app-badge
timmy/1278-unread-updates-app-icon-badge
timmy/1272-ci-regression-packaged-mobile-first-task-coach-r
timmy/1270-persist-week-task-times
timmy/1268-ci-regression-plan-today-remains-visible-after-s
timmy/1266-refresh-week-calendar-atomic-reflow
timmy/1258-persist-calendar-free-windows
timmy/1256-weekly-availability-defaults
timmy/1254-recover-conflicted-week-pulls
timmy/1252-encrypt-completed-filed-reviews
timmy/1249-queue-offline-week-pulls
timmy/1246-durable-week-today-pulls
timmy/1244-capacity-confirm-week-pull
timmy/1242-week-item-to-today
timmy/1240-week-ahead-unplan-undo
timmy/1237-private-state-key-rotation
timmy/1235-retire-completed-week-work
timmy/1231-durable-today-week-reschedule
timmy/1226-week-ahead-reflow
timmy/1224-start-week-day-early
timmy/1222-week-ahead-item-detail
timmy/1220-search-week-offline-details
timmy/1218-offline-week-overview
timmy/1216-week-ahead-overview
timmy/1214-week-calendar-stable-events
timmy/1212-week-calendar-timezone
timmy/1210-week-calendar-availability
timmy/1208-week-calendar-recurrence
timmy/1206-week-calendar-capacity
timmy/1202-ci-regression-mobile-today-handoff-content-is-ob
timmy/1200-reconcile-week-today
timmy/1198-week-calendar-blocks
timmy/1194-search-week-ahead
timmy/1192-week-ahead-start-day-reminder
timmy/1188-review-rebalance-week-ahead
timmy/1186-continuous-week-ahead
timmy/1184-reconcile-week-ahead-per-day
timmy/1182-preserve-today-before-week-rollover
timmy/1180-offline-week-ahead-sync
timmy/1177-plan-the-next-seven-days-from-mobile
timmy/1177-week-ahead
timmy/1174-today-wrap-up-tomorrow-handoff-rc
timmy/1174-today-wrap-up-tomorrow-handoff
timmy/1172-private-today-action-handoff
timmy/1168-start-day-lease-safe-fanout
timmy/1166-start-day-reminder
timmy/1164-tomorrow-conflict-recovery
timmy/1162-ci-regression-mobile-handoff-break-status-assert
timmy/1160-offline-tomorrow-sync
timmy/1158-mobile-tomorrow-queue
timmy/1156-ci-browser-journey-leaves-first-task-completion-
timmy/1154-tomorrow-rollover-recovery
timmy/1152-tomorrow-plan
timmy/1150-atomic-today-completion
timmy/1148-cross-device-first-task
timmy/1146-first-task-completed-outcome
timmy/1144-first-task-active-session
timmy/1142-ci-browser-journey-expects-stale-break-countdown
timmy/1140-first-task-activation
timmy/1138-live-data-status-detour
timmy/1136-security-center-focus-containment
timmy/1134-device-setup-focus-containment
timmy/1132-notification-permission-recovery
timmy/1130-post-today-summary
timmy/1128-safe-sign-out-review
timmy/1126-encrypt-saved-searches
timmy/1124-workspace-load-recovery
timmy/1122-encrypt-idempotency-ledger
timmy/1120-push-delivery-health
timmy/1118-encrypt-security-activity
timmy/1116-parallel-workspace-fetch
timmy/1114-encrypt-later-state
timmy/1112-encrypt-today-state
timmy/1110-protect-offline-storage
timmy/1108-encrypt-push-subscriptions
timmy/1106-encrypt-worker-snapshots
timmy/1104-review-snoozed-deadlines
timmy/1102-deadline-reminder-snooze
timmy/1100-draft-key-rotation
timmy/1098-encrypt-unfiled-drafts
timmy/1096-pin-web-push-connections
timmy/1094-release-watchlist
timmy/1092-mobile-release-receipt
timmy/1090-mobile-today-summary
timmy/1088-agenda-calendar-export
timmy/1086-pause-today-security-center
timmy/1084-pause-today-device-setup
timmy/1082-pause-today-insights
timmy/1080-mobile-today-detours
timmy/1078-pause-today-search
timmy/1076-pause-today-quick-capture
timmy/1074-compact-today-command-bar
timmy/1072-configured-forge-link-boundary
timmy/1070-focused-today-blocker-hud
timmy/1068-recover-today-blocker-reload
timmy/1066-today-blocker-move-on
timmy/1064-today-progress-mentions
timmy/1058-today-progress-voice-dictation
timmy/1056-today-progress-evidence-retries
timmy/1054-mobile-today-progress-photo-evidence
timmy/1052-mobile-today-progress-updates
timmy/1048-authenticated-deployment-readiness
timmy/1046-mobile-issue-capture-modal
timmy/1044-declared-git-release-bundles
timmy/1040-ci-browser-journey-is-nondeterministic-after-tod
timmy/1038-cross-device-today-break
timmy/1036-timed-mobile-today-break
timmy/1032-finish-today-lock-screen
timmy/1030-today-session-conflict-convergence
timmy/1028-durable-pull-merge-audit
timmy/1026-today-lock-screen
timmy/1024-primary-prepare-today
timmy/1020-mobile-security-center-flow
timmy/1018-mobile-delivery-attention-handoff
timmy/1016-single-flight-delivery-recovery
timmy/1014-guided-delivery-recovery
timmy/1012-mobile-delivery-recovery-queue
timmy/1010-prepare-today-delivery-recovery
timmy/1008-mobile-work-filed-follow-up
timmy/1004-resume-private-share-bundles
timmy/1002-mobile-pull-to-refresh
timmy/1000-guard-indexeddb-private-work
timmy/998-private-device-storage
timmy/996-defer-mobile-workspace-bootstrap
timmy/992-review-wrap-up-commitments
timmy/985-gate-releases-on-the-packaged-mobile-plan-today-
timmy/985-packaged-mobile-plan-handoff
timmy/983-server-image-sanitization
timmy/977-preserve-offline-feature-cache-activation
timmy/975-mobile-plan-today-navigation
timmy/973-mobile-search-preview-navigation
timmy/971-mobile-new-issue-navigation
timmy/967-mobile-update-workspace-navigation
timmy/965-mobile-pull-workspace-navigation
timmy/961-mobile-issue-detail-navigation
timmy/959-offline-search-replies
timmy/957-preserve-search-photo-reply-drafts
timmy/955-search-preview-photo-evidence
timmy/953-dictate-search-preview-replies
timmy/951-dictate-mobile-conversation-replies
timmy/947-edit-redact-conversation-photos
timmy/945-review-caption-conversation-photo-bundles
timmy/943-mobile-conversation-photo-bundles
timmy/941-mobile-conversation-photo-capture
timmy/939-photo-only-untitled-drafts
timmy/937-camera-first-photo-evidence
timmy/933-same-origin-microphone
timmy/929-voice-to-draft-mobile-capture
timmy/927-ci-regression-offline-artifact-browser-journey-d
timmy/925-close-completed-delegated-parent
timmy/921-promote-checklist-related-issue
timmy/919-manage-checklist-steps
timmy/917-ci-regression-offline-artifact-browser-journey-d
timmy/915-mobile-add-checklist-step
timmy/913-resolve-checklist-conflicts
timmy/911-checklist-close-next
timmy/909-offline-checklist-coalesce
timmy/907-offline-checklist-sync
timmy/905-mobile-checklist-toggle
timmy/903-private-share-bundle
timmy/901-continue-prepare-today-attention
timmy/899-resume-prepare-today
timmy/897-mobile-start-day
timmy/895-reassign-filed
timmy/893-claim-start-filed
timmy/889-private-store-purge
timmy/887-revise-filed-issue
timmy/884-stabilize-release-gate
timmy/884-withdraw-filed-issue
timmy/882-reviewed-filed-history
timmy/880-cross-device-filed-ack
timmy/878-completed-filed-review
timmy/876-filed-followup-replies
timmy/872-filed-read-only-detail
timmy/868-file-related-issue
timmy/866-issue-filing-receipt
timmy/863-release-e2e-opt-in
timmy/863-mobile-offline-release-gate
timmy/861-review-ready-drafts
timmy/859-resume-planned-drafts
timmy/857-auto-reconcile-draft-saves
timmy/855-file-mobile-issues-without-owner
timmy/853-divergent-unfiled-drafts
timmy/851-cross-device-unfiled-drafts
timmy/849-require-today-estimate
timmy/845-repository-issue-templates
timmy/843-choose-the-initial-owner-while-filing-a-mobile-i
timmy/837-bound-decoded-screenshot-pixels
timmy/835-visual-mobile-evidence-review
timmy/833-mobile-issue-filing-review
timmy/831-annotate-mobile-evidence
timmy/829-crop-redact-mobile-evidence
timmy/827-evidence-screenshot-notes
timmy/825-review-reorder-mobile-evidence
timmy/823-mobile-evidence-bundles
timmy/821-synced-mobile-search-views
timmy/819-fix-flaky-live-snapshot-freshness-test-blocking-
timmy/817-atomic-search-release-plan
timmy/815-plan-search-release
timmy/813-batch-defer-search-results
timmy/811-search-batch-time-capacity
timmy/809-batch-plan-mobile-search
timmy/807-lossless-partial-search
timmy/805-reply-continue-mobile-search
timmy/803-search-preview-conversation
timmy/801-sequential-mobile-search
timmy/799-schedule-search-results-later
timmy/793-scope-mobile-search
timmy/791-open-requested-reviews-from-search
timmy/785-open-assigned-pulls-from-search
timmy/783-paginated-balanced-mobile-search
timmy/781-resumable-mobile-search
timmy/779-authorize-audit-comment-deletion
timmy/775-update-review-handoff
timmy/771-transaction-safe-update-decisions
timmy/769-mobile-update-swipe-triage
timmy/767-stalled-login-recovery
timmy/765-update-outcome-review
timmy/763-mobile-update-decision-bar
timmy/761-progressive-update-conversation
timmy/759-newest-update-activity
timmy/757-prefetch-next-mobile-update
timmy/755-priority-mobile-work
timmy/753-atomic-updates-snapshot
timmy/751-mute-future-updates
timmy/749-complete-updates-discovery
timmy/747-resumable-updates-triage
timmy/745-live-data-status
timmy/743-truthful-mobile-queue-summary
timmy/739-share-screenshots
timmy/737-pwa-task-shortcuts
timmy/733-resumable-mobile-agenda
timmy/731-agenda-work-session
timmy/729-bounded-assigned-snapshot
timmy/727-configurable-deadline-horizon
timmy/725-bulk-push-authorization
timmy/723-deadline-protect-today
timmy/721-protect-today
timmy/719-calendar-day-deadlines
timmy/711-isolate-deadline-reminders
timmy/709-mobile-deadline-reminders
timmy/707-mobile-agenda-replan
timmy/705-mobile-deadline-dock
timmy/703-complete-mobile-agenda
timmy/701-mobile-agenda-launch
timmy/699-readable-planning-stores
timmy/695-cold-find-work-workers
timmy/693-mobile-agenda-route
timmy/691-empty-mobile-find-start
timmy/689-stabilize-recap-concurrency-test
timmy/687-isolate-readiness
timmy/685-mobile-agenda
timmy/683-mobile-queue-continuation
timmy/679-resume-find-work-batches
timmy/675-find-work-time-capacity
timmy/673-search-find-work
timmy/671-batch-claim-find-work
timmy/669-select-all-matching-work
timmy/667-find-active-queue
timmy/665-follow-up-and-next
timmy/663-update-follow-up
timmy/659-defer-selected-updates
timmy/657-addressable-mobile-work-queues
timmy/655-isolate-push-device-failures
timmy/653-push-endpoint-egress-policy
timmy/651-mobile-command-center
timmy/649-undo-update-acknowledgement
timmy/647-push-updates-inbox
timmy/645-mobile-queue-launcher
timmy/mobile-review-keyboard-safe
timmy/641-passkey-counter-anomalies
timmy/639-mobile-updates-queue
timmy/637-bounded-plan-readiness
timmy/635-inline-plan-estimates
timmy/633-build-my-today
timmy/629-sequential-draft-filing
timmy/627-mobile-queue-switcher
timmy/625-draft-mutation-rollback
timmy/623-draft-capacity-guard
timmy/621-mobile-draft-handoff
timmy/619-progressive-feature-caching
timmy/617-purge-capture-drafts
timmy/615-capture-first-screenshots
timmy/613-mobile-capture-first
timmy/609-canonical-public-origin
timmy/607-concurrent-recap-time
timmy/605-lazy-security-center
timmy/603-today-day-rollover
timmy/601-mobile-hud-complete
timmy/599-mobile-today-session-hud
timmy/597-live-today-budget
timmy/595-pause-today-for-attention
timmy/593-mobile-attention-alongside-today
timmy/591-reconcile-today-interruptions
timmy/589-authorize-audit-recap-time
timmy/587-log-recap-time
timmy/585-resume-recap-replan
timmy/583-recap-replan
timmy/581-offline-recap-draft
timmy/579-today-recap
timmy/577-today-actual-time
timmy/573-complete-push-snapshot
timmy/571-revision-aware-web-push
timmy/569-push-burst-digests
timmy/567-pull-ownership
timmy/565-production-push-contract
timmy/563-web-push-tomorrow
timmy/561-web-push-mark-read
timmy/559-mobile-readiness-card
timmy/557-bounded-push-fanout
timmy/555-mobile-device-setup
timmy/553-session-bound-push
timmy/551-push-delivery-lease
timmy/549-inbound-web-push
timmy/547-reopen-resume
timmy/545-select-updates
timmy/543-failed-sign-in-alerts
timmy/541-lazy-pull-workflow
timmy/539-acknowledge-update-reaction
timmy/537-lazy-issue-capture
timmy/535-passkey-flood-protection
timmy/533-offline-blocker-sync
timmy/531-manage-issue-blockers
timmy/523-confirmed-offline-idle-deadline
timmy/521-status-only-check-refresh
timmy/517-actionable-ci-checks
timmy/515-pr-comment-screenshots
timmy/511-content-addressed-shell
timmy/507-fresh-review-authorization
timmy/503-reply-read-next
timmy/501-atomic-access-revocation
timmy/499-manage-enrolled-passkeys
timmy/497-truthful-security-journal
timmy/495-optimize-oversized-screenshots
timmy/493-security-activity-center
timmy/491-binary-screenshot-transport
timmy/489-keyboard-safe-mobile-capture
timmy/487-searchable-repository-picker
timmy/485-device-passkeys
timmy/483-authorize-queued-closures
timmy/481-offline-delivery-center
timmy/479-lease-safe-background-claims
timmy/477-offline-screenshot-comments
timmy/475-preserve-queued-screenshots
timmy/471-idempotent-attachment-uploads
timmy/469-capture-issue-screenshots
timmy/467-mobile-comment-screenshots
timmy/465-adaptive-live-polling
timmy/463-idle-session-lock
timmy/461-drain-authored-mutations
timmy/459-plan-today-capacity
timmy/457-start-deferred-work
timmy/455-defer-today-next
timmy/453-shared-available-catalog
timmy/451-update-reply-next
timmy/449-ownership-exit-next
timmy/447-mobile-mentions
timmy/445-wrap-mobile-review-diffs
timmy/443-today-blocker-preview
timmy/441-demand-driven-today-readiness
timmy/439-notification-snapshot-batch
timmy/437-today-readiness
timmy/435-dependency-aware-today
timmy/433-shared-live-snapshot
timmy/429-comment-next
timmy/427-offline-close-next
timmy/419-offline-review-outbox
timmy/417-http-compression
timmy/415-queue-today-from-find
timmy/411-assign-and-start
timmy/409-continue-today-mobile-dock
timmy/407-merge-pr-and-advance-today
timmy/405-plan-today-preview
timmy/401-plan-today-back
timmy/399-offline-session-lease
timmy/397-foreground-request-deadlines
timmy/395-resume-today-session
timmy/393-mobile-card-planning-disclosure
timmy/391-close-and-next
timmy/389-durable-create-and-start
timmy/387-create-and-start
timmy/385-plan-today-mobile-flow
timmy/383-multi-worker-live-revisions
timmy/377-later-conflict-safe
timmy/375-batch-planning-sync
timmy/373-lossless-planning-tabs
timmy/371-duplicate-aware-mobile-capture
timmy/369-exact-later-time
timmy/367-drain-today-inflight
timmy/365-planning-sync-auto-retry
timmy/361-convergent-today-sync
timmy/359-retire-completed-today
timmy/357-cross-device-today
timmy/355-offline-review-drafts
timmy/353-stalled-navigation-deadline
timmy/351-offline-update-acknowledgements
timmy/349-offline-today-readiness
timmy/347-offline-update-conversations
timmy/345-offline-today-details
timmy/341-fresh-authorization
timmy/339-ci-gated-verifiable-release-artifacts
timmy/337-purge-private-data-after-remote-revocation
timmy/335-prevent-overlapping-autonomous-release-runs-with
timmy/333-isolate-autonomous-release-subprocesses-from-par
timmy/331-resume-autonomous-release-runs-from-durable-chec
timmy/329-bound-autonomous-release-command-deadlines
timmy/321-take-ownership-unread-update
timmy/319-recover-orphaned-authored-operations
timmy/311-auth-db-off-event-loop
timmy/309-session-expiry-recovery
timmy/307-prevent-issue-content-from-executing-shell-comma
timmy/303-self-healing-live-refresh
timmy/301-cold-offline-capture
timmy/297-bounded-background-drain
timmy/295-strict-browser-boundary
timmy/293-complete-device-outbox-purge
timmy/291-mobile-install-flow
timmy/289-retained-planning
timmy/287-sign-out-all-devices
timmy/285-live-section-revisions
timmy/281-mobile-issue-handoff
timmy/279-mobile-today-queue
timmy/277-reconcile-merge-timeouts
timmy/275-nonblocking-session-validation
timmy/273-mobile-deadline-attention
timmy/270-sign-in-throttle-mobile-fix
timmy/270-sign-in-throttle
timmy/268-revoke-logout
timmy/264-durable-background-admission
timmy/260-background-delivery-receipts
timmy/258-operator-session
timmy/256-mobile-detail-defer
timmy/254-mobile-later-queue
timmy/250-background-issue-sync
timmy/248-idempotency-ledger-contention
timmy/244-mobile-attention-queue
timmy/242-cross-tab-outbox-coordination
timmy/238-account-bound-outboxes
timmy/236-mobile-task-dock
timmy/234-authored-message-outbox
timmy/232-offline-issue-outbox
timmy/230-http-outage-offline-launch
timmy/228-offline-my-work-snapshot
timmy/226-offline-app-shell
timmy/217-read-first-pull-sheet
timmy/215-read-first-issue-sheet
timmy/213-instant-find-work
timmy/211-mobile-draft-recovery
timmy/209-mobile-conversation-history
timmy/205-mobile-work-routes
timmy/203-mobile-milestone-planning
timmy/201-durable-idempotency
timmy/197-global-search-preview
timmy/195-global-work-search
timmy/193-mobile-work-session
timmy/191-mobile-issue-due-dates
timmy/189-edit-assigned-issue-content
timmy/187-review-assigned-pull-diffs
timmy/185-idempotent-authored-actions
timmy/183-release-mobile-assignment
timmy/181-find-work-schema-pagination
timmy/179-preview-issue-details-before-claiming
timmy/177-idempotent-mobile-issue-create
timmy/175-mobile-find-work
timmy/173-mobile-issue-labels
timmy/171-constant-request-work-auth
timmy/169-paginate-mobile-my-work
timmy/167-section-isolated-live-refresh
timmy/165-mobile-inline-review-comments
timmy/163-mobile-issue-labels
timmy/161-mobile-assigned-pr-completion
timmy/159-mobile-issue-capture
timmy/157-mobile-issue-actions
timmy/155-mobile-review-submit
timmy/153-mobile-update-replies
timmy/151-mobile-update-reader
timmy/149-outage-aware-live-snapshots
timmy/147-paginated-unread-updates
timmy/145-bound-bulk-notification-fanout
timmy/143-popup-safe-review-handoff
timmy/141-bulk-notification-triage
timmy/139-stale-while-revalidate-live-snapshot
timmy/137-cancellation-safe-live-snapshot
timmy/135-notification-mark-read
timmy/133-mobile-unread-updates
timmy/131-unified-live-snapshot
timmy/125-resumable-mobile-review-progress
timmy/123-mobile-diff-preview
timmy/121-mobile-review-completion
timmy/119-resumable-single-flight-my-work
timmy/117-mobile-review-inbox
timmy/115-mobile-my-work-inbox
timmy/107-return-retryable-malformed-activity-feed
timmy/105-do-not-display-fabricated-work-items
timmy/103-show-repo-mix-unavailable-context-failure
timmy/101-allow-mobile-dashboard-zoom
timmy/99-return-fallback-malformed-collection-payloads
timmy/97-show-degraded-fallback-context
timmy/95-normalize-malformed-nested-activity-metadata
timmy/93-normalize-null-activity-feed
timmy/91-return-fallback-incomplete-current-user
timmy/89-skip-malformed-activity-feed-entries
timmy/87-normalize-malformed-gitea-pr-authors
timmy/85-skip-malformed-nested-issue-metadata
timmy/83-skip-malformed-pull-request-entries
timmy/81-skip-malformed-gitea-issue-entries
timmy/75-handle-null-gitea-current-user-payload
timmy/73-normalize-nullable-user-profile-fields
timmy/71-bound-readiness-probe-latency
timmy/69-handle-null-gitea-collection-payloads
timmy/67-retry-event-stream-upstream-failures
timmy/65-resolve-dashboard-api-requests-under-subpath
timmy/63-resolve-markdown-renderer-under-dashboard-subpath
timmy/60-fix-command-assets-under-dashboard-subpath
timmy/60-fix-filtered-command-palette-selection
timmy/58-bound-event-stream-refresh-latency
timmy/56-handle-nullable-pull-request-authors
timmy/54-handle-nullable-repository-descriptions
timmy/52-escape-markdown-preview-html
timmy/50-handle-nullable-gitea-issue-metadata
timmy/48-fix-repo-mix-widget-initialization-race
timmy/46-serve-dashboard-independent-of-cwd
timmy/41-add-realtime-gitea-event-stream-widget
timmy/40-fallback-context-endpoint-timeout
timmy/37-ops-hourly-release-pulse-gitea-token-authenticat
timmy/35-documentation-audit-for-stackchain-dashboard
timmy/34-improve-stackchain-dashboard-health-and-reliabil
timmy/31-add-realtime-gitea-event-stream-widget
timmy/30-fallback-context-endpoint-timeout
timmy/27-add-realtime-gitea-event-stream-widget
timmy/26-improve-stackchain-dashboard-health-and-reliabil
timmy/24-documentation-audit-for-stackchain-dashboard
timmy/19-documentation-audit-for-stackchain-dashboard
v0.1.0-rc.1807
v0.1.0-rc.1805
v0.1.0-rc.1803
v0.1.0-rc.1798
v0.1.0-rc.1795
v0.1.0-rc.1793
v0.1.0-rc.1791
v0.1.0-rc.1788
v0.1.0-rc.1786
v0.1.0-rc.1778
v0.1.0-rc.1776
v0.1.0-rc.1774
v0.1.0-rc.1772
v0.1.0-rc.1768
v0.1.0-rc.1766
v0.1.0-rc.1764
v0.1.0-rc.1762
v0.1.0-rc.1760
v0.1.0-rc.1758
v0.1.0-rc.1753
v0.1.0-rc.1751
v0.1.0-rc.1749
v0.1.0-rc.1746
v0.1.0-rc.1743
v0.1.0-rc.1741
v0.1.0-rc.1739
v0.1.0-rc.1737
v0.1.0-rc.1734
v0.1.0-rc.1731
v0.1.0-rc.1729
v0.1.0-rc.1726
v0.1.0-rc.1724
v0.1.0-rc.1714
v0.1.0-rc.1706
v0.1.0-rc.1704
v0.1.0-rc.1702
v0.1.0-rc.1700
v0.1.0-rc.1697
v0.1.0-rc.1695
v0.1.0-rc.1693
v0.1.0-rc.1691
v0.1.0-rc.1687
v0.1.0-rc.1682
v0.1.0-rc.1679
v0.1.0-rc.1677
v0.1.0-rc.1675
v0.1.0-rc.1673
v0.1.0-rc.1671
v0.1.0-rc.1669
v0.1.0-rc.1667
v0.1.0-rc.1665
v0.1.0-rc.1663
v0.1.0-rc.1661
v0.1.0-rc.1659
v0.1.0-rc.1657
v0.1.0-rc.1654
v0.1.0-rc.1652
v0.1.0-rc.1650
v0.1.0-rc.1647
v0.1.0-rc.1644
v0.1.0-rc.1642
v0.1.0-rc.1640
v0.1.0-rc.1638
v0.1.0-rc.1636
v0.1.0-rc.1631
v0.1.0-rc.1629
v0.1.0-rc.1627
v0.1.0-rc.1625
v0.1.0-rc.1623
v0.1.0-rc.1620
v0.1.0-rc.1618
v0.1.0-rc.1616
v0.1.0-rc.1613
v0.1.0-rc.1611
v0.1.0-rc.1609
v0.1.0-rc.1606
v0.1.0-rc.1604
v0.1.0-rc.1602
v0.1.0-rc.1600
v0.1.0-rc.1598
v0.1.0-rc.1595
v0.1.0-rc.1592
v0.1.0-rc.1588
v0.1.0-rc.1585
v0.1.0-rc.1582
v0.1.0-rc.1580
v0.1.0-rc.1577
v0.1.0-rc.1575
v0.1.0-rc.1573
v0.1.0-rc.1571
v0.1.0-rc.1568
v0.1.0-rc.1565
v0.1.0-rc.1561
v0.1.0-rc.1558
v0.1.0-rc.1546
v0.1.0-rc.1543
v0.1.0-rc.1541
v0.1.0-rc.1534
v0.1.0-rc.1531
v0.1.0-rc.1529
v0.1.0-rc.1525
v0.1.0-rc.1523
v0.1.0-rc.1521
v0.1.0-rc.1519
v0.1.0-rc.1499
v0.1.0-rc.1497
v0.1.0-rc.1495
v0.1.0-rc.1493
v0.1.0-rc.1491
v0.1.0-rc.1488
v0.1.0-rc.1486
v0.1.0-rc.1484
v0.1.0-rc.1482
v0.1.0-rc.1480
v0.1.0-rc.1478
v0.1.0-rc.1476
v0.1.0-rc.1474
v0.1.0-rc.1472
v0.1.0-rc.1469
v0.1.0-rc.1466
v0.1.0-rc.1464
v0.1.0-rc.1462
v0.1.0-rc.1460
v0.1.0-rc.1456
v0.1.0-rc.1454
v0.1.0-rc.1448-recovery
v0.1.0-rc.1446
v0.1.0-rc.1444
v0.1.0-rc.1442
v0.1.0-rc.1438
v0.1.0-rc.1436
v0.1.0-rc.1434
v0.1.0-rc.1432
v0.1.0-rc.1430
v0.1.0-rc.1428
v0.1.0-rc.1426
v0.1.0-rc.1423
v0.1.0-rc.1415
v0.1.0-rc.1411
v0.1.0-rc.1408
v0.1.0-rc.1406
v0.1.0-rc.1404
v0.1.0-rc.1401
v0.1.0-rc.1398
v0.1.0-rc.1395
v0.1.0-rc.1393
v0.1.0-rc.1391
v0.1.0-rc.1388
v0.1.0-rc.1384
v0.1.0-rc.1382
v0.1.0-rc.1379
v0.1.0-rc.1376
v0.1.0-rc.1374
v0.1.0-rc.1372
v0.1.0-rc.1369
v0.1.0-rc.1367
v0.1.0-rc.1365
v0.1.0-rc.1363
v0.1.0-rc.1361
v0.1.0-rc.1359
v0.1.0-rc.1357
v0.1.0-rc.1355
v0.1.0-rc.1353
v0.1.0-rc.1351
v0.1.0-rc.1349
v0.1.0-rc.1347
v0.1.0-rc.1344
v0.1.0-rc.1341
v0.1.0-rc.1339
v0.1.0-rc.1337
v0.1.0-rc.1335
v0.1.0-rc.1333
v0.1.0-rc.1331
v0.1.0-rc.1329
v0.1.0-rc.1327
v0.1.0-rc.1325
v0.1.0-rc.1322
v0.1.0-rc.1320
v0.1.0-rc.1318
v0.1.0-rc.1316
v0.1.0-rc.1313
v0.1.0-rc.1311
v0.1.0-rc.1309
v0.1.0-rc.1307
v0.1.0-rc.1305
v0.1.0-rc.1303
v0.1.0-rc.1301
v0.1.0-rc.1299
v0.1.0-rc.1297
v0.1.0-rc.1295
v0.1.0-rc.1293
v0.1.0-rc.1290
v0.1.0-rc.1288
v0.1.0-rc.1286
v0.1.0-rc.1284
v0.1.0-rc.1282
v0.1.0-rc.1280
v0.1.0-rc.1278
v0.1.0-rc.1276
v0.1.0-rc.1273
v0.1.0-rc.1271
v0.1.0-rc.1269
v0.1.0-rc.1267
v0.1.0-rc.1265
v0.1.0-rc.1260
v0.1.0-rc.1254
v0.1.0-rc.1251
v0.1.0-rc.1249
v0.1.0-rc.1247
v0.1.0-rc.1245
v0.1.0-rc.1243
v0.1.0-rc.1241
v0.1.0-rc.1239
v0.1.0-rc.1237
v0.1.0-rc.1235
v0.1.0-rc.1233
v0.1.0-rc.1231
v0.1.0-rc.1229
v0.1.0-rc.1227
v0.1.0-rc.1225
v0.1.0-rc.1222
v0.1.0-rc.1220
v0.1.0-rc.1218
v0.1.0-rc.1216
v0.1.0-rc.1214
v0.1.0-rc.1212
v0.1.0-rc.1205
v0.1.0-rc.1203
v0.1.0-rc.1201
v0.1.0-rc.1199
v0.1.0-rc.1197
v0.1.0-rc.1193
v0.1.0-rc.1191
v0.1.0-rc.1189
v0.1.0-rc.1187
v0.1.0-rc.1184
v0.1.0-rc.1182
v0.1.0-rc.1179
v0.1.0-rc.1176
v0.1.0-rc.1174
v0.1.0-rc.1172
v0.1.0-rc.1169
v0.1.0-rc.1167
v0.1.0-rc.1165
v0.1.0-rc.1162
v0.1.0-rc.1160
v0.1.0-rc.1158
v0.1.0-rc.1156
v0.1.0-rc.1154
v0.1.0-rc.1152
v0.1.0-rc.1150
v0.1.0-rc.1148
v0.1.0-rc.1146
v0.1.0-rc.1144
v0.1.0-rc.1141
v0.1.0-rc.1139
v0.1.0-rc.1137
v0.1.0-rc.1135
v0.1.0-rc.1133
v0.1.0-rc.1131
v0.1.0-rc.1127
v0.1.0-rc.1125
v0.1.0-rc.1122
v0.1.0-rc.1120
v0.1.0-rc.1117
v0.1.0-rc.1115
v0.1.0-rc.1113
v0.1.0-rc.1111
v0.1.0-rc.1105
v0.1.0-rc.1103
v0.1.0-rc.1101
v0.1.0-rc.1099
v0.1.0-rc.1097
v0.1.0-rc.1095
v0.1.0-rc.1093
v0.1.0-rc.1090
v0.1.0-rc.1088
v0.1.0-rc.1086
v0.1.0-rc.1084
v0.1.0-rc.1082
v0.1.0-rc.1077
v0.1.0-rc.1075
v0.1.0-rc.1073
v0.1.0-rc.1071
v0.1.0-rc.1069
v0.1.0-rc.1067
v0.1.0-rc.1065
v0.1.0-rc.1063
v0.1.0-rc.1061
v0.1.0-rc.1059
v0.1.0-rc.1055
v0.1.0-rc.1053
v0.1.0-rc.1051
v0.1.0-rc.1049
v0.1.0-rc.1047
v0.1.0-rc.1045
v0.1.0-rc.1043
v0.1.0-rc.1041
v0.1.0-rc.1039
v0.1.0-rc.1037
v0.1.0-rc.1034
v0.1.0-rc.1032
v0.1.0-rc.1030
v0.1.0-rc.1028
v0.1.0-rc.1026
v0.1.0-rc.1024
v0.1.0-rc.1022
v0.1.0-rc.1020
v0.1.0-rc.1018
v0.1.0-rc.1016
v0.1.0-rc.1014
v0.1.0-rc.1012
v0.1.0-rc.1009
v0.1.0-rc.1007
v0.1.0-rc.1005
v0.1.0-rc.1003
v0.1.0-rc.1001
v0.1.0-rc.999
v0.1.0-rc.997
v0.1.0-rc.995
v0.1.0-rc.993
v0.1.0-rc.991
v0.1.0-rc.989
v0.1.0-rc.987
v0.1.0-rc.985
v0.1.0-rc.983
v0.1.0-rc.981
v0.1.0-rc.979
v0.1.0-rc.977
v0.1.0-rc.975
v0.1.0-rc.973
v0.1.0-rc.971
v0.1.0-rc.969
v0.1.0-rc.967
v0.1.0-rc.965
v0.1.0-rc.963
v0.1.0-rc.961
v0.1.0-rc.959
v0.1.0-rc.957
v0.1.0-rc.955
v0.1.0-rc.953
v0.1.0-rc.951
v0.1.0-rc.949
v0.1.0-rc.947
v0.1.0-rc.945
v0.1.0-rc.943
v0.1.0-rc.941
v0.1.0-rc.939
v0.1.0-rc.937
v0.1.0-rc.935
v0.1.0-rc.933
v0.1.0-rc.931
v0.1.0-rc.929
v0.1.0-rc.927
v0.1.0-rc.925
v0.1.0-rc.923
v0.1.0-rc.921
v0.1.0-rc.919
v0.1.0-rc.917
v0.1.0-rc.915
v0.1.0-rc.913
v0.1.0-rc.911
v0.1.0-rc.908
v0.1.0-rc.906
v0.1.0-rc.904
v0.1.0-rc.902
v0.1.0-rc.900
v0.1.0-rc.898
v0.1.0-rc.896
v0.1.0-rc.894
v0.1.0-rc.892
v0.1.0-rc.890
v0.1.0-rc.888
v0.1.0-rc.886
v0.1.0-rc.884
v0.1.0-rc.882
v0.1.0-rc.880
v0.1.0-rc.876
v0.1.0-rc.874
v0.1.0-rc.872
v0.1.0-rc.870
v0.1.0-rc.868
v0.1.0-rc.866
v0.1.0-rc.864
v0.1.0-rc.861
v0.1.0-rc.859
v0.1.0-rc.857
v0.1.0-rc.854
v0.1.0-rc.852
v0.1.0-rc.850
v0.1.0-rc.848
v0.1.0-rc.846
v0.1.0-rc.844
v0.1.0-rc.842
v0.1.0-rc.840
v0.1.0-rc.838
v0.1.0-rc.836
v0.1.0-rc.834
v0.1.0-rc.832
v0.1.0-rc.830
v0.1.0-rc.828
v0.1.0-rc.826
v0.1.0-rc.824
v0.1.0-rc.822
v0.1.0-rc.820
v0.1.0-rc.818
v0.1.0-rc.816
v0.1.0-rc.814
v0.1.0-rc.812
v0.1.0-rc.810
v0.1.0-rc.808
v0.1.0-rc.805
v0.1.0-rc.803
v0.1.0-rc.801
v0.1.0-rc.799
v0.1.0-rc.797
v0.1.0-rc.795
v0.1.0-rc.793
v0.1.0-rc.791
v0.1.0-rc.789
v0.1.0-rc.786
v0.1.0-rc.784
v0.1.0-rc.782
v0.1.0-rc.778
v0.1.0-rc.776
v0.1.0-rc.774
v0.1.0-rc.772
v0.1.0-rc.770
v0.1.0-rc.768
v0.1.0-rc.766
v0.1.0-rc.764
v0.1.0-rc.762
v0.1.0-rc.760
v0.1.0-rc.758
v0.1.0-rc.756
v0.1.0-rc.754
v0.1.0-rc.750
v0.1.0-rc.748
v0.1.0-rc.746
v0.1.0-rc.744
v0.1.0-rc.742
v0.1.0-rc.740
v0.1.0-rc.738
v0.1.0-rc.736
v0.1.0-rc.734
v0.1.0-rc.732
v0.1.0-rc.730
v0.1.0-rc.728
v0.1.0-rc.726
v0.1.0-rc.724
v0.1.0-rc.722
v0.1.0-rc.720
v0.1.0-rc.718
v0.1.0-rc.716
v0.1.0-rc.714
v0.1.0-rc.712
v0.1.0-rc.710
v0.1.0-rc.708
v0.1.0-rc.706
v0.1.0-rc.704
v0.1.0-rc.702
v0.1.0-rc.700
v0.1.0-rc.697
v0.1.0-rc.695
v0.1.0-rc.693
v0.1.0-rc.690
v0.1.0-rc.688
v0.1.0-rc.686
v0.1.0-rc.684
v0.1.0-rc.682
v0.1.0-rc.680
v0.1.0-rc.678
v0.1.0-rc.676
v0.1.0-rc.674
v0.1.0-rc.672
v0.1.0-rc.670
v0.1.0-rc.668
v0.1.0-rc.666
v0.1.0-rc.664
v0.1.0-rc.662
v0.1.0-rc.660
v0.1.0-rc.658
v0.1.0-rc.656
v0.1.0-rc.654
v0.1.0-rc.652
v0.1.0-rc.650
v0.1.0-rc.648
v0.1.0-rc.646
v0.1.0-rc.644
v0.1.0-rc.642
v0.1.0-rc.640
v0.1.0-rc.638
v0.1.0-rc.636
v0.1.0-rc.633
v0.1.0-rc.631
v0.1.0-rc.629
v0.1.0-rc.627
v0.1.0-rc.625
v0.1.0-rc.623
v0.1.0-rc.621
v0.1.0-rc.619
v0.1.0-rc.617
v0.1.0-rc.615
v0.1.0-rc.613
v0.1.0-rc.611
v0.1.0-rc.609
v0.1.0-rc.607
v0.1.0-rc.605
v0.1.0-rc.603
v0.1.0-rc.601
v0.1.0-rc.599
v0.1.0-rc.597
v0.1.0-rc.595
v0.1.0-rc.593
v0.1.0-rc.591
v0.1.0-rc.589
v0.1.0-rc.587
v0.1.0-rc.585
v0.1.0-rc.583
v0.1.0-rc.581
v0.1.0-rc.579
v0.1.0-rc.577
v0.1.0-rc.575
v0.1.0-rc.573
v0.1.0-rc.571
v0.1.0-rc.569
v0.1.0-rc.567
v0.1.0-rc.565
v0.1.0-rc.563
v0.1.0-rc.561
v0.1.0-rc.559
v0.1.0-rc.557
v0.1.0-rc.555
v0.1.0-rc.553
v0.1.0-rc.551
v0.1.0-rc.549
v0.1.0-rc.547
v0.1.0-rc.545
v0.1.0-rc.543
v0.1.0-rc.541
v0.1.0-rc.539
v0.1.0-rc.537
v0.1.0-rc.535
v0.1.0-rc.533
v0.1.0-rc.531
v0.1.0-rc.529
v0.1.0-rc.527
v0.1.0-rc.525
v0.1.0-rc.523
v0.1.0-rc.521
v0.1.0-rc.519
v0.1.0-rc.516
v0.1.0-rc.513
v0.1.0-rc.510
v0.1.0-rc.507
v0.1.0-rc.504
v0.1.0-rc.501
v0.1.0-rc.498
v0.1.0-rc.495
v0.1.0-rc.492
v0.1.0-rc.489
v0.1.0-rc.486
v0.1.0-rc.483
v0.1.0-rc.480
v0.1.0-rc.477
v0.1.0-rc.474
v0.1.0-rc.471
v0.1.0-rc.468
v0.1.0-rc.465
v0.1.0-rc.462
v0.1.0-rc.459
v0.1.0-rc.456
v0.1.0-rc.453
v0.1.0-rc.450
v0.1.0-rc.447
v0.1.0-rc.444
v0.1.0-rc.441
v0.1.0-rc.438
v0.1.0-rc.435
v0.1.0-rc.432
v0.1.0-rc.429
v0.1.0-rc.426
v0.1.0-rc.423
v0.1.0-rc.420
v0.1.0-rc.417
v0.1.0-rc.414
v0.1.0-rc.411
v0.1.0-rc.407
v0.1.0-rc.404
v0.1.0-rc.401
v0.1.0-rc.398
v0.1.0-rc.395
v0.1.0-rc.392
v0.1.0-rc.389
v0.1.0-rc.386
v0.1.0-rc.383
v0.1.0-rc.380
v0.1.0-rc.377
v0.1.0-rc.374
v0.1.0-rc.371
v0.1.0-rc.368
v0.1.0-rc.365
v0.1.0-rc.362
v0.1.0-rc.359
v0.1.0-rc.356
v0.1.0-rc.353
v0.1.0-rc.350
v0.1.0-rc.347
v0.1.0-rc.344
v0.1.0-rc.341
v0.1.0-rc.338
v0.1.0-rc.335
v0.1.0-rc.332
v0.1.0-rc.329
v0.1.0-rc.326
v0.1.0-rc.323
v0.1.0-rc.320
v0.1.0-rc.317
v0.1.0-rc.314
v0.1.0-rc.311
v0.1.0-rc.308
v0.1.0-rc.305
v0.1.0-rc.302
v0.1.0-rc.298
v0.1.0-rc.295
v0.1.0-rc.292
v0.1.0-rc.289
v0.1.0-rc.286
v0.1.0-rc.283
v0.1.0-rc.280
v0.1.0-rc.277
v0.1.0-rc.274
v0.1.0-rc.271
v0.1.0-rc.268
v0.1.0-rc.265
v0.1.0-rc.262
v0.1.0-rc.259
v0.1.0-rc.256
v0.1.0-rc.253
v0.1.0-rc.250
v0.1.0-rc.247
v0.1.0-rc.244
v0.1.0-rc.241
v0.1.0-rc.238
v0.1.0-rc.235
v0.1.0-rc.232
v0.1.0-rc.229
v0.1.0-rc.226
v0.1.0-rc.223
v0.1.0-rc.220
v0.1.0-rc.216
v0.1.0-rc.213
v0.1.0-rc.210
v0.1.0-rc.207
v0.1.0-rc.204
v0.1.0-rc.201
v0.1.0-rc.198
v0.1.0-rc.195
v0.1.0-rc.192
v0.1.0-rc.189
v0.1.0-rc.186
v0.1.0-rc.183
v0.1.0-rc.180
v0.1.0-rc.177
v0.1.0-rc.174
v0.1.0-rc.171
v0.1.0-rc.168
v0.1.0-rc.165
v0.1.0-rc.162
v0.1.0-rc.159
v0.1.0-rc.156
v0.1.0-rc.153
v0.1.0-rc.150
v0.1.0-rc.147
v0.1.0-rc.144
v0.1.0-rc.141
v0.1.0-rc.138
v0.1.0-rc.135
v0.1.0-rc.132
v0.1.0-rc.129
v0.1.0-rc.126
v0.1.0-rc.123
v0.1.0-rc.120
v0.1.0-rc.117
v0.1.0-rc.114
v0.1.0-rc.111
v0.1.0-rc.108
v0.1.0-rc.104
v0.1.0-rc.101
v0.1.0-rc.98
v0.1.0-rc.95
v0.1.0-rc.92
v0.1.0-rc.89
v0.1.0-rc.86
v0.1.0-rc.83
v0.1.0-rc.80
v0.1.0-rc.77
v0.1.0-rc.73
v0.1.0-rc.70
v0.1.0-rc.66
v0.1.0-rc.62
v0.1.0-rc.58
v0.1.0-rc.54
v0.1.0-rc.50
v0.1.0-rc.46
v0.1.0-rc.42
v0.1.0-rc.38
v0.1.0-rc.34
v0.1.0-rc.30
v0.1.0-rc.26
v0.1.0-rc.22
v0.1.0-rc.16
v0.1.0-rc.1
Labels
Clear labels
Drop everything
High priority
Medium priority
Assignments routed to the LongCat NightProwl evaluation worker
Backend service
Continuous integration / actions
Frontend / UI
Meta / planning
Gitea Pages
Repo template / standards
P0
Drop everything
P1
High priority
P2
Medium priority
agent:nightprowl
Assignments routed to the LongCat NightProwl evaluation worker
backend
Backend service
ci
Continuous integration / actions
frontend
Frontend / UI
meta
Meta / planning
pages
Gitea Pages
template
Repo template / standards
Milestone
Clear milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Clear assignees
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
No dependencies set.
Reference: stackchain/stackchain-dashboard#1415
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Telegram human-gate messages are getting lost among normal conversation and repeated automated status updates. Alexander needs one mobile inbox that can be worked to zero.
Product outcome
Add a first-class Human Gates queue to Stackchain Dashboard. Producers submit hash-bound review requests once; updates coalesce there. Telegram/push becomes a terse count + deep link, never the review record itself.
Required behavior
#/my-work/human-gates; no repository/title/body content in lock-screen notification payloads.3 human gates waitingwith the deep link; gate details remain in the inbox.First producer
The private creative review workflow that currently emits
PRIVATE REVIEW — NOT RELEASEDand asks forRELEASEorHOLDshould post/update this inbox instead.Acceptance
Implementation context / migration inventory:
7679c6cfd7ccDaily Drop Human Gate Receipt — script directly calledhermes senddespite local cron delivery.c90e6f034448Sovereign Signal Private Human Gate — delivered into the origin thread every 15 minutes.The Tenth Test, hashc7f85e5a…, technical pass, human/score gates open. Alexander later replied “Approved”; migrate as a release override receipt rather than leaving it pending.The Packet Is Not the Workshop, hashc21cc5db…, pending.The Margin Traveled Too, no candidate hash because technical verification failed; pending correction, not releasable.HARD MONEY, HUMAN HANDSis already APPROVED and belongs in history, not pending.Do not resume either Telegram producer until it writes the inbox and only a coalesced count/deep-link notifier remains.
Independent controller review — CHANGES REQUESTED
Exact candidate:
3076ffa8808e70c714286906df73fa9fe82eca02(base7960f14b5b4946a356bfd90b0a475d510ebfbca5). Nothing pushed, merged, or deployed.Baseline independently reproduced so far: Human Gates targeted/relevant tests
100 passed; syntax and diff checks pass. One contract failure blocks shipment:Decision retry identity is not durable
frontend/human-gates.jscreates a fresh random idempotency key on every click. If the server commits a Release/Hold but the response is lost, the UI keeps the gate and a retry generates a different key. The server then returns409 Gate revision is stale; the user cannot recover the already-created receipt through the workflow.Reproduction:
/tmp/human_gate_retry_probe.jsproduced two different keys for identical retry payloads:same:false.GateConflict: Gate revision is stale.Required correction: persist one operation identity and exact payload per gate revision/decision until a confirmed receipt is received; replay it after timeout/reload. On stale revision after an uncertain send, reconcile authoritative gate state and recover the account-bound receipt rather than making the operator guess.
Also complete the issue's first-producer requirement before shipment: current code documents intake but does not migrate
daily_drop_human_gate_notify.py/ Sovereign producers, import current gates, or provide a service-authenticated producer path. Both direct Telegram gate jobs remain paused to stop inbox noise.A second hostile review of this exact head is still running; further findings may follow.
Full hostile review — CHANGES REQUESTED
Exact candidate reviewed:
3076ffa8808e70c714286906df73fa9fe82eca02against7960f14b5b4946a356bfd90b0a475d510ebfbca5.Independent baseline is green (
100focused tests;2695 passed, 24 skippedfull suite), but invariant probes found these release blockers:#/my-work/human-gatesis rejected bywork-route.jsand erased.principal_id, permitting loss on rename and possible transfer if a login is reused.sourceis self-asserted by the request body, allowing one authorized actor to impersonate another producer and supersede its pending candidate.../..; URL validation accepts malformedhttps://and authority-confusion forms.has_*_key()preflights create a TOCTOU status race where concurrent first requests can both report201.reviewNext()on the current item.Areas that held: parameterized SQL and atomic writes, immutable same-hash facts, account-scoped lookups under the current key, server-side release/checklist/override enforcement, 64 KiB request boundary, no-store coverage, DOM escaping, offline decision refusal, and cache purge on sign-out.
A bounded correction worker is now addressing every finding with a failing behavioral test before each fix. Candidate remains unpushed, unmerged, and undeployed. The direct Telegram gate jobs remain paused.
UX clarification from Alexander
The Human Gates front end should be deliberately simple. Every pending card gets two primary actions:
One-click Approve remains hash/revision-bound and produces the normal durable receipt. The click itself records the review attestations; there should not be three extra checkbox clicks on the clean path.
A blocked/failing candidate must not be silently one-click released. Its card routes to Review, where an explicit override reason is still required. Disable repeated submits while a decision is in flight and preserve the same operation identity across uncertain retries.
Acceptance tests should cover clean one-click approval, blocked candidate requiring Review/override, selected-card routing, and the 390×844 mobile layout.
Independent review of correction candidate
6aace003— CHANGES REQUESTEDThe correction passes its submitted targeted suite, but three adversarial probes still block shipment:
Offline cache crosses stable-principal ownership.
frontend/human-gates.js:16keys cached gate facts by mutable login. A different Gitea principal reusing the same login on that browser receives the former principal's cached exact hashes/details before live fetch, or indefinitely offline./tmp/human_gate_cache_reuse_probe.jsobservedleaked:true. Use stable authenticated principal ID for cache identity and never adopt legacy login-key gate caches.Detail decision double-click skips a gate. Only quick-card Approve is coalesced. Two rapid
decideAndNext()calls submit twice, decrementpending_counttwice, and advance the fixed snapshot twice./tmp/human_gate_detail_double_probe.jsobservedposts:2, currentc, whilebremained queued. Coalesce/disable every decision path by exact gate/revision/decision operation and apply a receipt once.Structurally malformed cursors reach SQLite. A base64/JSON-valid cursor containing a list/object in a numeric position raises
sqlite3.ProgrammingError, which the API reports as temporary store failure (503). Validate exact cursor arity, scalar types/ranges, and ordering fields before SQL; invalid cursors must be 422.The exact candidate remains unpushed, unmerged, and undeployed. A second independent hostile reviewer is still testing the head for additional findings.
390×844 visual receipt — additional blockers
I rendered the exact
6aace003UI at 390×844 with real Chromium. Geometry showed no horizontal overflow and 44px action targets, but the screenshot found two visual blockers:The persistent bottom navigation also overlays the panel viewport. Correction needs explicit mobile chrome/layer spacing and a clearly disabled/omitted blocked Approve action, backed by a real 390×844 screenshot/geometry test.
Second hostile review complete — correction launched
The second independent reviewer confirmed the cache, cursor, double-decision, and 390×844 findings. It also found the HTTPS reference validator still accepts ambiguous inputs including fullwidth/confusable hosts, percent-encoded authority characters, trailing-dot hosts, empty/out-of-range/custom ports, fragments, and percent-encoded controls.
Examples accepted by
6aace003included:https://example.com/pathhttps://%65xample.com/pathhttps://evil%40trusted.example/pathhttps://example.com:99999/pathhttps://example.com/path#https://evil.testhttps://example.com/%0aevilA new bounded correction is fixing all five remaining blocker groups with failing tests first, including real Playwright geometry at 390×844. Exact candidate remains unpushed, unmerged, and undeployed.
Private lab frontend preview
Interactive synthetic-data preview is served at:
https://forge.alexanderwhitestone.com/timmy-staging/human-gates/f456a3b897a7.This preview is a UX handoff only. The integrated backend candidate remains blocked from merge/deployment until exact-head hostile review passes.
Exact-head UX review of
48acc938— one blocker remainsThe security/race corrections pass the expanded targeted suite (
174 passedindependently), and the 390×844 geometry is no longer clipped. However, the exact screenshot and a deterministic probe show the integrated inbox still violates the requested simple interaction:reviewNext()and renders the first full detail below the cards before Alexander clicks Review.Probe
/tmp/human_gate_simple_ui_probe.jsobserved:Required UX: initial route is card-only. Review intentionally opens one focused detail view/modal with a clear Back/Close-to-list action. Clean Approve remains one click from the card. After a reviewed decision, return to the card list or intentionally open the next review only when the operator chose a review-to-zero session.
Candidate remains unpushed, unmerged, and undeployed. The private lab preview already demonstrates the desired card-first behavior at
/timmy-staging/human-gates/.Final hostile review of
48acc938— two corrections requiredThe reviewer independently confirmed the card-first UX defect and found one additional queue correctness race:
load()response can arrive after a successful decision-to-zero and resurrect the decided gate in the queue/cache. Loads need coalescing or mutation-generation guards so stale reads cannot overwrite newer decisions.All prior security, principal isolation, cursor, URL, decision-idempotency, no-store/auth/CSRF, DOM/XSS, and mobile geometry probes held.
A final bounded TDD correction is running for these two findings. The private lab preview remains available and already uses the desired card-first interaction. Integrated candidate remains unpushed, unmerged, and undeployed.
Exact-head controller probe of
b9352d3— one interaction regressionThe initial 390×844 card-first view now matches the requested simple UI, and the stale-load regression is covered. One-click Approve still accidentally enters review-session mode:
approve(gateId)callsselect(gateId).performDecision()advancesreviewIndexand callsreviewNext().Probe
/tmp/human_gate_quick_approve_stays_list_probe.jsafter approving card A with card B pending:Required behavior: one-click card Approve removes the clean card and remains on the compact card list. Only an explicit Review click should enter/continue the review-to-zero detail session. Add a two-card regression and mobile interaction assertion.
Candidate remains unpushed, unmerged, and undeployed.
Exact-head
7ba1481hostile verdict — CHANGES REQUESTEDThe full suite passed (
2774 passed, 24 skipped), but independent probes found two release blockers:409and the authoritative reconciliation GET then fails, cached data is incorrectly treated as authoritative: the client returnsreconciled: true, deletes the persisted operation, and may show the stale conflicted card.A bounded strict-TDD correction is running. Candidate remains unpushed, unmerged, and undeployed.
Main advanced: neutral reconciliation in progress
Exact candidate
78a4977passed hostile review and full verification (2776 passed, 24 skipped). Before push,origin/mainwas refreshed and found to already contain merged Human Gates PR #1416 ate9d257e, with a parallel implementation and progressive identity-hydration fixes.A direct rebase exposed substantive overlapping design conflicts, so it was aborted cleanly rather than choosing a side blindly. A neutral reconciliation is now porting only the independently proven missing/superior invariants from
78a4977onto current main while preserving #1416's disjoint fixes. The resulting exact head will be fully re-tested and hostile-reviewed before any push or PR.No branch has been pushed from this work and nothing was merged or deployed by this controller.
Reconciled head
e6fc86f— CHANGES REQUESTEDCurrent-main integration kept progressive behavior green (
2778 passed, 24 skipped) but hostile review found four blockers:<principal_id>:<login>gates/receipts into an unreachable legacy namespace.:0443.A strict-TDD correction is running on the current-main integration branch. Nothing has been pushed, merged, or deployed by this controller.