Skip to content

Backlog

Anushka Wijesundara edited this page Oct 15, 2026 · 25 revisions

ServiceOps current backlog

Updated 2026-10-15 (Asia/Tokyo). This register separates current work from historical evidence. Implementation and verification are separate states; an older “Verified” entry does not prove the current deployment or every external dependency.

Current delivery

Current runtime: v1.113.46 (release commit d66ae3e, image ghcr.io/awijesundara/serviceops-server@sha256:943801fa…10fd, SLSA provenance verified), MicroK8s Helm revision 198, migration 20261014_0127, deployed 2026-10-15 after a restore-tested backup (serviceops-backup-pre-1-113-46-202610150547). Revision 197 (an attempt to deploy v1.113.45) failed safely in its migration hook because the database was already at 0127; v1.113.46 contains both lines of work.

ID Priority Status Work / acceptance
B-463 P1 Verified: v1.113.46 deployed, Helm 198 Investigate with AI only for the incident's assignee and assigned team; waiting approvals link to their record; every manager portal count opens the matching filtered list or task queue; sign-out keeps Cloudflare Access from signing straight back in; floating menus close on an outside click or Escape; links use the brand colour; static asset URLs carry a content fingerprint so deploys reach browsers; fixed a 500 on /approvals for non-administrators; Helm test reaches the static edge port. Released with full QA: 1,885 unit tests, 100 end-to-end, browser and accessibility suites, PostgreSQL real-time tests, fuzz on SQLite and PostgreSQL (0 failing routes), tenant sweep (4,110 requests, no leaks).
B-462 P1 Verified: v1.113.46 deployed, Helm 198 Finish the whole-application authorization review: only article authors, managers and administrators may archive knowledge; an active change without an approval chain cannot advance. Complete regression, localization, privilege-replay, PostgreSQL fuzz, browser/accessibility, restore and live rollout checks. Evidence.
B-416 P1 Verified: v1.113.13 deployed, Helm 167 Preserve supplier/owner/CI selections outside picker limits; filter contracts before the display limit; retry notices when no recipient exists.
B-417 P2 Verified: v1.113.13 deployed, Helm 167 CCB/executive assigned-user lists and searchable Add user dropdowns; per-user removal; validated same-page returns; open group retention and visible save confirmation.
B-418 P2 Complete Consolidate this register and implementation plan, retain historical evidence, remove verified disposable artifacts, and record the administration UI convention.
B-461 P1 Verified: v1.113.46 deployed, Helm 198 Requesters withdraw a request or a single requested item while it is open, with a reason: the running approval chain is cancelled (votes become No Longer Required), open SCTASKs close as Skipped, SLAs stop, the REQ settles to Cancelled, history and audit are recorded, and pending approvers, assignees and the requester are notified (request.withdrawn, editable wording). Only the person it was raised by or for, or an administrator, can withdraw.
B-460 P1 Verified: v1.113.46 deployed, Helm 198 Configurable approval policies, replacing every fixed approval route: Administration → Approval policies defines ordered stages per tenant for catalog requests, changes and other enterprise records (approver source, decision rule, condition, fallback, duplicate skipping), shown in plain language. Catalog items choose a policy. The defaults reproduce the previous change and enterprise routes; the catalog default now asks the item's own fulfilment team after the line manager, instead of always the Service Desk (fixes a Unix-routed item going to "Fulfillment authorization"). Migration 20261014_0127.
B-459 P3 Planned Jira Plans (Advanced Roadmaps): cross-project plans, hierarchy above epic, team capacity, scenarios, dependencies report. Plan
B-458 P2 Planned Development integration and smart commits, Jira and CSV import, webhooks, REST API parity, project templates, trash, AI (summaries, natural language to JQL, epic breakdown), iOS work items. Plan
B-457 P2 Planned Automation rules: triggers, conditions, actions, branches, smart values, templates, audit log. Plan
B-456 P2 Planned Dashboards and gadgets. Plan
B-455 P1 Planned Permission schemes, custom project roles, issue security levels, notification schemes. Plan
B-454 P1 Planned Workflow engine (transitions, conditions, validators, post functions), custom issue types, custom fields, screens, field configurations, schemes. Plan
B-453 P2 Planned Timeline: bars, dependencies, drag scheduling, release and sprint markers. Plan
B-452 P1 Planned Jira reports: burndown, burnup, sprint, velocity, cumulative flow, control chart, epic, version, release burndown, issue reports. Plan
B-451 P1 Planned Scrum and Kanban boards (several per project, filter-based), backlog, sprints including parallel sprints, estimation. Plan
B-450 P1 Planned JQL (operators, history operators, functions, ORDER BY, autocomplete), issue navigator, saved/shared/favourite filters, subscriptions, CSV export. Plan
B-449 P1 Implemented and tested on branch (not yet released) Work item completeness as in Jira: resolutions, components (lead, default assignee), versions (fix/affects, release with move, unrelease, archive, merge, delete, release notes), time tracking (Jira durations, original/remaining/spent, work logs), votes, stars, flag, environment, reporter changes, comment visibility by role, comment edit/delete/reactions, tenant link types, clone (subtasks, links, attachments), move (new key, old key redirects), convert, bulk change, Markdown, Your work, global create, share, print, keyboard shortcuts, organisation settings, mutable/templated notification events, REST additions. Migration 20261014_0126. Evidence: 22 phase 2 tests plus all project tests (90 with policy checks); browser test of Markdown preview, log work, shortcut help, bulk change, people picker; axe WCAG 2.1 AA with no violations on every project page (1440/390 px, light/dark); full suite 1,839 passed; browser smoke 100 passed; stability fuzz 0 failing routes on SQLite and PostgreSQL (131 pages, 199 forms); cross-tenant sweep clean; project pages 50–145 ms at 500 users and 20,000 work items on PostgreSQL. Plan
B-443 P1 Implemented and tested on branch (not yet released) Project management phase 1: projects (private/open, archive), members and roles, per-project statuses with WIP limits, work items (epic, story, task, bug, subtask) with assignees, watchers, labels, dates, points, estimates, comments with mentions, history, attachments and links to work items and to incidents/changes/problems (which list them back); overview, board (drag, swimlanes, quick add), list (filters, grouping, sorting, inline status), My work items; global search, navigation, notifications, live change notices, REST API (projects:read/projects:write). Migration 20261014_0125. Evidence: 33 project tests (rules, routes, authorization, private projects, other tenant, escaping, attachments, live-update grants, API with idempotency); browser test of drag, quick add, people picker and inline status; axe WCAG 2.1 AA with no violations on every project page at 1440/390 px, light and dark; full suite 1,818 passed; browser smoke 100 passed; stability fuzz 0 failing routes on SQLite and PostgreSQL (116 pages, 170 forms); cross-tenant sweep clean. At 500 users and 20,000 work items (10,000 in one project) on PostgreSQL every project page measured 30–110 ms. Plan
B-442 P2 Committed (branch, not yet released) Engineering follow-ups. Search: trigram indexes on comments, ticket numbers and CI descriptions (migration 20261013_0123) and the ticket match split into a UNION, so each part uses its indexes; ticket search query 86–310 ms → 1–2 ms on 20,000 tickets / 40,000 comments. Asset tags unique per tenant (contract migration 20261013_0124, verified on PostgreSQL and SQLite). SCIM user list paging (startIndex/count, at most 200). Live work lists: task board, open work, my tasks and ticket lists show "Tickets in this list have changed" for other people's changes (bare signal, agents only). Removed the unused verify_mfa_code. Tests for each; browser check of the list banner. QA: full suite 1,794 passed, browser smoke 100 passed, stability fuzz 0 failing routes on SQLite and PostgreSQL, cross-tenant sweep clean. The QA caught the asset migration re-creating its index on a fresh SQLite schema (fixed).
B-441 P2 Released 1.113.40 RT reference on changes (optional; RT_CHANGE_LINK_ENABLED on the RT connection page, off by default). A new change takes an RT ticket number and Fetch from RT fills title, description (RT text, requestors, custom fields, link) and the owning team mapped from the RT queue; change managers can link an existing change. Each RT ticket links to one change; the change shows the RT link and gets a work note; RT is only read. Tests: fake RT preview, disabled state, requester refused, link and duplicate refusal; browser check of fetch and unknown-ticket message.
B-440 P2 Released 1.113.40 Task board: dropping a card into an empty lane moves it at once (no "No matching work" until refresh), counts update in both lanes, the drop target highlights, failures undo the move with a message. Approval chains: the record column shows the number and title as a link, the chain name opens the record, and the history toggle is a labelled "N earlier versions" button. Browser QA 15/15.
B-439 P1 Released 1.113.40 Live communication. (1) Notification checks send an ETag and get 304 when nothing changed; one tab per browser checks, the rest share its result; 25 s active, 60 s idle or hidden, 2 min backstop with a stream. (2) Server-sent events at /events/stream from a new events service fed by PostgreSQL LISTEN/NOTIFY, sent at commit (never for a rollback): new notifications arrive instantly and an open ticket shows "updated by someone else". Auth through /events/auth with the browser session, re-checked every 5 min; per-user and per-pod limits. Routed through the web pod's nginx edge; LIVE_EVENTS_ENABLED keeps other deployments on timed checks. (3) The outbox worker wakes on a signal instead of waiting 10 s; optional browser desktop notifications (Web Push, RFC 8291/8292, own VAPID key, browser push services only, keys encrypted at rest). Migration 20261013_0122. Tests: RFC 8291 test vector, PostgreSQL commit/rollback signals, events service end to end (only the user's own notifications), worker wake; production check: own notification delivered in under 0.1 s, another user's not delivered, anonymous 401.
B-438 P2 Deployed as candidate e0015c3, Helm 186 UI: the rack location under Configuration item is a pin with "View location" (full position as tooltip); Assigned to shows a small profile picture beside the dropdown instead of repeating the name as a link; linked names look like ordinary text; public profile About and Organization panels align and the manager row no longer breaks; My tasks lists only teams the user belongs to or manages (administrators saw every team). Tests: rack link markup and browser/axe check, work tasks per team (fails on the previous code); full suite 1,766 passed.
B-437 P2 Released 1.113.39; running in candidate e0015c3 Code review of B-433–B-436: TOTP step claimed with a conditional UPDATE so two simultaneous sign-ins with one code cannot both pass; the replay guard resets when MFA is enabled or disabled; the length check validates only values being written, so SQLite and IPFS-mode rows with legacy long values stay editable. Each fix has a test that fails on the previous code.
B-436 P1 Verified: v1.113.37/38 deployed, Helm 185; sizing decision open 500-user evaluation on an isolated copy (20,000 tickets, every run 500 users). Today's footprint collapses (1 pod: 95% failures). Fixed the dashboard counting every ticket in Python (915 → 77 ms) and psycopg running its pure-Python fallback (C driver compiled against Debian libpq; 122 → 53 ms CPU per page). Result: 500 users at normal pace need 4 web pods × 1 CPU and PostgreSQL 2 CPU (steady state p50 94 ms, p95 1.3 s, 0.02% errors); busy all-day use needs about 7–8 web cores and 2–3 PostgreSQL cores, more than this cluster has. Open: scaling production beyond one replica (user decision), poll interval, request-scoped permission caching, search index. Performance.
B-435 P1 Verified: v1.113.36 deployed, Helm 184 Stability: malformed input answers 4xx, never 500. A sweep of every page, form, POST route (admin, agent, requester, manager) and API endpoint on SQLite and PostgreSQL found 10 crashing handlers (unchecked int()/date parsing, including adding a problem or RITM task without a team), an audit() crash on blank targets, duplicate asset tags hitting the unique constraint, NUL characters and overlong text failing in PostgreSQL, and malformed AI/NetBox/Snipe-IT counts. All fixed (request_values.py, input_limits.py); improvement owners are now limited to active agents in the same tenant. 16 regression tests fail on the previous code and pass now; full suite 1,759 passed; the rerun sweep finds 0 failures. tools/stability_fuzz.py repeats it. Production error log had been cleared on 2026-10-03 and has recorded no errors since; cumulative counters show 1,524 historic 500s, mostly before that date. Open: asset tags are unique across tenants, not per tenant (needs a migration).
B-434 P1 Verified: v1.113.35 deployed, Helm 183 Whole-application review (2026-10-12). Clean: lint, bandit, pip-audit, XSS/SQL sinks, anonymous route crawl (11 of 279 routes public, all by design), and a cross-tenant sweep of every ID-based web and API route (3,670 requests, no leaks). Fixed: wrong MFA codes never locked an account (now counted toward LOGIN_MAX_ATTEMPTS, web and mobile; a correct password no longer resets the count); TOTP codes could be replayed within 90 s (migration 20261012_0121, single-use steps); unknown usernames answered faster (equal-time Argon2id check); signed-in and API responses lacked Cache-Control (no-store default); OpenAPI lacked 22 /api/v1 routes (added, with a completeness test); workers lacked PUBLIC_BASE_URL. PostgreSQL 17 downgrade/roll-forward rehearsal with 20,098 records preserved data; full suite 1,742+ passed. Docs: configuration reference (all environment variables and 131 settings), SCIM/comments/mobile API reference, migrations 0119–0121, Statement of Applicability re-assessed, metrics list. Open: API_TOKEN_PEPPER unset (needs planned token re-issue), METRICS_TOKEN empty, key-rotation procedure, SCIM list unpaged, completed one-off Jobs accumulate.
B-433 P2 Verified: v1.113.34 deployed, Helm 182 Code review of B-413 follow-up (v1.113.11): the CI owning team field appeared beside every CI picker in a form row, so change and problem pages showed it twice and the CMDB relationship form gained an unrelated field. It is now opt-in (incident and new-ticket pickers); other pickers keep the one-line hint. Picking a different, unsaved CI on an incident hides the saved CI's rack location bar. Pin icon is one macro; the Affected CIs relationship select has an accessible name (axe select-name). Tests: test_ticket_rack_location.py (server checks plus a real-browser test at 1440 and 390 px with axe WCAG 2.1 AA, 0 violations); full suite 1,886 passed, 0 failed.
B-432 P1 Verified: v1.113.33 deployed, Helm 181 Task board decided card permissions with ~3 queries per card (981 queries for a 300-card board). Batched into three queries with identical rules (equivalence and query-budget tests). PostgreSQL, 5,000 tickets: 1,091 → 111 ms median. 300-user k6 mix on two cores: 41 → 49 req/s, p95 22 → 16 s.
B-431 P2 Verified: v1.113.33 deployed, Helm 181 Public profiles: every user name, picture and @mention links to /people/<id> (same tenant, signed in). Owners choose public/private per field; mobile phone and employee ID private by default; private pictures served only to owner/admins. Migration 20261011_0120 (PostgreSQL upgrade/rollback verified). Light/dark/mobile visual check.
B-430 P1 Verified code fixes: v1.113.32/33 deployed, Helm 181; two-replica footprint not applied (one-replica rule); 1,000-user gate open under B-423 Fix mobile approval starvation; signed pagination for approvals/knowledge/CMDB/notifications; preserve Helm proxy trust false; two web replicas, dedicated web resources, load-tolerant probes and protected static offload. Review remediation.
B-429 P1 Verified: v1.113.31 deployed, Helm 180; live Cloudflare Access, real OpenLDAP and Chat pipeline checks Code review fixes: Google Chat /escalate supersedes change approvals and accepts only teams; enterprise updates validate priority, risk and a same-tenant assignee (400, no partial state change); LDAP username matching never adopts an administrator account; backup codes are shape-checked before Argon2; migration 20261011_0119 enforces unique tenant-wide approval-group links (PostgreSQL 17 upgrade, dedupe, rollback and re-upgrade verified); Cloudflare Access keys refetch on rotation (at most once a minute); change detail times labelled UTC. 10 negative regressions.
B-428 P2 Verified: v1.113.30 deployed, Helm 179; Safari acceptance pending Preview themes immediately without persisting until Save; reset and discard behavior; Ocean/Indigo/Sandstone/Graphite/Midnight; shared surfaces, focus and mobile layout. Review.
B-427 P1 Verified: v1.113.29 deployed, Helm 178 Complete AI change drafts carry dates, full plans, eligible team and supplied CI evidence to the review form. Profile timezone is respected; incomplete drafts are flagged. 1,700 local tests and desktop/mobile review-and-submit checks passed. Live Gemini selected the correct CI/team and complete fields; the real review form retained them, without ticket creation.
B-426 P2 Verified: v1.113.29 deployed, Helm 178 Persist authenticated iOS origin on comments and activity; display alongside AI-assisted badges. Additive migration 20261011_0118 preserves existing rows.
B-425 P2 Verified: v1.113.29 deployed, Helm 178 Attachment deletion requires a reason; append-only ticket history retains it and linked comments show a deleted notice. Web and comments API retain filename/status; no schema change. Permissions, rollback, escaping and desktop/mobile browser checks covered.
B-424 P1 Verified backend: v1.113.29 deployed, Helm 178 Ticket API and iOS expose authorized Web UI information, CI/rack links and expandable detail sections. 31 backend regressions, simulator build and legacy/rich decoder checks passed. INC0010559 verified through the public API. Physical-device/VoiceOver acceptance remains pending. Guide.
B-419 P2 Implemented; backend acceptance and iOS build passed Grouped mobile workspace; asset location/rack/hardware/ownership/lifecycle details; ServiceOps connection information. 25 backend tests passed. Visual/device acceptance remains pending.

| B-420 | P2 | Implemented; backend, build and component rendering verified | Front/rear server rack view, real U capacity, selected asset highlight, permission-scoped devices and placement warnings. 26 backend tests passed; Helm 171 healthy. Physical-device acceptance pending. |

| B-421 | P2 | Verified: governed v1.113.25; retained in v1.113.29, Helm 178 | Professional web theme cards: Classic Light, Executive Navy, Slate, Forest, Dark and Match system. Per-account persistence, keyboard selection, responsive layout and text contrast verified. | | B-422 | P1 | Verified: v1.113.24 deployed, Helm 173 | Task board builds only shown cards (120 → 19 ms at 10,000 tickets); task board, analytics, manager portal and user admin no longer bind unbounded id lists (PostgreSQL 65,535-parameter limit); malformed impact/urgency/assignee return 400 instead of 500; MFA backup codes Argon2id; CodeQL findings resolved (0 open). | | B-423 | P1 | Superseded by B-436 (sizing measured; scaling decision open) | Production load test saturated at ~450 concurrent users during sign-in (1 web pod, 1 CPU, 8 slots) and became unready for ~2 minutes. Probe isolation is now deployed (B-430) and the dominant CPU defect fixed (B-432). Remaining gap is raw CPU: ~25 req/s per core after B-432, while the k6 script's 3–8 s think time makes 1,000 VUs ≈ 400 req/s (≈16 cores). Decide between more web CPU and a realistic think time before re-running. Results · Remediation. |

Outstanding work and verification

These statuses are carried from the last recorded register entry. They require fresh evidence before promotion to Verified. Historical dependency or publication requests are not authorization for this delivery.

ID Priority Recorded status Scope
B-001 P0 Implemented Remove demo mode/personas/sample seeding/default passwords; fresh-install and cleanup tests pass. History.
B-004 P0 In progress Tenant-specific chained HMAC evidence, correlation, database mutation denial, verification-gated signed export and adversarial tests are implemented History.
B-005 P0 In progress Central object policies and adversarial coverage protect ticket, request, approval-chain, attachment, enterprise/problem, analytics and search surfaces, plus a validated fail-closed Git-backed field-projection registry History.
B-006 P0 Implemented File-mounted bootstrap secrets, bootstrap-password exclusion from workers, split Kubernetes bootstrap/runtime Secrets, retirement tooling, credential rotation History.
B-007 P0 In progress Digest-pinned images, full-SHA-pinned CI actions, Trivy blocking, CycloneDX SBOM, keyless Cosign signing, SLSA/SBOM attestations, Sigstore admission enforcement History.
B-008 P0 Open Run penetration test and remediate critical/high findings. History.
B-009 P0 In progress SHA-256 recovery-set manifests, archive traversal protection, isolated logical restore, non-destructive pg_basebackup + continuous-WAL rehearsal History.
B-010 P0 In progress Guarded candidate-image rehearsal, pre-upgrade recovery set, migration gate, Kubernetes retains five revisions with maxUnavailable: 0 History.
B-200 P0 In progress Decompose BP-001 into atomic requirements and governed release epics (ADR-010–019). History.
B-202 P0 In progress Default tenant creation, 15 tenant-owned roots backfilled, tenant-aware query conventions History.
B-203 P0 In progress First stable bounded interface serviceops_core.security History.
B-204 P0 In progress REST v1 tenant/user-bound clients, scopes, cursor pagination, idempotent writes, OpenAPI, live docs at /api/v1/docs History.
B-206 P0 Implemented Git-backed impact/urgency matrix, documented priority overrides, business schedules, SLA lifecycle evidence, breach escalation. History.
B-207 P0 Implemented Git-backed workflow packages, immutable versions, state-entry jobs, retries/dead-letter. History.
B-208 P0 Implemented Durable wait cursors, per-workflow rate limits, manual/API/SLA triggers, idempotency, dead-job replay. History.
B-209 P0 Implemented Reusable subflows, tenant-aware recurring schedules, SKIP LOCKED scheduler claims. History.
B-210 P0 Implemented Credential auth-version invalidation, mounted bootstrap-secret loading, split Kubernetes Secrets. History.
B-211 P0 Implemented Local-auth login lockout with audited events. History.
B-230 P0 Implemented Migration rehearsal script derives head/prior revision dynamically instead of hardcoding. History.
B-231 P0 Implemented tenant_context_id() fails closed instead of defaulting to tenant 1 History.
B-239 P0 Implemented .dockerignore now excludes backups/, .installer-state/, etc History.
B-242 P0 Implemented Authlib CVE-2026-27962 fix. History.
B-244 P0 Implemented Dependency audit sweep (Flask/Authlib/requests/Werkzeug/pytest), secure-cookie default fix for compose.external-db.yaml/.env.example, digest-pinning support in build-dist.sh. History.
B-323 P0 Implemented ServiceOps 1.67.0 browser-quality and search-performance release History.
B-326 P0 Implemented ServiceOps 1.69.0 and iOS 1.2.0 biometric and passkey authentication History.
B-327 P0 Implemented ServiceOps 1.70.0 / iOS 1.3.0 mobile workspace expansion History.
B-335 P0 Implemented (login-only milestone) Direct follow-up to B-331/B-334: user pushed back hard after seeing the side-by-side IPFS demo stack still ran a db (Postgres) container -- "why do we have a db for ipfs version History.
B-350 P0 Implemented Kubernetes database-loss prevention and truthful settings cleanup History.
B-364 P0 Open Cluster API authorization is AlwaysAllow (RBAC not enforced) -- decision needed. Found 2026-09-20 during a cross-project security review: on the production MicroK8s cluster a service account that does not exist is allowed… History.
B-022 P1 Implemented Ticket lists/forms/activity/attachments/checklists; pagination/saved-filter/malware-scanning gaps remain. History.
B-024 P1 Implemented Post-install branding/settings/logo. History.
B-030 P1 Implemented Named team managers, explicit CCB approver authority and approval chains. History.
B-031 P1 Implemented Core INC/PRB/PTASK/CHG/CTASK/REQ/RITM/SCTASK lifecycle and relationship network, known errors, major-incident extension. History.
B-032 P1 Implemented Primary/affected CI and impacted-service task relationships, CI-aware conflict detection, /cmdb manual CI+relationship CRUD, PUT /api/v1/cmdb/configuration-items (cmdb:write), tools/cmdb_sync_agent.sh History.
B-033 P1 Implemented Multi-RITM requests, multiple independently assigned SCTASKs, sequential/parallel task control, closure roll-up, approvals and SLAs. History.
B-050 P1 Implemented Docker bundled/external PostgreSQL deployment; restore/rolling-upgrade proof pending completion. History.
B-051 P1 Implemented Helm HA scaffolding; real multi-zone cluster validation pending. History.
B-052 P1 Open Add supported object storage for attachments, antivirus scanning, encryption and retention. History.
B-061 P1 Implemented LDAP/Keycloak/local admin plus AD-group-to-team login sync; representative external validation pending. History.
B-062 P1 Open Add MFA policy integration, SCIM lifecycle, session inventory/revocation and emergency access controls. History.
B-070 P1 Open Metrics, structured logs, traces, alerting, SLO dashboards, capacity model and runbooks. History.
B-071 P1 Open Load/soak/failover tests with published targets. History.
B-080 P1 Open Accessibility audit to WCAG 2.2 AA. History.
B-090 P1 Open Data classification, retention, legal hold, privacy export/deletion and regional controls. History.
B-130 P1 In progress Durable outbox, worker coordination, bounded retry, SMTP/webhooks/Teams, encrypted secrets, delivery evidence, monitoring ingestion History.
B-205 P1 Implemented Installable PWA manifest, privacy-safe shell-only service worker. History.
B-220 P1 Implemented /work/tasks unified CTASK/PTASK/EVTASK/SCTASK queue; /manager/portal. History.
B-221 P1 Implemented Dashboard "Assigned to me"/SLA breach/Incidents tiles, admin-toggleable History.
B-222 P1 Implemented Notifications carry target links. History.
B-223 P1 Implemented Team-to-team reassignment for incidents/changes, restarting change approval. History.
B-224 P1 Implemented Type-ahead lookups for CIs and cross-record references. History.
B-232 P1 Implemented Reapproval notification deduplication. History.
B-233 P1 Implemented Secure session cookie defaults with explicit insecure-cookie escape hatch. History.
B-234 P1 Implemented Open-redirect guard on UserPreference.start_page. History.
B-235 P1 Implemented Content-Security-Policy header History.
B-236 P1 Implemented Webhook DNS-rebinding/redirect-SSRF re-validation per hop History.
B-237 P1 Implemented Gunicorn timeout/worker-recycling configuration History.
B-238 P1 Implemented Version-string alignment across installer/Compose/Helm/env examples. History.
B-241 P1 Implemented tools/load_test_fixture.py excluded from the production image History.
B-249 P1 In progress Notification read-state, profile AD-sync display, required-field-asterisk consistency, change-plan-edit state guard. History.
B-253 P1 Implemented Whole-app audit plus CMDB depth/hardening pass, driven by a request to make the CMDB "well detailed" and fix cross-cutting code-quality/performance/stability/security issues found along the way History.
B-352 P1 Implemented Professional outbound communication: provider-neutral SMTP plus Google Workspace relay, app-password and OAuth 2.0 modes; guided Google Chat, Telegram bot, Slack, Microsoft Teams, Discord, signed webhook and audit-only SIEM con… History.
B-354 P1 Implemented, hosted pipeline pending Cloudflare Access single sign-on: when CLOUDFLARE_ACCESS_TEAM_DOMAIN/CLOUDFLARE_ACCESS_AUD are configured, /login verifies the edge-forwarded Cf-Access-Jwt-Assertion JWT (RS256 signature against Access's own JWKS via `j… History.
B-402 P1 Implemented Install-wide platform settings under multiple tenants History.
B-403 P1 Implemented Reviewable repair for incident categories reset to "General" by the empty category picker (5f86c1c until 1.104.11, see B-397): tools/repair_reset_categories.py, dry run by default, --apply to commit History.
B-404 P1 Implemented AI privacy hardening after the product owner asked whether other people could read their data through AI chat using the owner's Gemini key (they cannot: evidence is retrieved server-side under the asker's identity, and conversa… History.
B-405 P1 Implemented NetBox import reported "Completed" without importing anything (product owner report, 2026-09-28) History.
B-100 P2 Implemented Administrator post-deployment settings; extend to workflows/numbering/states/notifications/policy versioning. History.
B-120 P2 Open Guided tours and contextual help with versioned content and role targeting. History.
B-121 P2 Open Configurable workspace/page builder. History.
B-225 P2 Open Git history predates 2026-07-27; not recoverable further back. History.
B-240 P2 Implemented Removed dead dark-mode CSS (ADR-012 light-only). History.
B-243 P2 Implemented RPM packaging alternative to git clone. History.
B-264 P2 Implemented Login page never rendered an uploaded company logo — login.html always rendered hardcoded initials ({{ company_name[:2] / upper }}) even though has_company_logo/company_logo() were already wired up and used correctly by t… History.
B-266 P2 Implemented Three requests from live use History.
B-269 P2 Implemented Documentation catch-up for B-265/B-266/B-267/B-268, which shipped real features and fixes without their corresponding manual/API-reference updates at the time History.
B-270 P2 Implemented Per explicit user direction, amended CLAUDE.md's "Documentation control" section (in both this repo and ServiceOps, which keep identical copies) to carve out docs/API_REFERENCE.md as the one deliberate exception to "this … History.
B-271 P2 Implemented Agentless CMDB discovery, requested by the user in GLPI/FusionInventory terms ("automatically detect all the connected resources, switches, hardware.. History.
B-263 P3 Implemented Sidebar navigation used a native OS scrollbar (thick, gray, non-transparent) whenever the item list overflowed vertically, and lacked an explicit overflow-x rule, so a second horizontal scrollbar could also appear — visually … History.
B-331 P3 Implemented (experimental) User requested an optional, install-time-selectable database-less deployment mode using IPFS instead of PostgreSQL, with "better user authentication and recovery" and the explicit constraint that it ship in the same codebase, n… History.

Historical verified work

Retained for traceability. Current acceptance is recorded in the implementation plan; do not use old release numbers or test counts as live state.

ID Priority Recorded status Scope
B-415 P1 Historical verified B-415 in-cluster webhook receivers (2026-10-09): WEBHOOK_INTERNAL_HOSTS (chart proxy.webhookInternalHosts) lets administrator-configured webhooks reach listed in-cluster hosts over http:// and private addresses (loopback an… Evidence.
B-414 P1 Historical verified B-414 serial-number CI lookup and approver groups (2026-10-09): CI pickers and the browse dialog match serial numbers (exact serial first, wildcards escaped) Evidence.
B-413 P1 Historical verified B-413 rack location on tickets (2026-10-09): Tickets whose configuration item has a rack placement show "Rack B4-12 · Tokyo DC1 · U22, front" under Configuration item, the rack and U position on each Affected CIs row, and the C… Evidence.
B-411 P2 Historical verified Documentation refresh (2026-10-08, v1.113.4): recaptured all 28 manual screenshots and the README images from a fresh demo instance, regenerated the platform manual PDF, and noted the per-user theme, ticket attachment drag-and-… Evidence.
B-410 P1 Historical verified Security review corrections (2026-10-03, v1.110.1) Evidence.
B-409 P1 Historical verified Governed release and footprint corrections (v1.110.0, 2026-10-03) Evidence.
B-408 P2 Historical verified AI-drafted ticket notes shown with structure and an "In collaboration with AI" tag (v1.110.0) Evidence.
B-407 P2 Historical verified CMDB rack equipment images and conservative identification (v1.110.0): NetBox → exact bundled model → original local front/rear type illustrations for 13 categories plus unknown equipment; role/class/model/name evidence is visible Evidence.
B-406 P1 Historical verified SCIM project-review corrections (2026-10-02): pathless add/replace deactivation now applies attributes and immediately revokes sessions; duplicate email updates return 409 uniqueness with transactional rollback, including datab… Evidence.
B-401 P2 Historical verified app.py decomposition (CLAUDE.md review priority 13): all 226 routes moved out of create_app() into ten modules under serviceops_core/web/ (platform, auth, api, workspace, tickets, service_requests, cmdb, knowledge, client… Evidence.
B-400 P2 Historical verified Embedded read-only MCP server at POST /api/v1/mcp (serviceops_core/mcp.py, mcp_tools.py), shipped in the application image/chart/RPMs rather than as a separate service Evidence.
B-399 P1 Historical verified ITIL categorisation alignment per docs/ITIL_V5_CATEGORISATION.md (product owner's ITIL Version 5 guidance; aligned with, not certified) Evidence.
B-398 P1 Historical verified Second whole-app review pass (security, authorization, performance, correctness, packaging) Evidence.
B-397 P1 Historical verified Re-check of CLAUDE.md's "Current review priorities" list against current source, requested as a general "review the project and fix any issues" pass Evidence.
B-396 P2 Historical verified Correction to B-394/B-395's version numbers: both entries describe a real local build/deploy (each is explicit that it bypassed hosted CI, commit, push, tag, and publication), but "1.104.2"/"1.104.3" were only ever local versio… Evidence.
B-395 P2 Historical verified Redesigned the dedicated expanded AI chat page to match the supplied two-column reference: a persistent white assistant rail with new conversation, memory, and recent history controls; a large blue-to-lilac conversation canvas;… Evidence.
B-394 P2 Historical verified Reworked the ServiceOps AI chat into the requested compact floating messenger layout while retaining ServiceOps identity and all existing security and access controls Evidence.
B-393 P2 Historical verified Chat widget UI feedback from live-testing (JapanNext deployment, now working after adding the missing AI worker pod -- that fix was operator-side, not a code change: the standalone Kubernetes manifests there never included a `p… Evidence.
B-392 P1 Historical verified Two issues from live-testing with several Gemini connections and a new outbound proxy configured Evidence.
B-391 P2 Historical verified Two fixes from live-testing the AI chat Evidence.
B-390 P1 Historical verified Make outbound-network policy consistent across ServiceOps Evidence.
B-389 P2 Historical verified Fresh whole-application audit requested 2026-09-24 against deployed 1.101.6 Evidence.
B-388 P2 Historical verified Follow-up review of B-387 plus a repo-status fix, both requested in the same "review the whole project, Codex isn't doing anything" pass Evidence.
B-387 P0 Historical verified Expand authorized AI evidence without weakening privacy Evidence.
B-386 P0 Historical verified Fixed a real hallucination the user hit live: chat repeatedly told them a ticket-comment action was "prepared for review" when none existed -- no button appeared, approving did nothing Evidence.
B-377 P1 Historical verified Administrator chat actions (Codex agent implementation, reviewed and finished 2026-09-22): extends the existing human-approved AIAction framework (previously one action: turn an investigation into a ticket comment) to ticket st… Evidence.
B-376 P1 Historical verified Assistant should work with the whole product; chat and admin UI clean-up (user report with screenshots and transcript, 2026-09-21, prompt follow-up 2026-09-22) Evidence.
B-375 P1 Historical verified Get the most out of provider free tiers automatically (user request 2026-09-21, with the Google AI Studio rate-limit table) Evidence.
B-374 P1 Historical verified Assistant usefulness, authority and memory (user transcript review, 2026-09-21) Evidence.
B-373 P1 Historical verified Admin AI page and search fixes (user report, 2026-09-21, screenshot of the Gemini edit dialog) Evidence.
B-372 P1 Historical verified Adding a Gemini key failed (user report, 2026-09-21) Evidence.
B-371 P2 Historical verified CI maintenance (2026-09-21): the supply-chain workflow and its sibling workflows still pinned action versions from early September Evidence.
B-370 P2 Historical verified Whole-AI-code review pass (2026-09-21) after 1.97.0 was deployed and verified live (Helm revision 92, migration 0098, digest equals the governed image) Evidence.
B-369 P1 Historical verified Multiple AI services with privacy-aware routing (user request 2026-09-21) Evidence.
B-368 P1 Historical verified Model-aware request budgets, signed discovery, and a governance gap (2026-09-20) Evidence.
B-367 P1 Historical verified Universal AI connection (user request 2026-09-20, after connecting a llama.cpp-on-Radeon Mac by hand and hitting "This endpoint has not been allowlisted by the deployment operator" with no hint what to do or which model to … Evidence.
B-366 P1 Historical verified AI 2.0: live streaming answers, visible reasoning, and a role-scoped chat assistant (user request 2026-09-20) Evidence.
B-365 P1 Historical verified Self-hosted AI on CPU exceeds ServiceOps' provider time limit Evidence.
B-363 P1 Historical verified Cross-project security review (2026-09-20) Evidence.
B-361 P1 Historical verified User reported being unable to deploy ServiceOps to Kubernetes through a Sonatype Nexus registry proxy and asked to make signature verification optional to unblock it; investigation found the real cause wasn't verification at al… Evidence.
B-360 P1 Historical verified Self-runnable slice of B-080's WCAG 2.2 AA audit: axe-core (already wired into tests/test_e2e_smoke.py) catches static DOM issues but not real keyboard operability, focus order/visibility, reduced-motion behavior, or exact-32… Evidence.
B-359 P0 Historical verified Three account-deactivation/lockout bypasses found during a whole-project security audit (2026-09-13), all fixed with regression tests Evidence.
B-358 P0 Historical verified Production integrity gap found during a whole-project review (2026-09-12/13): MicroK8s namespace operations is currently running a build tagged 1.87.11 that is not the governed release of that version Evidence.
B-357 P0 Historical verified Restructured the two primary operator/user documents -- docs/OPERATIONS_MANUAL.md (the source for the public docs/ServiceOps_Complete_Platform_Manual.pdf) and docs/DEPLOYMENT.md -- after the user reported both as "too muc… Evidence.
B-356 P0 Historical verified UI-polish and defect-fix arc spanning v1.87.7 through v1.87.10, each independently released and deployed to MicroK8s namespace operations this cycle Evidence.
B-355 P0 Historical verified Deep review-and-fix pass (commit 28785d1) plus its governed release and MicroK8s deployment Evidence.
B-353 P0 Historical verified Fixed the root cause of "no notifications arrive on any configured channel (e.g Evidence.
B-351 P0 Historical verified Kubernetes delivery maturity: configurable zero-unavailable rolling updates and drain timing; optional Argo Rollouts canary analysis; Argo CD GitOps example with self-heal and safe no-prune policy; strict feature kill switches;… Evidence.
B-349 P0 Historical verified External synchronization outage prevention Evidence.
B-348 P0 Historical verified Proactive post-release anomaly audit Evidence.
B-347 P0 Historical verified Screenshot-driven Kubernetes delivery hardening Evidence.
B-346 P0 Historical verified Screenshot-driven LDAP relationship extension Evidence.
B-345 P0 Historical verified Administrator-controlled directory completeness, signed audit security context, and expanded NetBox contract compatibility Evidence.
B-344 P2 Historical verified App-wide fade/reveal animation and scroll-affordance fix, backfilled here per this repo's own documentation-control rule after being implemented as an ad-hoc UI request not tied to an existing tracked item Evidence.
B-343 P1 Historical verified RunOps/FlowOps integration gap: GET /api/v1/tickets/{number}/ctasks (added v1.84.0, undocumented here until now) let a companion app read a change's task list but never write it back, so completing a CTASK's underlying work i… Evidence.
B-342 P0 Historical verified Catalog approval policy correction prompted by a real report that approval-required requests did not reach the requester's line manager when that manager had only been provisioned from AD/LDAP and had never logged in, with inte… Evidence.
B-341 P0 Historical verified Reviewed and production-hardened the recent offline tooling branch, then published it through the automatic governed pipeline Evidence.
B-340 P0 Historical verified Made the full governed release lifecycle automatic for every accepted ServiceOps change Evidence.
B-339 P0 Historical verified ServiceOps 1.78.4 professional installation and fully automated governed-release improvement Evidence.
B-338 P0 Historical verified Replaced the B-335 login-only IPFS milestone with a complete IPFS-authoritative application mode Evidence.
B-337 P0 Historical verified Direct follow-up to B-336: user reported that after signing into IPFS mode at localhost:8081/ipfs-home, navigating to localhost:8081/ (without signing out) gave "An unexpected error occurred." Reproduced live and read t… Evidence.
B-336 P0 Historical verified Direct follow-up to B-335: user reported "localhost:8081 give me Internal Server Error" immediately after that milestone shipped Evidence.
B-334 P0 Historical verified Direct follow-up to B-331: user asked to deploy the IPFS/database-less mode on a separate port (8081) specifically so both modes could be tested side by side against the main Postgres-mode deployment Evidence.
B-333 P1 Historical verified Completed the previously disclosed but unreviewed mobile ticket-attachment surface in ServiceOps 1.71.2 and aligned it to the current iOS viewer contract Evidence.
B-332 P2 Historical verified User reported the iOS app's users (built at XCode_Development/ServiceOps) never appeared in System Health -> Active users, despite actively using the app Evidence.
B-330 P2 Historical verified Canonical three-asset ServiceOps identity release for ServiceOps 1.70.3 and iOS 1.3.2 (build 8) Evidence.
B-329 P2 Historical verified Shared application-icon release: the user-approved blue/cyan network-cube artwork is prepared as an opaque, padded 1024 px master on deep navy and applied consistently to ServiceOps 1.70.2 and iOS 1.3.1 (build 7) Evidence.
B-328 P1 Historical verified ServiceOps 1.70.1 mobile discoverability, documentation, and release-evidence update Evidence.
B-325 P0 Historical verified ServiceOps 1.68.1 and iOS 1.1.1 sensitive-file hygiene review Evidence.
B-324 P0 Historical verified ServiceOps 1.68.0 native mobile user authentication Evidence.
B-322 P2 Historical verified Four more live-reported organization complaints, fixed together: (1) "automation rules and scheduled automation rules goes to the same page Evidence.
B-321 P2 Historical verified Direct follow-up to B-320: user reported live, after actually using the newly-split settings pages, that "some are not visible with the whole screen, it just compacts ugly," and asked for every page to be re-visited and con… Evidence.
B-320 P2 Historical verified Direct follow-up to B-319: user rejected the real, correctly-working tab-switching from B-319 outright -- "still not good.. Evidence.
B-319 P2 Historical verified Direct follow-up to B-318: user said Platform settings and Service delivery & governance still felt like "all of them are together and unable to track different categories," and pointed out duplicate links "here and there."… Evidence.
B-318 P2 Historical verified User asked for small, deeply-nested admin components to be searchable (their own example: "LDAP directory sync," a sub-section 200+ lines into the Service delivery & governance mega-page with no menu entry anywhere), and for th… Evidence.
B-317 P1 Historical verified User asked to review the whole app for the same class of bug found in B-316 (a control that appears to do something but has zero real effect, with no warning) -- said plainly they'd "started losing trust" after catching bug… Evidence.
B-316 P2 Historical verified User reported that granting agent/manager the administer, security_administer, and platform_administer actions on /admin/roles had no effect -- they still couldn't see the admin panel, and asked whether this was expected Evidence.
B-315 P0 Historical verified User reported live, mid-session, that a role permission change in /admin/users "seems not working." Reproduced against a real fixture account on the live deployment before touching any code: an account holding only agent (v… Evidence.
B-313 P3 Historical verified User asked to update all screenshots and documents, reporting they were "out of sync now" following B-312's login fix Evidence.
B-312 P2 Historical verified User reported (with a screenshot of Google's own account-creation UX as the target model) that AD/LDAP sign-in only accepted a bare username -- typing "username@companyname.com" (UPN) or "CORP\username" (down-level logon name),… Evidence.
B-311 P3 Historical verified User asked to review ServiceOps "every inch" for real bugs, and separately check whether progress reports/docs are up to date Evidence.
B-310 P3 Historical verified User asked for a review of every backlog item to confirm "Verified"/"Implemented" claims still hold against current source, not just the prose Evidence.
B-309 P2 Historical verified User asked that Client Management get "a dedicated email address that will automatically fetch the email so that we can give a better service," with a dedicated admin configuration page, explicitly requesting research into how … Evidence.
B-308 P2 Historical verified Phases 2-7 (the remainder) of the Client Management build-out started in B-307, delivered in one continuous pass per explicit user instruction ("complete phase 2 to 7 continuously"), each phase still independently built/tes… Evidence.
B-307 P2 Historical verified Phase 1 of a larger, user-requested Client Management build-out toward Zendesk-style agent workflow (saved Views, Macros, per-org SLA policies, Triggers) plus deep admin configuration (custom fields, per-org access control, bra… Evidence.
B-306 P2 Historical verified Two small reported issues, fixed together Evidence.
B-305 P0 Historical verified User hit a real, reproducible bug from live use: set a change freeze window, tried to schedule a Change inside it (correctly rejected), then -- without reloading the page -- edited the date outside the freeze and resubmitted fr… Evidence.
B-304 P1 Historical verified User asked for a self-review of the whole project against CLAUDE.md's "Current review priorities" and to fix items #4, #5, #9, #13, #15 plus whatever else the review turned up, shipping only after deep verification Evidence.
B-303 P1 Historical verified Immediate live-use follow-up to B-302's roles/health/client-management batch, reported with a screenshot: clicking a device inside the CI edit page's compact "Rack & network placement" preview opened what looked like the en… Evidence.
B-302 P2 Historical verified Five reported issues from live use, all fixed in one batch Evidence.
B-301 P3 Historical verified User flagged the B-300 "Rack placement" panel on the CI detail page as "so ugly" and asked the same page also show switch-to-server network connections Evidence.
B-300 P3 Historical verified Immediate follow-up to B-299: user asked that "each host should be clickable in cmdb, and when you click if it has some rack information, it should show." Root-caused: templates/cmdb.html's CI list rendered every name as … Evidence.
B-299 P2 Historical verified User asked for a GLPI-style physical rack visualization for CMDB servers (shared a real GLPI/Verdanadesk screenshot: front/back elevation, a power-unit/PDU sidebar, space/weight/power stats), with rack and position data "added … Evidence.
B-298 P3 Historical verified User flagged the forgot-password page as "very ugly" and asked for a UI review, alongside a much larger request for a GLPI/NetBox-style rack visualization (see follow-up entry once scoped/built separately) Evidence.
B-297 P1 Historical verified User reported B-296's favorites/recently-viewed fix "doesn't work properly" and asked for real UI testing, not just claims Evidence.
B-296 P2 Historical verified Two small UX fixes requested together Evidence.
B-295 P2 Historical verified User had made LDAP fixes on a separate office machine checkout (dmiltraining85) they couldn't push from directly, and shared screenshots of the diff/commit ("LDAP optimized") asking that it be replicated here so it could be p… Evidence.
B-294 P1 Historical verified User asked to extend ServiceOps beyond internal ITIL tickets with a Zendesk-style external client/customer support tool, as its own switchable section gated to the "sysops team" -- referencing a screenshot of Zendesk's agent ti… Evidence.
B-293 P1 Historical verified ServiceOps 1.46.0 replaces the flat, category-caption sidebar with a compact GLPI-inspired persistent accordion Evidence.
B-292 P2 Historical verified Three related requests in one message: (1) the CMDB topology map (/cmdb/topology) was "a mess.. Evidence.
B-291 P2 Historical verified Follow-up to B-290: user asked "make that as same as glpi" for the CI class permission grid Evidence.
B-290 P2 Historical verified Immediate follow-up to B-288: user reported "where is that access matrix? i am unable to find the link" -- /cmdb/permissions was built, gated, and fully functional, but never actually linked from any page Evidence.
B-289 P1 Historical verified User shared a screenshot of a real production CMDB search ("bacula") showing the same hostname appearing twice -- once ci_class=Device/SNMP-discovered with a real IP, once ci_class=Server/no IP, presumably manually imported… Evidence.
B-288 P2 Historical verified User shared 10 screenshots of GLPI (a different ITSM tool used at their employer): a per-asset-type permission matrix (separate Read/Update/Create/Delete checkboxes per role per asset type -- Computers, Network devices, Printer… Evidence.
B-287 P2 Historical verified User sent screenshots from a real scan of an Arista switch: the CI edit page's "Impact analysis" said "Nothing depends on this CI.. Evidence.
B-286 P2 Historical verified User asked whether app.py (13,382 lines, every model/route/helper for the whole app in one file) is a stability risk and how to make the app more maintainable, then explicitly asked to start a planned multi-session blueprint … Evidence.
B-285 P1 Historical verified Two-part user request: (1) "font is different in 'Configuration item/s' compare to other field.. Evidence.
B-284 P2 Historical verified User screenshot from the redeployed change-creation form: with several CIs picked in B-283's merged "Configuration item/s" field, the browse (⌕) button rendered as a tall floating vertical strip beside the wrapped chip stac… Evidence.
B-283 P2 Historical verified Immediate follow-up to B-282: user clarified the ask was not just "let me tick several at once" but "remove Additional configuration items and that feature must be in 'Configuration item/s'" — i.e Evidence.
B-282 P2 Historical verified User complaint: "the way we add additional CIs.. Evidence.
B-281 P0 Historical verified Discovery review search correctness patch prepared for ServiceOps 1.39.2 Evidence.
B-280 P0 Historical verified Discovery review UI repair prepared for ServiceOps 1.39.1 Evidence.
B-279 P0 Historical verified ServiceOps 1.39.0 operational-resilience release Evidence.
B-278 P0 Historical verified Local login recovery after the port-80 redeployment exposed a pre-existing encryption-key mismatch: the database's three audit-integrity key records (two retired, one active) had been encrypted by a lost prior `SETTINGS_ENCRYPT… Evidence.
B-277 P0 Historical verified ServiceOps 1.38.2 whole-project remediation Evidence.
B-276 P2 Historical verified User viewed the new /api/v1/docs reference page (added in B-275's cycle) and reported it stuck on "Loading…" forever Evidence.
B-275 P1 Historical verified User reported three things together against real hardware: only 6 of 17 known hosts found and "just the IP, need this too to be smart"; a request that after a scan the admin can add selected/add all/skip rather than devices lan… Evidence.
B-274 P2 Historical verified User reported "there are many devices in my network Evidence.
B-273 P2 Historical verified User reported a real subnet discovery "Run now" appeared to hang forever in the browser (screenshot: the test target, 192.168.68.0/24, stuck on "Never" with the button still showing "Run now" and no feedback) Evidence.
B-272 P2 Historical verified Closed B-271's standing "no live SNMP hardware" risk Evidence.
B-268 P1 Historical verified User reported B-267's fix hadn't resolved the underlying problem — clicking anywhere in the "Granted roles" field on the user-edit form (its heading, the info-tip, whitespace between checkboxes) always toggled "requester" s… Evidence.
B-267 P1 Historical verified User-reported bug in the admin user-edit form: clicking the "Calendar integration" dropdown toggled the unrelated "Active" switch instead Evidence.
B-265 P2 Historical verified Follow-up UX/observability request after live use of B-264/B-263 and the earlier logging/System Health pass: (1) sign-out was a bare "↗" icon button with no visible text, only an aria-label, reported as hard to find; … Evidence.
B-262 P1 Historical verified LDAP directory synchronization: serviceops_core/ldap_sync.py::sync_directory populates already-LDAP-provisioned users' profile fields (title/department/division/employee_id/employee_type), manager reporting chain (`User.manag… Evidence.
B-260 P2 Historical verified Follow-up asked to "make this tool perfect" against the manual-generation tooling landed in B-259, closing the specific gaps that pass's own "not done this pass" note flagged plus the pagination usability gap of a 36-page P… Evidence.
B-259 P2 Historical verified The PDF manual was reported as "too short.. Evidence.
B-258 P1 Historical verified ISO 27001 Annex A-style technical audit plus ITIL governance fidelity check, commissioned to find real gaps before any external certification effort (certification itself requires an accredited auditor and a documented ISMS — r… Evidence.
B-257 P2 Historical verified Sidebar collapse/scroll felt "jumpy" — user reported clicking the left-nav hamburger caused a shake and the menu snapping back to where it started, describing it like a page refresh Evidence.
B-256 P2 Historical verified Four more reported gaps from live use of B-255 Evidence.
B-255 P2 Historical verified Org chart visibility fix, manager-portal performance drill-down, and export controls Evidence.
B-254 P1 Historical verified Four reported defects from live use of B-253's CMDB/demo-data pass Evidence.
B-252 P1 Historical verified Dedicated operational_task_detail page/route for CTASK/PTASK, replacing the inline-table interface. Evidence.
B-251 P1 Historical verified CTASK backfill migration for pre-existing changes; Change Tasks tab redesigned as a table with per-row inline update. Evidence.
B-250 P0 Historical verified conflict_status column widened (VARCHAR(40)→VARCHAR(500)) after a real truncation-triggered 500; ticket-create validation now redisplays the form instead of a generic error page. Evidence.
B-248 P1 Historical verified Identity and administration workspace (searchable user list, admin-only role/active/department control, preferences). Evidence.
B-247 P1 Historical verified Governed record/list interaction model extended to Change/Problem/enterprise/REQ. Evidence.
B-246 P0 Historical verified PWA service-worker cache-versioning fix (visual delivery bug). Evidence.
B-245 P1 Historical verified ServiceNow-inspired incident record workspace (dense two-column form, Event history). Evidence.
B-201 P0 Historical verified Foundation CSRF/session/cookie/deployment release. Evidence.
B-102 P2 Historical verified Explicit isolated test-fixture loader (tools/load_test_fixture.py) Evidence.
B-101 P2 Historical verified Consolidate lifecycle operations behind ./serviceops. Evidence.
B-042 P0 Historical verified All active IT fulfillment-team members/managers read every INC/CHG; mutation stays owning-team/admin only. Evidence.
B-041 P1 Historical verified Catalog item admin CRUD with governed fields; inactive items fail closed. Evidence.
B-040 P0 Historical verified Object-level authorization across ticket/enterprise lists, direct IDs, dashboards, boards, analytics, searches, attachments, approvals, CI links, REQ/SCTASK creation. Evidence.
B-039 P0 Historical verified Scope REQ/RITM visibility to requested-by/for, fulfillment teams, SCTASK teams, named approvers, admins. Evidence.
B-038 P1 Historical verified Administrator-managed catalog-item fulfillment routing; Laptop/Software default to Windows Evidence.
B-037 P1 Historical verified Governed related-record network (parent/child INC, INC↔PRB/CHG links, PRB knowledge, RITM↔CHG, PTASK/CTASK). Evidence.
B-036 P0 Historical verified Append-only in-record task history; material CHG plan changes supersede prior approvals and notify. Evidence.
B-035 P0 Historical verified Explicit owning teams for incidents/requests/changes; only active owning-team members/managers/admins mutate operational fields. Evidence.
B-034 P0 Historical verified Central server-side lifecycle guards prevent approval bypass through any surface. Evidence.
B-023 P1 Historical verified Visual task board and state movement. Evidence.
B-021 P1 Historical verified Unified navigation, search, history, favorites and light-only preferences. Evidence.
B-003 P0 Historical verified Central CSRF enforcement protects every unsafe browser request; rendered forms and JavaScript actions carry session-bound tokens, authentication rotates tokens, and tests prove missing-token rejection and authenticated acceptance. Evidence.
B-002 P0 Historical verified Production uses an Alembic migration gate with safe fresh-schema creation, existing-schema adoption, version verification, dedicated Kubernetes migration Job and tenant backfill Evidence.

Clone this wiki locally