AGENT NEO: BACKEND SOFTWARE DEVELOPER

v0.5.0
run 0adf42f628c1 JIRA: PLT-3535
gate3
Timing total 4263103s
Intake conversation 600s
Gate 1 (spec review) 96s
Planning 52s
Gate 2 (plan review) 126s
Specialists + checks 5394s
Gate 3 (diff review) (in progress) 4256835s
Token burn total 230,921 (in 126,180 / out 104,741) · est. cost $8.78
orchestrator 96,581  +  specialists 134,340  =  total 230,921
Phase Input Output Total Calls
intake 1,504 527 2,031 1
architect 91,184 3,366 94,550 1
specialist:postgres 15,002 13,898 28,900 2
specialist:api2 18,490 86,950 105,440 4
TOTAL 126,180 104,741 230,921 8
Agent Neo activity — live output from the architect & specialists
loading…
open full log
Candidate learnings 15 pending — harvested from specialist reports

Deviations and open questions the specialists flagged. Accepting appends the note to context/learnings.md, which the architect reads on future runs. Dismissing drops it. Nothing enters the agents' context until you accept it.

open_question specialist:postgres
**Case sensitivity:** implemented case-**insensitive** per the Gate-2 resolution. If product wants case-sensitive, change the predicate to `typ."TypeName" = ANY(_typeNames)`.
open_question specialist:postgres
**Value cap:** no DB-layer cap on number of `typeName` values (left to the API2 validator), as agreed in the plan.
open_question specialist:postgres
Runtime verification (`./build` / `./test`) should be re-run in an environment with Docker before merge.
deviation specialist:api2
The spec's `files:` frontmatter was corrupted (one character per line) but decoded to `src/api/v2/projects/issues/issues.routes.ts`. Following the task brief ("implement the FULL API2 surface"), the change spans model → service → validator → controller → routes + tests, not the routes file alone.
deviation specialist:api2
Filtering is done in the Node service layer rather than in SQL, since DB schema/function changes are out of scope. Trade-off: a paginated page can be shorter than `size` when matches are sparse on that page — same pre-existing pattern already documented for `isDeleted` filtering in the e2e suite.
open_question specialist:api2
Case-insensitive + trimmed matching was chosen as the more forgiving behavior for a UI filter. If the platform requires exact, case-sensitive `TypeName` matching, narrow `filterRowsByTypeName` accordingly.
open_question specialist:api2
Repeated query params (`?typeName=a&typeName=b`) are intentionally rejected (non-string → 400); only the comma-separated form from the spec is supported. Confirm that matches client expectations (dashboard sends `typeName=Quality`).
open_question specialist:api2
If short-page pagination under sparse filters becomes a problem for clients, the filter should move into `fn_GetIssueList` / `fn_GetIssueListDetailed` (a follow-up DB change, explicitly out of scope here).
deviation specialist:api2
Filtering is performed **in-memory on the page of rows returned by the existing query**, not pushed into SQL. This keeps the change minimal and honours the "no pagination behaviour change" constraint, but means a page may contain fewer than `size` matching issues when non-matching issues occupy the page. This matches the approach already present in the prior implementation and was kept per the "do not expand scope" instruction.
open_question specialist:api2
Is in-memory, post-pagination filtering acceptable, or should the filter be pushed into `GET_ISSUE_LIST_QUERY` / `GET_DETAILED_ISSUE_LIST_QUERY` so pagination counts reflect the filtered set? (Out-of-scope per spec, flagged for awareness.)
open_question specialist:api2
Should an unknown/typo'd `typeName` (no matches) return `200` with an empty list (current behaviour) or `400`? Current behaviour treats it as a valid empty result.
deviation specialist:api2
**Filtering is applied in-memory after the paginated DB query** rather than pushed into the `fn_GetIssueList` / `fn_GetIssueListDetailed` DB functions. The spec keeps "pagination behaviour" and "schema/column changes" out of scope and the DB functions live in a separate repo, so the filter is applied in the service after `query(...)`. Trade-off: when combined with paging, a page is fetched first and then filtered, so a filtered page can contain fewer than `size` rows. This matches the approved plan's scope but is worth flagging.
open_question specialist:api2
**In-memory vs. DB-side filtering** — confirm the in-memory approach is acceptable, given the pagination interaction noted above. If DB-side filtering is wanted, that needs a change in the PostgreSQLDatabase repo (out of scope here).
open_question specialist:api2
I could not fetch the raw CI logs from this environment (`gh` is unavailable), so the e2e root cause above is the best-supported hypothesis from static analysis of the seed data + my diff, not a confirmed log line. If the real failure was elsewhere, the CI logs will show it on the next run.
open_question specialist:api2
Page/filter interaction: the `WHERE` clause filters the rows returned by the paginated function, so a page can contain fewer than `size` matches even when more matching issues exist on later DB pages. This matches the existing pagination semantics and the spec lists pagination changes as out of scope, but if the dashboard needs "N matches per page" we'd need the filter pushed *inside* the stored function (a DB migration) — out of scope here. Confirm the current behaviour is acceptable.

Conversation

you
JIRA: PLT-3535

Add an additive typeName filter param to GET /issues so clients can scope the list server-side. The dashboard currently fetches all issue types and filters to Quality client-side, transferring and ingesting issues it immediately discards.

Acceptance Criteria

- GET /issues accepts an additive, comma-separated typeName query param; when present, only issues of those type names are returned.

- Param uses typeName, NOT typeId (typeId is project-scoped via composite PK ("ProjectShardId","IssueTypeId")).

- Omitting the param is fully backward-compatible: default response shape and contents unchanged (web / XYZMobile / AtomOS unaffected).

Technical Notes

- Precedent: fn_GetLegacyIssue.sql:115.

- Pairs with the dashboard requesting only typeName=Quality instead of all types then filtering client-side; reduces the ~11.7 MB issues payload (Phase 1 removed compute, not bytes).
Agent Neo
Scope is clear from the ticket. Producing the spec now.
Spec ready — see Gate 1 below.
Agent Neo
_Addressing CI failure automatically (round 1/3) on: api2. The revised diff will re-open Gate 3 for review before any push._
Chat closed — run has advanced past intake.

Spec

approve

Plan

approve

Specialist bundles pending

postgres at storage/clones/0adf42f628c1/postgres
added: 0 modified: 0 deleted: 0
Gate 3: approve, revise, or reject
Test verification:
api2: passed
test log & output
$ npx tsc --noEmit exit 0 full output

                        
                        
$ npm test exit 0 full output
 
 src/api/v2/logs                       |   76.92 |     65.3 |      70 |   75.71 |                   
  logs.controller.ts                   |   78.72 |       75 |      75 |   78.57 | 73-84             
  logs.validator.ts                    |   74.19 |    58.62 |      50 |   71.42 | 35-46             
 src/api/v2/portfolios                 |   75.77 |    70.93 |   84.21 |   78.36 |                   
  portfolios.controller.ts             |   79.04 |    85.71 |    90.9 |   79.04 | ...81-182,192-193 
  portfolios.validator.ts              |   71.91 |    68.05 |      75 |   77.27 | ...,89-94,103,106 
 src/api/v2/projects                   |   83.33 |    83.33 |   76.74 |   83.14 |                   
  projects.controller.ts               |   81.92 |    75.86 |      75 |    81.7 | ...71,720-722,739 
  projects.validator.ts                |   86.57 |    88.75 |   85.71 |   86.99 | ...81,184,187,214 
 src/api/v2/projects/activities        |   84.61 |    79.81 |   78.84 |   84.14 |                   
  activities.categories.controller.ts  |   65.27 |    40.74 |    62.5 |   63.41 | ...46-156,173-191 
  activities.categories.helpers.ts     |   98.71 |    90.19 |     100 |   98.61 | 89                
  activities.controller.ts             |   68.08 |      100 |   66.66 |   66.66 | 34-42,50-61       
  activities.mapping.controller.ts     |   98.14 |    88.88 |     100 |   98.07 | 58                
  activities.validators.ts             |   99.01 |    98.66 |     100 |     100 | 50                
  package.prediction.controller.ts     |     100 |    66.66 |     100 |     100 | 18-19             
 src/api/v2/projects/batchfiles        |   78.78 |       25 |     100 |   78.78 |                   
  batchfiles.controller.ts             |   78.78 |       25 |     100 |   78.78 | 19-29,46,59       
 src/api/v2/projects/categoryTypes     |   91.57 |      100 |   88.23 |   91.02 |                   
  category.types.controller.ts         |   91.57 |      100 |   88.23 |   91.02 | 110-117           
 src/api/v2/projects/cde               |   50.56 |    47.82 |   46.66 |   48.82 |                   
  cde.controller.ts                    |   32.17 |        0 |      30 |   32.17 | ...81-198,203-270 
  cde.criteria.validator.ts            |   78.37 |       60 |   66.66 |   78.78 | 17-21,28-31,56-57 
  cde.link.validator.ts                |    92.3 |    88.88 |     100 |    90.9 | 43,62             
 src/api/v2/projects/coordinates       |   90.98 |    84.11 |   91.93 |    90.5 |                   
  conflict.controller.ts               |     100 |      100 |     100 |     100 |                   
  conflict.validator.ts                |   94.73 |    91.66 |     100 |   93.75 | 43-44             
  coordinates.controller.ts            |   82.55 |    77.41 |   78.26 |   81.81 | ...73,249,254-255 
  coordinates.helper.ts                |   94.54 |       65 |     100 |   96.07 | 70,78             
  coordinates.validator.ts             |    97.4 |       95 |     100 |   96.77 | 34,56             
 src/api/v2/projects/devices           |     100 |      100 |     100 |     100 |                   
  project.devices.controller.ts        |     100 |      100 |     100 |     100 |                   
  project.devices.delegation.ts        |     100 |      100 |     100 |     100 |                   
  project.devices.validator.ts         |     100 |      100 |     100 |     100 |                   
 src/api/v2/projects/devices/handlers  |     100 |    92.85 |     100 |     100 |                   
  project.devices.v1.handler.ts        |     100 |    92.85 |     100 |     100 | 38                
 src/api/v2/projects/disciplines       |   92.85 |       75 |     100 |   91.66 |                   
  disciplines.controller.ts            |   92.85 |       75 |     100 |   91.66 | 18,36             
 src/api/v2/projects/elements          |   93.77 |    84.11 |   95.65 |   93.29 |                   
  element-helpers.ts                   |      50 |      100 |       0 |      50 | 14                
  elements.activities.controller.ts    |   95.31 |    78.37 |     100 |   94.82 | 23,42-43          
  elements.activities.validator.ts     |     100 |      100 |     100 |     100 |                   
  elements.status.controller.ts        |   90.69 |    80.76 |     100 |   89.74 | 82-89,131-137     
  elements.status.validator.ts         |   96.55 |     87.5 |     100 |   97.77 | 47                
 src/api/v2/projects/folders           |   91.66 |    82.81 |      96 |   91.01 |                   
  folders.controller.ts                |    89.4 |    70.27 |   95.23 |   88.88 | ...93-197,237,243 
  folders.validator.ts                 |     100 |      100 |     100 |     100 |                   
 src/api/v2/projects/images            |   75.28 |       50 |     100 |   75.28 |                   
  image.uploader.ts                    |   75.28 |       50 |     100 |   75.28 | ...97-214,233-282 
 ...api/v2/projects/images/360captures |   93.95 |    85.18 |     100 |    94.3 |                   
  360captures.controller.ts            |   95.65 |       80 |     100 |   95.06 | 69,82,103-104     
  360captures.validator.ts             |   91.22 |    86.36 |     100 |   92.85 | 44-47             
 src/api/v2/projects/images/photos     |   83.69 |    71.42 |      88 |      83 |                   
  photos.controller.ts                 |   88.07 |       75 |      90 |   86.95 | 79,111,124-140    
  photos.validator.ts                  |   77.33 |    70.83 |      80 |   77.04 | ...59,62,69,89-94 
 src/api/v2/projects/issues            |   71.07 |    47.82 |   65.11 |   70.26 |                   
  issue.comments.controller.ts         |     100 |      100 |     100 |     100 |                   
  issue.comments.validator.ts          |   88.46 |       75 |     100 |     100 | 17-28             
  issue.notification.service.ts        |      25 |        0 |       0 |      25 | 25-49,54-71       
  issues.controller.ts                 |   68.51 |    29.16 |   58.33 |    68.3 | ...36-244,249-255 
  issues.validator.ts                  |   76.31 |    64.44 |   72.72 |      75 | ...13,165-178,192 
 src/api/v2/projects/issues/categories |   97.72 |       92 |     100 |   97.36 |                   
  issues.categories.controller.ts      |     100 |      100 |     100 |     100 |                   
  issues.categories.validator.ts       |   95.74 |     91.3 |     100 |   95.12 | 69,73             
 .../v2/projects/issues/fileReferences |   97.22 |    78.94 |     100 |   96.87 |                   
  issues.fileReferences.controller.ts  |   96.15 |    70.83 |     100 |   95.83 | 67,72             
  issues.fileReferences.validator.ts   |     100 |    92.85 |     100 |     100 | 11                
 src/api/v2/projects/issues/history    |   99.29 |    83.15 |     100 |   99.23 |                   
  issue.history.controller.ts          |   99.23 |    82.41 |     100 |   99.18 | 86                
  issue.history.validator.ts           |     100 |      100 |     100 |     100 |                   
 src/api/v2/projects/issues/models     |     100 |    83.33 |     100 |     100 |                   
  issues.models.controller.ts          |     100 |       50 |     100 |     100 | 15-34             
  issues.models.validator.ts           |     100 |    92.85 |     100 |     100 | 11                
 src/api/v2/projects/markers           |   81.73 |    84.44 |      80 |   83.87 |                   
  marker.validator.ts                  |   81.81 |    81.08 |   83.33 |   86.36 | 30-34,77-81       
  markers.controller.ts                |   81.63 |      100 |      75 |   81.63 | 55-57,68-75       
 src/api/v2/projects/models            |    94.4 |     92.5 |   94.73 |    93.7 |                   
  models.controller.ts                 |    89.1 |    83.33 |    87.5 |    88.5 | 26,84-92,136-137  
  models.validator.ts                  |   95.16 |    91.48 |     100 |   94.17 | 36-39,93-96       
  models.version.controller.ts         |     100 |      100 |     100 |     100 |                   
  request.validator.ts                 |     100 |      100 |     100 |     100 |                   
 src/api/v2/projects/projectfiles      |    86.2 |    84.61 |   57.14 |   86.53 |                   
  projectfiles.controller.ts           |    86.2 |    84.61 |   57.14 |   86.53 | 18-38             
 src/api/v2/projects/rooms             |   88.63 |       50 |   71.42 |   89.18 |                   
  rooms.controller.ts                  |     100 |      100 |     100 |     100 |                   
  rooms.validator.ts                   |   72.22 |       50 |   33.33 |   71.42 | 31-35,39          
 ...pi/v2/projects/rooms/capturepoints |   86.13 |    73.64 |     100 |   93.75 |                   
  rooms.capturepoints.controller.ts    |     100 |       50 |     100 |     100 | 46-47             
  rooms.capturepoints.validator.ts     |   80.55 |       75 |     100 |    90.9 | ...67,170,178,181 
 src/api/v2/projects/schedules         |   97.36 |    93.33 |     100 |   97.77 |                   
  schedules.controller.ts              |   96.92 |       75 |     100 |   96.22 | 32-33             
  schedules.validator.ts               |   97.95 |    97.29 |     100 |     100 | 32                
 src/api/v2/projects/userfiles         |   86.84 |    90.62 |      80 |   86.36 |                   
  userfiles.controller.ts              |   85.24 |    91.66 |      75 |    84.9 | 23,32-45          
  userfiles.validator.ts               |   93.33 |     87.5 |     100 |    92.3 | 14                
 src/api/v2/projects/videos            |   69.79 |    74.73 |    62.5 |   68.51 |                   
  videos.controller.ts                 |   67.64 |       80 |   57.89 |   66.94 | ...69-197,201-213 
  videos.validator.ts                  |      75 |    68.88 |      80 |   72.72 | 41-62,86,94       
 src/api/v2/tenants                    |   69.76 |       50 |      60 |   69.44 |                   
  tenant.controller.ts                 |   61.29 |        0 |      50 |   59.25 | 27-40             
  tenant.validator.ts                  |   91.66 |       75 |     100 |     100 | 17                
 src/clients                           |   50.13 |    45.35 |    37.5 |   49.65 |                   
  ai.service.client.ts                 |   68.05 |    44.23 |   58.33 |    67.6 | ...-69,82,146,163 
  authorised.iam.client.ts             |   11.34 |        0 |       0 |   10.41 | ...25-188,193-201 
  authorised.notification.client.ts    |   78.57 |       52 |      50 |   78.04 | 77-80,110-122     
  autodesk.client.ts                   |   10.61 |      100 |   10.52 |    9.82 | ...74,285-287,293 
  autodesk.profile.client.ts           |   63.15 |       75 |      50 |   61.11 | 16-28,42          
  billy.search.client.ts               |   55.55 |    66.66 |      50 |   52.94 | 22-42,55          
  clients.ts                           |      52 |    31.94 |   35.71 |   53.06 | ...32,46-55,66-96 
  iam.client.helper.ts                 |     100 |     90.9 |     100 |     100 | 29,70             
  iam.client.ts                        |   69.29 |    49.09 |   58.82 |   68.75 | ...18,290,296,301 
  mapbox.client.ts                     |     100 |    91.66 |     100 |     100 | 33,48-49          
  redis.client.ts                      |   33.33 |    22.44 |   31.25 |   34.54 | ...06-141,150-220 
  service.clients.ts                   |     100 |      100 |     100 |     100 |                   
 src/db                                |   28.07 |        0 |       0 |      26 |                   
  db.ts                                |   28.07 |        0 |       0 |      26 | ...93-100,112-126 
 src/middleware                        |   44.72 |    30.23 |   46.15 |   43.31 |                   
  api-version.middleware.ts            |     100 |      100 |     100 |     100 |                   
  authorisation.ts                     |   56.52 |     38.7 |   47.61 |   55.44 | ...95,127-155,183 
  middleware.ts                        |   26.36 |    16.32 |   41.17 |      25 | ...75-192,201-208 
 src/models                            |     100 |      100 |     100 |     100 |                   
  egress.ts                            |     100 |      100 |     100 |     100 |                   
  ingress.ts                           |     100 |      100 |     100 |     100 |                   
 src/services                          |   37.78 |    28.53 |   28.88 |   37.42 |                   
  360capture.service.ts                |   60.46 |       45 |      50 |   59.52 | ...8,42-44,90-100 
  activities.categories.service.ts     |   17.92 |        0 |       0 |   18.26 | ...50-179,185-201 
  activities.service.ts                |   21.52 |    11.11 |   11.11 |   21.67 | ...25-168,189-327 
  azure.blob.service.ts                |   18.79 |        0 |       0 |    16.8 | ...08-211,233-266 
  azure.table.service.ts               |   14.92 |        0 |       0 |   16.39 | ...67-106,112-145 
  batchfiles.service.ts                |    25.8 |        0 |       0 |    25.8 | ...,81-94,112-113 
  category.types.service.ts            |   27.08 |        0 |       0 |   27.08 | ...6-75,80-85,111 
  cde.service.ts                       |   17.72 |        0 |       0 |   17.72 | ...13-223,227-347 
  cde.user.service.ts                  |   30.76 |        0 |       0 |   30.76 | 9-25              
  coordinates.conflict.service.ts      |   16.25 |        0 |       0 |   16.25 | ...,88-98,105-184 
  coordinates.service.ts               |   15.38 |        0 |       0 |    15.5 | ...69-179,185-245 
  default.disciplines.service.ts       |   24.24 |        0 |       0 |      25 | ...36,41-48,53-59 
  devices.service.ts                   |   37.16 |    18.03 |      25 |   37.24 | ...48,254,262-291 
  disciplines.service.ts               |   31.57 |      100 |       0 |   33.33 | 9-22,26-36        
  fileReference.service.ts             |   42.85 |      100 |       0 |   42.85 | 6-13              
  folders.service.ts                   |   71.79 |       50 |   88.46 |   68.57 | ...16-233,253-257 
  issue.comments.service.ts            |   75.92 |     67.5 |     100 |    74.5 | 24-32,55-64       
  issue.history.service.ts             |   41.86 |       68 |   42.85 |   41.46 | ...,80,99-105,156 
  issue.location.ts                    |   33.33 |        0 |       0 |   31.57 | 11-22,28-34       
  issue.severity.service.ts            |   38.46 |        0 |       0 |   38.46 | 9-23              
  issue.types.service.ts               |   27.58 |        0 |       0 |      24 | 9-20,26-51        
  issues.categories.service.ts         |   42.85 |        0 |       0 |      45 | 23-48,60          
  issues.fileReference.service.ts      |   42.85 |        0 |       0 |      45 | 12-30,36          
  issues.models.service.ts             |      50 |        0 |       0 |      50 | 11-21,27          
  issues.service.ts                    |   40.62 |    28.08 |   40.62 |   39.03 | ...03-409,475-508 
  markers.services.ts                  |   15.15 |        0 |       0 |   15.38 | ...7,74-86,93-111 
  model.elements.status.service.ts     |   15.03 |        0 |       0 |   15.03 | ...60-285,291-292 
  models.service.ts                    |   19.78 |     1.52 |      10 |      20 | ...95-283,295-414 
  models.version.service.ts            |   21.73 |        0 |       0 |   22.05 | ...44-155,167-176 
  package.predictions.service.ts       |    23.8 |        0 |       0 |    23.8 | 12-40             
  photos.service.ts                    |      50 |    42.85 |   22.22 |   49.12 | ...7,72-74,99-133 
  portfolio.service.ts                 |   70.43 |    46.99 |    90.9 |   73.09 | ...47-350,368-371 
  projectfiles.service.ts              |   88.88 |       90 |   85.71 |    89.7 | 63-70             
  projects.service.ts                  |      50 |    49.52 |   39.47 |   49.82 | ...06,909,912,915 
  rooms.capturepoints.service.ts       |   75.62 |    71.79 |   85.71 |   75.47 | ...99,310,314-319 
  rooms.service.ts                     |   20.68 |        0 |       0 |   20.68 | 9-22,28-50        
  schedules.service.ts                 |   47.05 |    26.43 |   46.66 |   46.66 | ...42,333-365,391 
  userfiles.service.ts                 |   19.23 |        0 |       0 |   19.23 | ...02-304,323-372 
  videos.service.ts                    |   44.82 |    18.75 |      25 |   43.85 | ...94-105,117-137 
 src/types                             |    90.1 |    92.85 |   73.58 |   89.77 |                   
  DbColumnsMappings.ts                 |     100 |      100 |     100 |     100 |                   
  categoryTypeHierarchyMapping.ts      |     100 |      100 |     100 |     100 |                   
  cde.types.ts                         |     100 |      100 |     100 |     100 |                   
  devices.types.ts                     |     100 |      100 |     100 |     100 |                   
  errortypes.ts                        |   77.19 |      100 |      50 |   77.19 | ...04,110,122,134 
  http.types.ts                        |     100 |      100 |     100 |     100 |                   
  iam.types.ts                         |     100 |      100 |     100 |     100 |                   
  logger.properties.ts                 |     100 |      100 |     100 |     100 |                   
  marker.types.ts                      |     100 |      100 |     100 |     100 |                   
  model.elements.ts                    |     100 |      100 |     100 |     100 |                   
  notification.types.ts                |   87.17 |    71.42 |   83.33 |   87.17 | 24-32             
  portfolio.types.ts                   |     100 |      100 |     100 |     100 |                   
  project.attachment.types.ts          |     100 |      100 |     100 |     100 |                   
 src/util                              |    83.3 |    70.64 |   80.41 |   83.23 |                   
  array.util.ts                        |     100 |      100 |     100 |     100 |                   
  azure.util.ts                        |   95.74 |       85 |   94.73 |   95.69 | 64,205-226        
  blob-download-url.cache.ts           |   94.44 |     91.3 |     100 |   94.44 | 46,78,100         
  business-region.ts                   |     100 |      100 |     100 |     100 |                   
  cde.token.util.ts                    |     100 |      100 |     100 |     100 |                   
  error.logger.util.ts                 |     100 |      100 |     100 |     100 |                   
  errorFormatter.ts                    |      96 |      100 |   85.71 |   95.23 | 50                
  fileDeletion.handler.ts              |   96.66 |    72.72 |     100 |   96.66 | 80                
  fileReference.deletion.util.ts       |   35.71 |        0 |       0 |   35.71 | 24-34             
  image.util.ts                        |   69.23 |    43.75 |     100 |   67.56 | ...37,44,56,74-80 
  logger.ts                            |     100 |    96.42 |     100 |     100 | 58                
  metrics.ts                           |   82.02 |    63.63 |   71.42 |   82.02 | ...87-291,328-332 
  pagination.util.ts                   |   88.88 |    91.66 |     100 |   85.71 | 14                
  query.util.ts                        |   26.19 |     2.56 |   42.85 |   26.19 | 11-23,39-47,54-76 
  store.ts                             |     100 |      100 |     100 |     100 |                   
  token.util.ts                        |   81.48 |    66.66 |   71.42 |   81.48 | 19,42-46          
  url.util.ts                          |     100 |      100 |     100 |     100 |                   
  username.ts                          |   83.33 |    77.77 |     100 |     100 | 8-11              
  utilities.ts                         |     100 |      100 |     100 |     100 |                   
---------------------------------------|---------|----------|---------|---------|-------------------

Revision round 2 applied.

A Jira ticket is required per repo before PRs open. The branch will be <TICKET>-<title-slug> and commits <TICKET>: <description>.

Send back for changes. Tell the specialist exactly what to fix; it re-runs on the chosen repos and returns here.

Re-run which repos? (none = all)
Pull requests
Repo Ticket Branch Status CI Feedback PR
XYZReality/PostgreSQLDatabase PAPI-3535 PAPI-3535-JIRA-PLT-3535 draft passing #673
XYZReality/XYZPlatformApi PAPI-3535 PAPI-3535-JIRA-PLT-3535 closed passing (round 1) #845
last checked 2026-08-11T23:32:39