Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fba80ef346 | |||
| 194e01ed7f | |||
| 7e410e795d | |||
| 19dad316ab | |||
| 6f801251b0 | |||
| 027907a806 | |||
| c9c6b1abc1 | |||
| 172074e90f | |||
| 98e9502af5 | |||
| dc93b589c9 | |||
| c7d26d354c | |||
| 5e8a07d13e | |||
| 992608c77f | |||
| 0d6de71403 | |||
| bdd1de0dd3 |
@@ -4,6 +4,7 @@ using JobTrackerApi.Models;
|
||||
using JobTrackerApi.Services;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Data.Sqlite;
|
||||
using Moq;
|
||||
using Xunit;
|
||||
|
||||
@@ -11,6 +12,75 @@ namespace JobTrackerApi.Tests;
|
||||
|
||||
public sealed class ApplicationCalendarControllerTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task Agenda_date_window_translates_on_sqlite_and_keeps_legacy_wall_clock_date()
|
||||
{
|
||||
await using var connection = new SqliteConnection("Data Source=:memory:");
|
||||
await connection.OpenAsync();
|
||||
var current = new Mock<ICurrentUserService>(); current.SetupGet(service => service.UserId).Returns("owner-1");
|
||||
await using var db = new JobTrackerContext(new DbContextOptionsBuilder<JobTrackerContext>().UseSqlite(connection).Options, current.Object);
|
||||
await db.Database.EnsureCreatedAsync();
|
||||
var job = await SeedJobAsync(db, "owner-1");
|
||||
job.Status = "Saved"; job.FollowUpAt = null; job.Deadline = new DateTime(2026, 9, 30, 23, 59, 59);
|
||||
await db.SaveChangesAsync(); db.ChangeTracker.Clear();
|
||||
var controller = CreateController(db, "owner-1", new Mock<IGmailOAuthService>(MockBehavior.Strict).Object, new Mock<IMicrosoftGraphOAuthService>(MockBehavior.Strict).Object);
|
||||
var result = await controller.Agenda(new DateOnly(2026, 9, 1), new DateOnly(2026, 9, 30), default);
|
||||
var row = Assert.Single(Assert.IsAssignableFrom<IEnumerable<ApplicationCalendarController.CalendarAgendaItemDto>>(Assert.IsType<OkObjectResult>(result.Result).Value));
|
||||
Assert.Equal("2026-09-30", row.Date);
|
||||
Assert.Equal(new DateTime(2026, 9, 30, 23, 59, 59), row.RecordedAt);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Agenda_includes_saved_deadlines_and_preserves_recorded_dates_without_provider_access()
|
||||
{
|
||||
await using var db = CreateDb("owner-1");
|
||||
var job = await SeedJobAsync(db, "owner-1");
|
||||
job.Status = "Saved";
|
||||
job.FollowUpAt = new DateTime(2026, 9, 2, 0, 0, 0, DateTimeKind.Unspecified);
|
||||
job.Deadline = new DateTime(2026, 9, 15, 23, 30, 0, DateTimeKind.Unspecified);
|
||||
await db.SaveChangesAsync();
|
||||
var controller = CreateController(db, "owner-1", new Mock<IGmailOAuthService>(MockBehavior.Strict).Object, new Mock<IMicrosoftGraphOAuthService>(MockBehavior.Strict).Object);
|
||||
|
||||
var response = await controller.Agenda(new DateOnly(2026, 9, 1), new DateOnly(2026, 9, 30), default);
|
||||
var rows = Assert.IsAssignableFrom<IEnumerable<ApplicationCalendarController.CalendarAgendaItemDto>>(Assert.IsType<OkObjectResult>(response.Result).Value).ToList();
|
||||
|
||||
Assert.Equal(2, rows.Count);
|
||||
Assert.Equal("follow-up", rows[0].Kind);
|
||||
Assert.Equal("2026-09-02", rows[0].Date);
|
||||
Assert.Equal("deadline", rows[1].Kind);
|
||||
Assert.Equal("2026-09-15", rows[1].Date);
|
||||
Assert.Equal(job.Deadline, rows[1].RecordedAt);
|
||||
Assert.Equal(DateTimeKind.Unspecified, rows[1].RecordedAt.Kind);
|
||||
Assert.All(rows, row => { Assert.Equal(job.Id, row.JobApplicationId); Assert.Equal("Acme", row.CompanyName); });
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Agenda_excludes_other_owners_deleted_and_out_of_range_dates()
|
||||
{
|
||||
await using var db = CreateDb("owner-1");
|
||||
await SeedJobAsync(db, "owner-2");
|
||||
var deleted = await SeedJobAsync(db, "owner-1"); deleted.IsDeleted = true;
|
||||
var outside = await SeedJobAsync(db, "owner-1"); outside.FollowUpAt = new DateTime(2026, 8, 31); outside.Deadline = new DateTime(2026, 10, 1);
|
||||
var edge = await SeedJobAsync(db, "owner-1"); edge.FollowUpAt = null; edge.Deadline = new DateTime(2026, 9, 30, 23, 59, 59);
|
||||
await db.SaveChangesAsync();
|
||||
var controller = CreateController(db, "owner-1", Mock.Of<IGmailOAuthService>(), Mock.Of<IMicrosoftGraphOAuthService>());
|
||||
var response = await controller.Agenda(new DateOnly(2026, 9, 1), new DateOnly(2026, 9, 30), default);
|
||||
var rows = Assert.IsAssignableFrom<IEnumerable<ApplicationCalendarController.CalendarAgendaItemDto>>(Assert.IsType<OkObjectResult>(response.Result).Value);
|
||||
Assert.Equal(edge.Id, Assert.Single(rows).JobApplicationId);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("2026-09-30", "2026-09-01")]
|
||||
[InlineData("2026-01-01", "2026-12-31")]
|
||||
[InlineData("9999-12-01", "9999-12-31")]
|
||||
public async Task Agenda_rejects_unbounded_or_invalid_ranges(string from, string to)
|
||||
{
|
||||
await using var db = CreateDb("owner-1");
|
||||
var controller = CreateController(db, "owner-1", Mock.Of<IGmailOAuthService>(), Mock.Of<IMicrosoftGraphOAuthService>());
|
||||
var response = await controller.Agenda(DateOnly.Parse(from), DateOnly.Parse(to), default);
|
||||
Assert.IsType<BadRequestObjectResult>(response.Result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Status_distinguishes_connection_from_calendar_consent()
|
||||
{
|
||||
|
||||
@@ -28,6 +28,18 @@ public sealed class DashboardPreferencesTests
|
||||
private const string Route = "/api/auth/preferences/dashboard";
|
||||
private const string Layout = "{\"version\":1,\"revision\":0,\"widgets\":[{\"id\":\"cards\",\"visible\":true,\"size\":\"full\"}]}";
|
||||
|
||||
[Fact]
|
||||
public void Agenda_widget_uses_existing_schema_two_without_weakening_unknown_id_or_overlap_checks()
|
||||
{
|
||||
const string json = "{\"version\":2,\"revision\":0,\"widgets\":[{\"id\":\"agenda\",\"visible\":true,\"size\":\"standard\",\"x\":0,\"y\":0,\"w\":8,\"h\":8},{\"id\":\"funnel\",\"visible\":true,\"size\":\"standard\",\"x\":8,\"y\":0,\"w\":4,\"h\":8}]}";
|
||||
using var valid = JsonDocument.Parse(json);
|
||||
Assert.NotNull(DashboardLayout.Parse(valid.RootElement));
|
||||
using var unknown = JsonDocument.Parse(json.Replace("agenda", "unrecognised"));
|
||||
Assert.Null(DashboardLayout.Parse(unknown.RootElement));
|
||||
using var overlap = JsonDocument.Parse(json.Replace("\"x\":8", "\"x\":4"));
|
||||
Assert.Null(DashboardLayout.Parse(overlap.RootElement));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Geometry_roundtrip_preserves_hidden_positions_and_blocks_legacy_downgrade()
|
||||
{
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Globalization;
|
||||
using JobTrackerApi.Data;
|
||||
using JobTrackerApi.Models;
|
||||
using JobTrackerApi.Services;
|
||||
@@ -18,6 +19,34 @@ public sealed class ApplicationCalendarController(
|
||||
IGmailOAuthService google,
|
||||
IMicrosoftGraphOAuthService microsoft) : ControllerBase
|
||||
{
|
||||
[HttpGet("agenda")]
|
||||
public async Task<ActionResult<List<CalendarAgendaItemDto>>> Agenda([FromQuery] DateOnly from, [FromQuery] DateOnly to, CancellationToken cancellationToken)
|
||||
{
|
||||
var owner = RequiredOwner();
|
||||
if (from == default || to < from || to.DayNumber - from.DayNumber > 61 || to == DateOnly.MaxValue)
|
||||
return BadRequest("Choose a calendar range of at most 62 days.");
|
||||
var start = from.ToDateTime(TimeOnly.MinValue);
|
||||
var end = to.AddDays(1).ToDateTime(TimeOnly.MinValue);
|
||||
var jobs = await db.JobApplications.AsNoTracking()
|
||||
.Where(job => job.OwnerUserId == owner && !job.IsDeleted)
|
||||
.Where(job => (job.Deadline >= start && job.Deadline < end) || (job.FollowUpAt >= start && job.FollowUpAt < end))
|
||||
.Select(job => new { job.Id, job.JobTitle, CompanyName = job.Company.OwnerUserId == owner ? job.Company.Name : null, job.Deadline, job.FollowUpAt })
|
||||
.ToListAsync(cancellationToken);
|
||||
var rows = new List<CalendarAgendaItemDto>();
|
||||
foreach (var job in jobs)
|
||||
{
|
||||
Add("deadline", job.Deadline);
|
||||
Add("follow-up", job.FollowUpAt);
|
||||
void Add(string kind, DateTime? recorded)
|
||||
{
|
||||
if (recorded is not { } date || date < start || date >= end) return;
|
||||
// Calendar grouping uses the stored calendar date; legacy timezone/precision is not reconstructed.
|
||||
rows.Add(new(job.Id, job.JobTitle, job.CompanyName, kind, date.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture), date));
|
||||
}
|
||||
}
|
||||
return Ok(rows.OrderBy(row => row.Date).ThenBy(row => row.Kind).ThenBy(row => row.JobApplicationId).ToList());
|
||||
}
|
||||
|
||||
[HttpGet("status")]
|
||||
public async Task<ActionResult<CalendarStatusDto>> Status(CancellationToken cancellationToken)
|
||||
{
|
||||
@@ -141,4 +170,5 @@ public sealed class ApplicationCalendarController(
|
||||
public sealed record CalendarStatusDto(CalendarProviderStatusDto Google, CalendarProviderStatusDto Microsoft);
|
||||
public sealed record CreateCalendarEventRequest(string? Provider, string? Kind);
|
||||
public sealed record CalendarEventDto(string Provider, string? Id, string? WebUrl);
|
||||
public sealed record CalendarAgendaItemDto(int JobApplicationId, string JobTitle, string? CompanyName, string Kind, string Date, DateTime RecordedAt);
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ public sealed record DashboardLayout(int Version, long Revision, IReadOnlyList<D
|
||||
// Responses cross a JavaScript client; the incremented revision must remain an exact integer there.
|
||||
private const long MaxRevision = 9_007_199_254_740_991L;
|
||||
private static readonly HashSet<string> KnownIds = new(StringComparer.Ordinal)
|
||||
{ "cards", "attention", "funnel", "activity", "stageAge", "sources", "salary", "companies", "skills" };
|
||||
{ "cards", "attention", "agenda", "funnel", "activity", "stageAge", "sources", "salary", "companies", "skills" };
|
||||
|
||||
public static DashboardLayout? Parse(JsonElement root, bool reading = false, long revision = 0)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# Mobile build metadata localisation
|
||||
|
||||
3 November 2026. Independent bounded UI-language fix on `codex/i18n-build-metadata`, based on accepted integration `d3d338376444b8abdcaf7200f682faa3daf1ad10`. The existing i18n worktree was reused; original codex/i18n-accessible-labels ref remains4172c23d. This branch does not include the newer A3 foundation/navigation increments and must not replace their tree wholesale.
|
||||
|
||||
Defect reproduced: in the Bokmål mobile account menu, the version was translated but the revision line remained literal `commit abc1234`, while the existing catalogue already provides `applicationVersionCommit` with `revisjon`. The new regression passed for English and failed for Bokmål before the fix.
|
||||
|
||||
The existing AppShell now uses the existing combined localised version/revision message in that menu, retaining the version-only fallback when no commit was supplied. Caller-controlled admin metadata visibility is unchanged. No new keys, enabled locales, provider/model operation, API, data model or physical document changes. Historical188 dynamic-call reviews are not reopened or recounted; AppShell is absent from that resolution register. This is a static literal correction, not complete European localisation.
|
||||
|
||||
Validation: 24 targeted tests in five suites PASSED (new EN/NB commit and version-only menu checks plus existing metadata/visibility, mobile readiness, catalogue and language-provider checks). Typecheck, scoped zero-warning ESLint and a fresh static production build PASSED. An initial test used an unsupported Testing Library `exact` role option; removed it, retaining exact string-name matching. The failed intermediate typecheck/build were superseded by the final successful run. Native Jest report: evidence/mobile-build-metadata/TESTS.json. No fresh browser/native-device, provider, backend or integrated security qualification is claimed for this separate branch.
|
||||
|
||||
Integration requirement: preserve pending navigation review artifact992608c7. When the next relevant implementation entry is authorised, port only this small AppShell hunk and its regression test onto the reconciled A3 branch, then run combined navigation/metadata/language checks and build as appropriate. Do not cherry-pick older branch application/theme files or alter the original frozen translation register. No main merge or deployment.
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"recordedAtUtc": "2026-11-03T07:52:44.745521+00:00",
|
||||
"base": "d3d338376444b8abdcaf7200f682faa3daf1ad10",
|
||||
"policy": "UTF8 text/JSON SHA-256 after LF normalisation",
|
||||
"sources": {
|
||||
"job-tracker-ui/src/layout/AppShell.tsx": "603afbe21d854ec4af7b17ec75a58cfdd65cc053e72d63769d20df7a81c7acc3",
|
||||
"job-tracker-ui/src/build-metadata-localisation.test.tsx": "065c5550a18f7b3c7dca9bbb26c5564a53a53eaf389e7c9695596fcbb2c06f6e",
|
||||
"job-tracker-ui/src/i18n/translations.ts": "ed99d129f8702181429e10ec02f65f734220409fcba4de51d0d77a0d60871ea4",
|
||||
"job-tracker-ui/package.json": "3745394e406cefa40d30a87e840bccb359be147bac6ffba736e2ae90898a8626",
|
||||
"job-tracker-ui/package-lock.json": "bf31e90d7af03e8af059db2aaf893925b9e8881a30a1688034ed88ef45d4fcab"
|
||||
},
|
||||
"testReport": "1c7fb362460f2475fb4a782e26b56d1ee112595c3883cd6294a5b7ac6d72dd15",
|
||||
"validation": {
|
||||
"tests": "24 passed,5 suites",
|
||||
"typecheck": "exit0",
|
||||
"scopedLint": "exit0",
|
||||
"productionBuild": "exit0"
|
||||
},
|
||||
"limits": [
|
||||
"no fresh browser/native acceptance",
|
||||
"not combined with pending A3 navigation review992608c7",
|
||||
"188 historical dynamic-call review remains unchanged"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,226 @@
|
||||
# Jobjakt — A3 Final Design Approval and Implementation Authorisation
|
||||
|
||||
I approve **A3 as the final Jobjakt UI/UX design foundation** and authorise its phased implementation across the application.
|
||||
|
||||
I have reviewed the design direction and am happy with the result.
|
||||
|
||||
This approval includes the consolidated A3 prototype, its established design system, navigation approach, layouts and connected workflows.
|
||||
|
||||
## 1. Confirmed design decisions
|
||||
|
||||
Preserve the approved A3 combination:
|
||||
|
||||
- Original A1 dashboard.
|
||||
- D1 visual foundation.
|
||||
- B1 application tracking.
|
||||
- Labelled, grouped and collapsible desktop sidebar.
|
||||
- Hybrid mobile navigation.
|
||||
- CV editor on the left with live preview on the right.
|
||||
- Full application-detail pages with contextual information on the right.
|
||||
- Optional quick-preview panels.
|
||||
- Career Profile overview first, with immediate editing actions.
|
||||
- Calendar agenda first, with an optional month view.
|
||||
- Automation controls under Settings.
|
||||
- Contextual AI assistance.
|
||||
- Optional, resumable dashboard onboarding checklist with on-demand walkthroughs.
|
||||
|
||||
Maintain the selected light/dark visual treatment and consistent responsive behaviour.
|
||||
|
||||
Do not restart design exploration or generate another five concepts.
|
||||
|
||||
Minor adjustments for implementation feasibility, accessibility and usability are permitted.
|
||||
|
||||
Consult me before making substantial changes to the approved visual direction or user journeys.
|
||||
|
||||
## 2. Implementation approval
|
||||
|
||||
I authorise the actual implementation of the approved A3 redesign within the appropriate Jobjakt development branches.
|
||||
|
||||
This includes:
|
||||
|
||||
- Shared design system.
|
||||
- Typography and colours.
|
||||
- Navigation.
|
||||
- Dashboard.
|
||||
- Application tracking.
|
||||
- Application details.
|
||||
- Job discovery.
|
||||
- Career Profile.
|
||||
- CV Builder.
|
||||
- CV import.
|
||||
- Cover letters.
|
||||
- Calendar.
|
||||
- Correspondence.
|
||||
- Documents.
|
||||
- Settings.
|
||||
- Automation controls.
|
||||
- Administration.
|
||||
- Onboarding.
|
||||
- Mobile layouts.
|
||||
- Light/dark modes.
|
||||
- Accessibility improvements.
|
||||
|
||||
The implementation must cover the actual application, not merely reproduce static prototypes.
|
||||
|
||||
## 3. Preserve existing functionality
|
||||
|
||||
The design handoff identifies 57 preservation groups and 34 routes.
|
||||
|
||||
Treat these as mandatory preservation requirements.
|
||||
|
||||
Do not remove, simplify or hide advanced functionality merely because it was not shown in the prototypes.
|
||||
|
||||
Preserve:
|
||||
|
||||
- Existing user data.
|
||||
- Career Profile ownership and persistence.
|
||||
- CV revisions and undo/redo.
|
||||
- Document imports and exports.
|
||||
- Application records.
|
||||
- Authentication.
|
||||
- AI permissions and qualification restrictions.
|
||||
- Dashboard customisation.
|
||||
- Administrative permissions.
|
||||
- Existing integrations.
|
||||
- English/Norwegian support.
|
||||
- Future European localisation.
|
||||
- Database compatibility.
|
||||
- Existing accessibility functionality.
|
||||
|
||||
Maintain all relevant RD21 data-integrity protections.
|
||||
|
||||
## 4. Implementation sequence
|
||||
|
||||
Use the implementation milestones documented in the A3 handoff.
|
||||
|
||||
Subject to the authoritative dependencies and Phase 10 gates, organise implementation approximately as follows:
|
||||
|
||||
**UI-01 — Shared design system and navigation**
|
||||
|
||||
Implement foundational styles, typography, components, navigation, themes and responsive structures.
|
||||
|
||||
**UI-02 — Dashboard and applications**
|
||||
|
||||
Implement dashboard layouts, interactive widgets, application tracking, Kanban and application-detail experiences.
|
||||
|
||||
**UI-03 — Career Profile and CV workflows**
|
||||
|
||||
Implement the approved Career Profile, CV Editor, template, import and cover-letter experiences.
|
||||
|
||||
**UI-04 — Job discovery and application journeys**
|
||||
|
||||
Implement approved job-discovery layouts and connections to the existing application workflows.
|
||||
|
||||
Coordinate with INT-GLOBAL-JOBS-01 to avoid conflicting implementations.
|
||||
|
||||
**UI-05 — Supporting workflows**
|
||||
|
||||
Implement calendar, reminders, correspondence, documents, administration, settings and automation controls.
|
||||
|
||||
**UI-06 — Onboarding and mobile refinement**
|
||||
|
||||
Complete guided optional onboarding, mobile navigation, small-screen layouts and responsive interaction parity.
|
||||
|
||||
**UI-07 — Integrated qualification**
|
||||
|
||||
Run full preservation, accessibility, responsive, browser and application regression acceptance.
|
||||
|
||||
Use the authoritative A3 implementation plan where it specifies more precise dependencies or acceptance requirements.
|
||||
|
||||
## 5. Autonomous development
|
||||
|
||||
Continue working through the implementation milestones without asking me to approve every ordinary change.
|
||||
|
||||
You may autonomously:
|
||||
|
||||
- Implement approved designs.
|
||||
- Refactor affected frontend components.
|
||||
- Introduce reusable design-system components.
|
||||
- Improve responsive layouts.
|
||||
- Fix implementation defects.
|
||||
- Add tests.
|
||||
- Update translations.
|
||||
- Run regression checks.
|
||||
- Commit validated checkpoints.
|
||||
- Update documentation.
|
||||
|
||||
Pause only when a genuine owner decision, mandatory gate or substantial design change is required.
|
||||
|
||||
If a task is blocked, record the blocker and continue independently eligible work.
|
||||
|
||||
Do not bypass Phase 10 cleanup approvals, required integration baselines or other authoritative development-entry gates.
|
||||
|
||||
## 6. Coordinate with the remaining roadmap
|
||||
|
||||
Continue the existing direct roadmap execution.
|
||||
|
||||
Do not use the autonomous orchestrator.
|
||||
|
||||
Coordinate A3 implementation with:
|
||||
|
||||
- Phase 10.
|
||||
- Product Review.
|
||||
- International Global Job Search.
|
||||
- Full European localisation.
|
||||
- Multilingual homepage redesign.
|
||||
- Security audit.
|
||||
- Release readiness.
|
||||
|
||||
Avoid duplicate implementations and unnecessary rewrites.
|
||||
|
||||
Use established accepted baselines, isolated branches and documented dependencies.
|
||||
|
||||
Do not treat provisional mockup content as actual product functionality.
|
||||
|
||||
## 7. Validation requirements
|
||||
|
||||
For each implementation milestone:
|
||||
|
||||
- Run relevant frontend tests.
|
||||
- Run required backend tests where workflows are affected.
|
||||
- Validate browser journeys.
|
||||
- Validate mobile layouts.
|
||||
- Check keyboard accessibility.
|
||||
- Check translation behaviour.
|
||||
- Check light/dark modes.
|
||||
- Test preservation requirements.
|
||||
- Compare implementation against the approved A3 design.
|
||||
- Record regressions and failures.
|
||||
|
||||
The prototype validation results are useful design evidence, but they do not qualify the implemented application.
|
||||
|
||||
Real screen-reader, physical-device and human accessibility tests remain pending until actually completed.
|
||||
|
||||
Do not claim unperformed tests passed.
|
||||
|
||||
## 8. Git and release restrictions
|
||||
|
||||
The latest design checkpoint is `237c79b8`.
|
||||
|
||||
The roadmap continuation checkpoint is `286535be`.
|
||||
|
||||
Verify the actual commits, branches and ancestry before integrating work.
|
||||
|
||||
Preserve the existing worktrees and acceptance records.
|
||||
|
||||
Keep validated changes in development branches and commit checkpoints.
|
||||
|
||||
Do not spend time repairing Gitea as part of this design implementation.
|
||||
|
||||
If publication fails, preserve the local work, record the issue and continue eligible work without falsely claiming publication success.
|
||||
|
||||
Never merge into main or deploy production without explicit approval.
|
||||
|
||||
## 9. Final objective
|
||||
|
||||
Deliver the approved A3 experience throughout the real Jobjakt application.
|
||||
|
||||
I want a cohesive, modern, approachable and powerful product, with equally strong desktop and mobile experiences.
|
||||
|
||||
Preserve the application's advanced capabilities while making everyday workflows easier to understand and use.
|
||||
|
||||
**This is my final approval of the A3 design and authorisation to begin its staged development implementation.**
|
||||
|
||||
It is not approval for production deployment or for bypassing outstanding security and release gates.
|
||||
|
||||
Continue with the next authorised implementation milestone, maintaining durable progress reports and proceeding through independently eligible work without unnecessary interruptions.
|
||||
@@ -0,0 +1,7 @@
|
||||
# Application-tracking publication and next review
|
||||
|
||||
3 November2026. Implementation `98e9502af5039429fb6da45353e719a27e8aa22d` on codex/a3-ui-04 pushed successfully. Independent remote readback returned that exact hash. Committed manifest verification returned zero mismatches:20 sources and56 evidence files;80 exported assets are separately hashed.
|
||||
|
||||
Owner already accepted dashboard/onboarding and authorised this increment with **"Approve dashboard/onboarding and A3-IM04"**. Do not repeat that decision. Application-tracking Gate F is now pending in this chat, requesting progression to A3-IM05 discovery presentation/filters and permitted saved-search UX. This does not approve new international providers, geography behavior, licensing, live services or release.
|
||||
|
||||
See [qualification](APPLICATIONS_VALIDATION.md), [desktop detail](evidence/applications/browser/detail-en-light-1440.png), [mobile board](evidence/applications/browser/board-nb-dark-320.png). Preserve UI03/UI02 refs and the original integration d3d33837. Independent document-date ca519cac remains on its own branch; do not claim it is integrated here. Other independently eligible roadmap work may continue while this review is pending.
|
||||
@@ -0,0 +1,39 @@
|
||||
# A3-IM04 B1 applications and right context
|
||||
|
||||
3 November2026. Authorised by the owner's exact reply **"Approve dashboard/onboarding and A3-IM04"**. codex/a3-ui-04 starts at accepted dashboard receipt dc93b589, without merging the older design tree. Implementation preserves existing task, data, revision and permission owners.
|
||||
|
||||
## Result
|
||||
|
||||
Table and Board retain shared filters/search/counts, all columns, density, paging, saved views, selection/bulk/trash and precise status controls. Filters now use quiet separators instead of another rounded container; results/board cards follow the D1/B1 foundation. Board's contained horizontal scroller is explicitly named and keyboard-focusable; existing pickup/drop/cancel and exact-status menu remain. No feature/action was removed to match a mockup.
|
||||
|
||||
Full detail puts primary task content left and recorded context right above1000px. Context follows primary content in DOM and stacks below it on narrow/compact-preview layouts. Jump focuses the named context heading; Return focuses the current labelled task panel without route changes. Source/company/location/country/salary/tags and recorded dates remain visible across sections. Existing overview dates move into this shared context; missing dates remain unknown and date-only deadlines remain local calendar dates. Original detail disclosure, description/translation distinction, preparation/next action/activity and every tab/subtab stay available. No new API read/write is introduced.
|
||||
|
||||
Visual review reproduced an existing trust defect: a null nextStep claimed the application was fully prepared despite missing CV/letter data. Two EN/NB tests failed first; the existing message now says no next action is recorded and asks the user to review preparation, with informational severity. It no longer infers readiness from absence of a next action.
|
||||
|
||||
## Evidence and preservation
|
||||
|
||||
| Lane | Result / exact scope |
|
||||
|---|---|
|
||||
| Baseline |62 tests/7 suites PASSED before changes |
|
||||
| Test-first contracts |Two missing-context failures; separately two false-readiness failures reproduced before their fixes |
|
||||
| Final core frontend |69 tests/8 suites PASSED, including new focus/context/readiness cases, table/board/workspace, daily/trust loop and catalogue |
|
||||
| Disjoint writer suites |57 tests/2 suites PASSED: application-assets and edit-job-revision.126 unique selected frontend cases across10 suites; reviewer52 and baseline overlap, never added |
|
||||
| Backend preservation |88 tests PASSED, zero failed/skipped: ApplicationWorkspace, JobQueryParity, Rd21JobPersistence, JobApplicationsAuthorization, JobPipeline, JobApplicationsAppliedDateHistory. InMemory/isolated SQLite and mocked summarizer; no real models/providers or MariaDB |
|
||||
| Typecheck / full lint / build |PASSED on final implementation sources; static export includes the copy correction |
|
||||
| Browser |Actual built React with local synthetic API responses;16 configurations at320/390/768/1440 × EN/NB × light/dark.48 axe scans/captures, zero returned violations.16 search → Board → precise Waiting status → full detail → context jump/return → originating filtered Board journeys |
|
||||
| Writes |16 PATCH status requests explicitly fulfilled by fixtures. Zero unexpected writes/page exceptions; no request reached a real backend. All external requests aborted. This is separate from backend service/controller tests |
|
||||
| Independent review |No actionable findings.52 tests/3 suites passed independently but overlap core69. Native horizontal ArrowRight scroll behavior was not explicitly asserted by the browser verifier |
|
||||
|
||||
Tests retain sorting, page size, optional columns, shared query/view history/membership, saved-view account ownership, partial bulk failures, trash restore, custom statuses, precise menu, keyboard pickup/drop/Escape/focus, dirty-letter/answers navigation, coherent/stale Answers snapshots, legacy documents/correspondence/notes links, aggregate errors/retry, CV source revisions, attachments/history/frozen packages and edit revision conflict behavior. Secondary domain unit tests use controlled components/services; browser journeys above exercise the actual table/board/overview only. They do not establish successful live workflows for every task/document tab.
|
||||
|
||||
Intermediate verification exposed one old date-summary selector after moving that summary into context; corrected to the new named landmark, retaining checks for recorded and unknown dates. Typecheck caught an unsupported testing-library exact option; removed it. Both were resolved before final runs. Baseline/red native reports remain separate from green evidence. Source/evidence manifest binds final sources and exported assets. UI language still does not change source job content or document language.
|
||||
|
||||
## Open qualifications and rollback
|
||||
|
||||
No backend implementation, schema, dependency, route, permissions or revision writer changed. All57 inherited groups/34 route declarations remain; membership is not blanket functional/security acceptance. Canonical Career Profile/CV override/revision/RD21 contracts and physical document renderer remain untouched. No reason to reopen accepted PDF metrics or visuals.
|
||||
|
||||
Rollback this presentation increment on its branch; no data rollback. Existing application records, filters and saved views use the same owners. UI03 agenda compatibility remains documented separately. The independently published document-date patch ca519cac remains separate and is not silently included in these results.
|
||||
|
||||
NOT RUN: MariaDB, real service-backed browser/database end-to-end, hosted CI, native devices/touch/screen-reader/actual zoom, native-language review, licensed providers/live AI, final integrated security or release qualification. Final all-route integrated acceptance remains A3-IM10. Phase10, Product Review overall, Global Jobs, full Europe localisation, homepage and release gates remain open.
|
||||
|
||||
Next: publish/read back this increment, then required owner Gate F before A3-IM05 discovery presentation/permitted saved-search UX. Provider/geography expansion remains governed by the separate Global Jobs prerequisites and rights.
|
||||
@@ -0,0 +1,29 @@
|
||||
# A3-IM07 calendar subpackage — local qualification
|
||||
|
||||
3 November 2026. Owner approved progression to A3-IM07 after UI06. This calendar subpackage is independently implemented and locally qualified; **A3-IM07 remains open** for correspondence/document presentation and combined preservation evidence. No next milestone acceptance is requested yet.
|
||||
|
||||
The existing `/reminders` route now opens a date-level agenda above the unchanged workflow reminders. Agenda is default, with a persisted owner-scoped Month toggle. Upcoming recorded dates precede earlier dates; month selection and native calendar-day buttons retain linked application access. No view action creates a provider event or alters a reminder. Earlier reminder snooze/clear/retry/focus behavior remains with RemindersView.
|
||||
|
||||
Added authenticated `GET /api/calendar/agenda?from=YYYY-MM-DD&to=YYYY-MM-DD` to the existing ApplicationCalendarController. The inclusive range is limited to62 days and translated to an exclusive next-day query boundary. Explicit owner and nondeleted filters precede a narrow projection; company labels also require matching ownership. Deadline-only Saved applications are included even though the reminder attention feed excludes them. The response contains jobApplicationId,jobTitle,companyName,kind(deadline/follow-up),date and unchanged recordedAt. There are no schema, migration, model, writer or provider changes. Existing ICS and consent-scoped provider event endpoints are unchanged.
|
||||
|
||||
Calendar grouping retains the stored date; the view does not convert an unzoned legacy timestamp into an inferred timezone or appointment time. Original recordedAt stays on the time element and linked application. Current data has no interview appointment date and lacks original source precision/timezone metadata; that remains an explicit capability gap. Interviews are not fabricated from stage or note text. Undated work remains in the existing reminder workflow, not a guessed event.
|
||||
|
||||
| Evidence | Result |
|
||||
|---|---|
|
||||
| Baseline |70 existing reminders/calendar/documents/inbox cases across4 suites passed; not additional to overlapping later checks |
|
||||
| New contract red |Backend compilation failed because Agenda/DTO did not exist. Frontend suite could not resolve new component. These are missing-contract red checks, not executed runtime test failures |
|
||||
| Intermediate defect |Initial new month-navigation test failed: shared resource hook requires explicit dependency values, not just a new callback. Supplying from/to deps fixed actual missing month reload; no shared hook behavior changed |
|
||||
| Final frontend |25 selected cases/4 suites passed: new agenda8, existing reminder/calendar preservation and catalogue coverage. Reviewed7-case rerun overlaps and predates final upcoming-order case |
|
||||
| Backend |10 passed, zero failed/skipped. InMemory/isolated SQLite: saved deadlines, raw wall-clock date, inclusive last-day boundary, sibling-owner/deleted/outside exclusion, invalid/oversized ranges, and unchanged provider/ICS contracts. Strict provider mocks prove no calendar-read provider access |
|
||||
| Types/full lint/build |Passed after source fixes. Initial typecheck found unsupported test query options and missing required error title; corrected, not relabelled passing. Final build includes TypeScript validation |
|
||||
| Rendered React |16 configs320/390/768/1440 × EN/NB × light/dark;48 whole-page axe scans/captures, zero violations/overflow/page errors/unexpected writes. Final rerun after upcoming-first order supersedes prior overlapping browser report |
|
||||
| Connected controlled journey |Three occupations; agenda date provenance, month/day selection, next-month empty and previous-month read, persisted view on reload, keyboard-linked deadline to application detail/context. Every API intercepted; no live backend/provider or mutations |
|
||||
| Independent review |No important/critical source findings;7 overlapping frontend cases passed. Awaiting empty state fixed reviewer's test-only act warning; no provider/backend/browser run independently repeated |
|
||||
|
||||
Native frontend/backend/browser evidence and source manifest are under [evidence/calendar](evidence/calendar). Native API tests use the repository SDK at C:\Users\Connor\.dotnet and no restore/network. Browser verifier: `rtk proxy node scripts/verify-a3-calendar.mjs` from job-tracker-ui against static export localhost4338. Pilot/previous-source reports overlap and are not added to totals. Selected browser fixture dates are recorded synthetic dates, never advertised as live appointments.
|
||||
|
||||
Rollback reverts this subpackage; no database/data rollback. Existing route, reminder rules/actions, provider consent, calendar export behavior, Career/CV/letter revisions and frozen package contracts remain. Full Phase10, Product Review, European localisation, Global Jobs, final integrated security and release acceptance remain open.
|
||||
|
||||
NOT RUN: real backend/browser integration, MariaDB, hosted CI, native devices/screen readers/touch/zoom, actual reminder delivery, Google/Outlook live calendar, timezone/precision migration, interview scheduling, final security/release qualification. The existing legacy follow-up export precision/timezone behavior is preserved, not newly qualified by the date-only calendar.
|
||||
|
||||
Next authorised work: narrowly reconcile validated document date patch ca519cac, complete document/inbox connected presentation and preservation checks, then publish complete IM07 evidence for its required Gate F. No provider activation or final UI08 gate is implied.
|
||||
@@ -0,0 +1,11 @@
|
||||
# Career/document publication and next owner gate
|
||||
|
||||
3 November 2026. Implementation `6f801251b0d44e0dfb18365ba3102a3d4d482313` on `codex/a3-ui-06` was pushed successfully. Independent `git ls-remote --heads origin refs/heads/codex/a3-ui-06` returned that exact commit. Committed source/evidence manifest verification matched all26 sources and151 evidence files with zero mismatches;80 static-export assets are separately hashed.
|
||||
|
||||
Local qualification:212 unique selected frontend cases/ten suites and103 isolated backend cases passed; types/full lint/build and final verifier lint/diff check passed. Full16-config browser matrix has96 axe scans; six EN/light boundary/focus configs have36 scans, four configs overlap,108 unique validated screenshots (plus one failed diagnostic PNG). All14 edit targets passed visible/unobscured focus at320/390/768/1000/1001/1440. Deliberate saves are intercepted fixtures only. Independent source review57 passing cases overlaps212; independent verifier review reconciled counts and fixture limits.
|
||||
|
||||
The original A3-IM06 implementation authorisation is satisfied within [CAREER_VALIDATION.md](CAREER_VALIDATION.md)'s scope. Owner then explicitly answered **"Approve Career/CV/letter and A3-IM07"**. Gate F is ACCEPTED; do not ask again. A3-IM07 Calendar/reminders/correspondence/documents is authorised, preserving closing-date provenance/precision/timezones, linked context, ICS/provider consent, attachment previews/downloads and mail conflicts/confirmed-send. Real provider activation remains separate. Earlier UI01–05 approvals remain accepted and must not be repeated.
|
||||
|
||||
Do not treat this as full Phase10, Product Review, European localisation, Global Jobs provider, import-engine, native-device, physical PDF, final integrated security or release acceptance. No main merge/deployment. Independent `ca519cac` date localisation and `de3d5031` security policy remain isolated; no older workstream source was wholesale merged. The generated graph remains local and untracked.
|
||||
|
||||
Next independent eligible candidate while the owner reviews: reproduce and localise fixed-decimal attachment size presentation in the existing attachment owners on the separate localisation branch. Follow the existing number-formatting contract, preserve units/thresholds and unknown/zero semantics, test EN/NB, then reconcile that small patch before any A3 integration. Final integration of completed isolated patches requires combined checks.
|
||||
@@ -0,0 +1,36 @@
|
||||
# A3-IM06 Career Profile and document workflows
|
||||
|
||||
3 November 2026. Owner approved **"Approve discovery and A3-IM06"**. Isolated `codex/a3-ui-06` starts at discovery receipt `027907a80666f7ddd51c848411ceaacec6768f20`. No unrelated workstream was merged. Local qualification is complete within the boundaries below; owner Gate F remains pending. Publication identity is recorded separately in CAREER_PUBLICATION.md.
|
||||
|
||||
Career overview now offers immediate edit actions for all fourteen existing canonical sections. Saved completeness indicators come from the server's existing seven-section assessment; unscored sections invite review, and unsaved drafts hide stale indicators. Editing projects and certifications now reaches every supported field through the existing canonical profile draft and versioned Save. Edits preserve opaque IDs, metadata and sibling facts. No new profile, score, API, schema or writer was introduced.
|
||||
|
||||
CV editing remains left and live preview right above 1000px; 768–1000px stacks both panes, and narrower phones retain the existing edit/preview switch. Cover letters use the same boundaries. Library cards reuse existing translated template labels while retaining unknown legacy IDs. A shared disabled-toolbar tooltip wrapper follows the existing MUI pattern. Renderers, physical document CSS, history/coalescing, autosave queues, conflict handling, null-as-inherit settings, frozen packages and RD21 remain unchanged.
|
||||
|
||||
| Evidence | Result and qualification boundary |
|
||||
|---|---|
|
||||
| Initial baseline |142 tests / seven suites passed before implementation; historical baseline, not added to final total |
|
||||
| Test-first regressions |Canonical project/certification controls, fourteen section edit destinations, tablet CV mode, friendly library names and tablet letter preview reproduced missing behavior before fixes |
|
||||
| Final frontend selection |212 unique selected cases / ten suites passed, zero failed/pending; latest full execution per disjoint suite in `a3-career-final-selection.json` |
|
||||
| Backend preservation |103 passed, zero failed/skipped: CareerProfileServiceTests, CvRevisionReadinessTests, CoverLetterWriterTests, CvBuilderTests; InMemory/temporary SQLite and mocked exporter/summarizer, not MariaDB/live models or physical PDF acceptance |
|
||||
| Types / full lint / production build |Passed after final application changes; final browser harness scoped zero-warning lint and diff check also passed |
|
||||
| Independent review |No actionable source or verifier safety findings.57 cases / three suites independently passed, overlapping212. Separate verifier review independently reconciled browser counts and unavailable fixture reads; browser/backend/build not independently rerun |
|
||||
| Rendered browser matrix |16 configurations:320/390/768/1440 × EN/NB × light/dark;96 whole-page axe scans, zero violations/overflow/page errors/unexpected writes. Six screens per journey:overview,profile,import review,library,CV editor,letter |
|
||||
| Boundary/focus checks |Six EN/light configurations:320/390/768/1000/1001/1440;36 scans, zero violations. All14 direct edit targets have visible/unobscured focus; CV/letter stack through1000 and split at1001. Four configurations overlap the main matrix:108 unique screen/config captures overall, not132 unique cases |
|
||||
| Fixture mutation boundaries |Main matrix48 explicit saves, boundary run18; three per journey:canonical project save preserving IDs/metadata/certifications/raw source, document-only rename preserving settings/version, manual letter save preserving revision precondition. All fulfilled in memory; no real API writes |
|
||||
| Publication |See CAREER_PUBLICATION.md for exact commit/ref and independent readback |
|
||||
|
||||
The broad intermediate frontend run passed152 of153 cases and failed an existing typing-burst undo test. Production history code was unchanged. The test's simulated synchronous burst crossed its real one-second grouping clock under slow rendering. An unchanged isolated rerun passed. The fixture now pins only that simulated burst's clock and restores it in `finally`; a separate regression advances two seconds and requires two undo steps. The complete59-case studio suite then passed. Earlier failed reports remain FAILED, with that suite superseded by the later complete studio execution; totals never add overlapping runs.
|
||||
|
||||
Two early tablet attempts lacked `matchMedia` in JSDOM and are harness failures, not behavioral red evidence. A corrected viewport fixture reproduced the actual old768px mobile-mode behavior. The first browser pilot assumed desktop tabs on phones; the source already uses a mobile selector. The corrected pilot completed six scans and three fixture mutations. A visibility probe initially sampled the mobile selector's exiting invisible modal backdrop; the verifier now waits for unobscured focus rather than weakening application behavior. No source fix was needed for these harness issues.
|
||||
|
||||
Source imports, review/retention/conflict/history and render contracts are covered by selected existing frontend/backend tests; browser import review exercises the legacy pending comparison, low-confidence selection and no Apply. It does not qualify a parser, model or the separately deferred CV-import overhaul. Controlled CV HTML previews are not real exporter output. Prior accepted physical PDF metrics/visual evidence is reused only for unchanged renderer/fixture sources; no fresh PDF or native-language visual acceptance is claimed.
|
||||
|
||||
No production backend, provider, model or source data is accessed by the browser verifier. Every API request is intercepted; unavailable secondary reads are recorded and appear as honest unavailable states (company list, optional thumbnail preview and linked-CV assistance). Deliberate Career Save, CV rename and letter Save are in-memory fixture mutations. All external requests are blocked. Fixed mobile navigation can appear within a full-page scroll capture; screenshots do not establish native-device behavior. Representative mobile320,tablet768,boundary1001 and desktop1440 captures were visually inspected; this is scoped engineering review, not owner/native-language acceptance.
|
||||
|
||||
Native reports, failed attempts, captures and source/evidence manifest are under [evidence/career](evidence/career). There are108 unique validated screen captures plus one FAILED-focus.png diagnostic,109 PNG files total. Frontend aggregate references reports in its own frontend directory. To repeat rendered checks from job-tracker-ui against the built static export on localhost4338: `rtk proxy node scripts/verify-a3-career.mjs`; set `A3_BOUNDARY=1` for the six additional boundary/focus configurations. The pilot is an overlapping diagnostic, never added to the final total. AST-only graphify update passed; missing optional SQL parser and symbol-less file diagnostics remain tool limitations, with no LLM/provider activation.
|
||||
|
||||
Rollback reverts this presentation/control increment on its feature branch; no data/database rollback is required. Version guards and existing conflict recovery remain required. The independent document-date patch `ca519cac` and root security policy `de3d5031` remain separate. All188 historical dynamic translation-call reviews are accounted for; this increment's paired literal EN/NB keys do not complete European localisation.
|
||||
|
||||
NOT RUN: real backend/browser end-to-end, MariaDB, hosted CI, native screen reader/device/touch/zoom, live models/providers, physical PDF rerender, final integrated security/recovery/release. Phase10, Product Review, Global Jobs, European localisation and release acceptance remain open. No main merge or production deployment.
|
||||
|
||||
Next mandatory Gate F: owner review of this published increment before A3-IM07 Calendar/reminders/correspondence/documents. Preserve deadline date precision, consent, existing ICS/export and confirmed-send boundaries. Other independently eligible roadmap work may continue while that decision is pending.
|
||||
@@ -0,0 +1,9 @@
|
||||
# Dashboard publication and Gate F receipt
|
||||
|
||||
3 November 2026. Implementation `c7d26d354c44b0bdd2976cf2f1c2b0737d7cc2d2` on `codex/a3-ui-03` was pushed successfully. Independent `git ls-remote --heads origin refs/heads/codex/a3-ui-03` returned the same full hash. Committed source/evidence manifest verification returned zero mismatches (23 sources,42 evidence artifacts; export hashes retained separately).
|
||||
|
||||
Navigation Gate F is accepted by the owner's exact reply **"Approve navigation and A3-IM03"**. Dashboard/onboarding Gate F is now pending; the question submitted in this chat requests acceptance and progression to A3-IM04 B1 application table/Kanban/full detail pages, retaining actions, revision/permission protections and right-side context. Do not begin that dependent work until answered. Independent localisation continues separately; no automatic branch combination.
|
||||
|
||||
See [qualification](DASHBOARD_VALIDATION.md) and [desktop capture](evidence/dashboard/browser/dashboard-en-light-1440.png), [mobile walkthrough](evidence/dashboard/browser/walkthrough-nb-dark-320.png). UI03's checklist item for owner acceptance remains open deliberately. This receipt does not accept Phase10, security or release readiness.
|
||||
|
||||
Git printed Windows filename-too-long warnings for unrelated Codex turn-diff checkpoint refs during commit. The application branch commit, source-manifest check, push and independent remote readback succeeded. No Git infrastructure/refs/hooks/configuration was repaired or bypassed. Worktree is clean except existing untracked generated graphify-out.
|
||||
@@ -0,0 +1,39 @@
|
||||
# A3-IM03 dashboard and onboarding qualification
|
||||
|
||||
3 November 2026. Owner accepted navigation992608c7 and explicitly answered **"Approve navigation and A3-IM03"**. This authorises this increment; the next milestone still requires Gate F review under the approved A3 implementation proposal. Publication receipt follows after committing.
|
||||
|
||||
## Implemented scope
|
||||
|
||||
New/reset defaults put Today first, Your week left and pipeline right, then metrics and retained analytics. Saved layouts retain order, hidden positions and geometry. All nine original widget IDs remain; one additive `agenda` ID is accepted by the existing schema2 server validator. Existing saved layouts append it hidden. No migration, endpoint or dependency change. Personal greetings use recorded first/display names only; unnamed accounts retain Dashboard.
|
||||
|
||||
Your week uses strictly parsed, recorded deadlines and follow-ups within seven local calendar days, from the existing attention feed. Date-only deadlines retain their calendar date and raw datetime attribute. Missing/free-text/invalid dates are omitted. It displays at most three entries and links to Reminders; it does not claim complete calendar or interview coverage. Full calendar remains A3-IM07 work.
|
||||
|
||||
Setup moves below the task dashboard. Existing dismissal keys still work; dismissal exposes a resume/walkthrough entry. Individual skips persist per owner and never increase completion. Completion remains based on the existing account/Career/mail/job reads. Walkthrough steps link to existing destinations, explain optional import/mail consent, support previous/next/close and focus return. No guidance action writes source data, grants access, or blocks manual tracking. Existing loading/error/retry remains.
|
||||
|
||||
## Fresh evidence
|
||||
|
||||
| Check | Result and boundary |
|
||||
|---|---|
|
||||
| Baseline | 71 frontend tests /9 suites PASSED before changes |
|
||||
| Test-first new behavior | Six frontend failures reproduced before implementation; backend agenda acceptance failed before whitelist addition |
|
||||
| Final selected frontend | 95 tests /12 suites PASSED, zero failed; dashboard/grid/CAS hook/customisation/presentation/onboarding/dates/control-loop/navigation/metadata/catalogue/provider. Baseline, red runs and reviewer45 overlap; do not add totals |
|
||||
| Backend layout | 36 DashboardPreferencesTests PASSED, zero failed/skipped; isolated SQLite HTTP host, real owner/CAS/bounds/collision/legacy tests. New agenda test rejects unknown IDs and overlap. Focused green1 overlaps36 |
|
||||
| Typecheck / full lint / build | PASSED on combined UI03 + localisation5e8a07d1 tree; zero-warning lint, fresh static export |
|
||||
| Actual React browser | 16 configurations: widths320/390/768/1440 × EN/NB × light/dark; 32 whole-page axe scans, zero returned violations;32 PNGs |
|
||||
| Connected journeys | All16: week dates/order, no overflow, desktop week/pipeline row, skip/reload/resume, dismiss/reload/resume, guide next/close/focus, hide agenda/save/reload |
|
||||
| Write boundary | 16 explicit layout PUTs fulfilled by in-memory fixtures; zero unexpected writes/page errors. Guidance causes zero writes. Every external request aborted; Google Fonts attempts are not provider validation |
|
||||
| Independent review | No actionable findings. Reviewer45 tests /3 suites PASSED, overlapping95; did not independently rerun backend/browser/build |
|
||||
|
||||
Native JSON/TRX, captures and source-bound hashes are in [evidence/dashboard](evidence/dashboard). Browser harness: `rtk proxy node scripts/verify-a3-dashboard.mjs` from job-tracker-ui against the static export on localhost4338. Browser persistence is controlled in-memory API behavior, separate from real backend SQLite tests; this is not an integrated database E2E pass. Screenshots use synthetic nurse, teacher and engineer data; English job descriptions in Bokmål UI are source content, not translated UI labels. Fixed-header placement in full-page scroll captures is a browser capture artifact, not a native-device result.
|
||||
|
||||
New catalogue keys are paired EN/NB and covered by catalogue QA. The existing widget-title dynamic domain now has ten IDs, including agenda, each backed by both catalogues. All188 historical dynamic reviews remain accounted for; full European localisation is still open. The independent mobile build-metadata fix is now combined and included in selected tests. Prior navigation/foundation evidence remains historical source-bound evidence, not a fresh full rerun.
|
||||
|
||||
## Preservation, recovery and open gates
|
||||
|
||||
Schema2 bounds, collisions, CAS and ownership remain in their existing owners. No route declarations or permission flags changed. Career Profile, CV/letter revisions, null-as-inherit overrides and RD21 owners are untouched. No physical document renderer changes warrant reopening accepted PDF metrics/visuals.
|
||||
|
||||
Rollback: revert this increment on the feature branch, retaining localisation5e8a07d1. No source job/profile data or database schema is changed. An old build may ignore/omit the new agenda preference on a subsequent layout save; all nine old widgets remain compatible. Production rollout/rollback qualification is still required before deployment. Existing layouts are never automatically reset.
|
||||
|
||||
NOT RUN: MariaDB, real backend/browser integrated journeys, hosted CI, native device/touch/screen reader/actual zoom, real provider/mail/model workflows, final integrated security, live recovery or release acceptance. No production services were accessed. Phase10 final acceptance and the wider roadmap remain open. The broader calendar and remaining A3 screens are not complete.
|
||||
|
||||
Next protected dependency: owner Gate F review of this dashboard/onboarding increment before A3-IM04 B1 application table/Kanban/detail implementation. Other independently eligible work remains authorised.
|
||||
@@ -0,0 +1,7 @@
|
||||
# Discovery publication and owner acceptance
|
||||
|
||||
3 November2026. Implementation `c9c6b1abc1f87a907d1e37062cfa5e2ed3fd933c` on codex/a3-ui-05 pushed successfully; independent remote readback matched. Committed source/evidence manifest had zero mismatches (14 sources,54 evidence files;80 exported assets separately hashed).
|
||||
|
||||
Owner then explicitly answered **"Approve discovery and A3-IM06"**. Discovery Gate F is ACCEPTED; do not ask again. Next authorised scope is Career Profile overview, CV library/editor/templates/import review and cover-letter presentation, preserving canonical ownership, editor-left/preview-right, null-as-inherit, undo/save/conflicts/history, frozen packages and RD21. Deferred CV-import engine overhaul remains excluded. This acceptance does not accept Global Jobs provider expansion, Phase10, final integrated security or release readiness.
|
||||
|
||||
See DISCOVERY_VALIDATION.md and UI-05.md for evidence/boundaries. The original integration/UI01–04 refs remain separate. Root security policy de3d5031 and document-date ca519cac remain on their independent branches and are not silently included.
|
||||
@@ -0,0 +1,31 @@
|
||||
# A3-IM05 existing discovery presentation qualification
|
||||
|
||||
3 November2026. Owner explicitly answered **"Approve applications and A3-IM05"**. Branch codex/a3-ui-05 starts at accepted application receipt172074e9. No older design tree or unrelated implementation branch merged.
|
||||
|
||||
Filters and saved searches form a left rail beside a single result list above1000px. Narrow screens preserve filters-before-results DOM order; Jump to results and Return to search filters move focus without requests or route changes. Source coverage explanation is above both columns. Existing query/location fields, sort, saved-search create/run/pause/delete/dismiss, source attribution/provenance/original links, Save-to-tracker route and busy/empty/error/retry owners remain unchanged. Added only three paired EN/NB labels. UI language does not translate source content.
|
||||
|
||||
This is presentation of the existing NAV workflow. No new country, provider, radius, taxonomy, matching or in-app full-description capability was fabricated. Global Jobs' future three-pane authorised-detail experience depends on GJ prerequisites, rights and actual data contracts. GJ-00 planning is separate; GJ-01+ acceptance/provider activation is not implied. Source master and initial planning pack were read at `E:\Storage\Projects\Active\Job tracker\docs\planning\global-jobs-prompts\` because this older integration branch does not contain that pack. The original external source's provider/prerequisite constraints remain intact.
|
||||
|
||||
| Evidence | Result and boundary |
|
||||
|---|---|
|
||||
| Baseline |21 discovery tests passed before edits |
|
||||
| Test-first focus contracts |Two EN/NB missing-landmark failures reproduced before implementation |
|
||||
| Final frontend |32 tests/3 suites passed: discovery23, provider6, catalogue3; reviewer23 and baseline overlap, not additional cases |
|
||||
| Backend preservation |14 passed, zero failures/skips: JobDiscoveryControllerTests, SavedJobSearchSqliteTests, SavedJobSearchAlertTests. Synthetic HTTP handler/FakeDiscovery, InMemory/isolated SQLite; no live NAV/provider request or app worker activation |
|
||||
| Types/full lint/build |Passed; new browser script also passed scoped zero-warning lint |
|
||||
| Built React browser |16 conditions:320/390/768/1440 × EN/NB × light/dark;48 whole-page axe scans, zero violations,48 PNGs |
|
||||
| Connected journeys |All16: initial guidance/no automatic provider search, keyboard jump/return, wide/stack geometry, three-occupation search, save nurse/Oslo query, pause alerts, manual saved run, retained original link, dismiss and separately confirmed deletion |
|
||||
| Mutation boundary |80 explicit requests fulfilled only by in-memory fixtures:16 each create/pause/run/dismiss/delete. Zero unexpected writes/page errors. All external requests aborted; no real backend/provider writes |
|
||||
| Independent review |No actionable findings;23 tests/one suite passed independently, overlapping32. Reviewer did not independently execute browser/backend |
|
||||
|
||||
Native reports/captures and source manifest: [evidence/discovery](evidence/discovery). Browser harness runs from job-tracker-ui: `rtk proxy node scripts/verify-a3-discovery.mjs`, against the static export on localhost4338. Synthetic nurse/teacher/engineer listings are fixtures, never represented as current live search results. Source data remains in its original language even in Bokmål UI.
|
||||
|
||||
Two harness defects were corrected: initial URL used a nonexistent /jobs/discover path instead of /discover; immediate uncheck assumed optimistic switch state. The final verifier clicks the control and waits for the existing backend-acknowledged state. No application behavior was weakened to satisfy either harness issue. Failed attempts are not passing journeys. Fixed bars can appear within full-page scroll captures; native-device layout is not qualified by those captures.
|
||||
|
||||
Existing unit coverage retains sorting/metadata, initial versus empty results, saved-list validation/loading/retry, per-search result boundaries, stale-free request snapshots, failure-retained drafts/toggles/deletion/dismissal, duplicate-start prevention, current-language errors without replay, and explicit mutation recovery. These are controlled contracts; the browser did not repeat every failure path or perform actual Save-to-tracker import.
|
||||
|
||||
No backend/schema/API/dependency/revision writer/route or physical document renderer changes. Existing owner/persistence/right checks stay with their services. Rollback reverts this UI increment; no database or data rollback. The separate ca519cac document-date patch and de3d5031 security policy are not silently combined here.
|
||||
|
||||
NOT RUN: live NAV/commercial providers, MariaDB, real backend/browser end-to-end, hosted CI, native screen-reader/device/touch/actual zoom/native-language review, final integrated security/recovery/release. Complete Product Review, Global Jobs, European localisation and Phase10 remain open. No production/main changes.
|
||||
|
||||
Next protected dependency: publish/remote verify and owner Gate F before A3-IM06 Career overview/CV/letter workflows. Deferred CV-import engine overhaul remains excluded; canonical Career Profile, null-as-inherit settings, undo/save/conflict/history and RD21 must be preserved.
|
||||
@@ -0,0 +1,216 @@
|
||||
# Jobjakt — Gate F Approval and Continued Autonomous Development
|
||||
|
||||
## Owner decision: APPROVED
|
||||
|
||||
I approve the **A3 UI-01 Foundation checkpoint under Gate F**.
|
||||
|
||||
The approved checkpoint includes:
|
||||
|
||||
- Updated palette and typography.
|
||||
- Shared UI controls.
|
||||
- Quieter, more consistent surfaces.
|
||||
- Light and dark theme foundations.
|
||||
- English and Norwegian compatibility.
|
||||
- Responsive foundation across the tested viewport widths.
|
||||
|
||||
Reported verification:
|
||||
|
||||
- 35 targeted tests passed.
|
||||
- 48 scoped browser/accessibility checks passed.
|
||||
- TypeScript typecheck passed.
|
||||
- Lint passed.
|
||||
- Build passed.
|
||||
- Application commit: `bdd1de0d`.
|
||||
- Latest branch receipt: `0d6de714`.
|
||||
- Remote publication verified.
|
||||
|
||||
This approval authorises progression beyond the foundation increment.
|
||||
|
||||
It does not constitute production acceptance or waive unperformed integration, accessibility, security or release testing.
|
||||
|
||||
## 1. Continue A3 implementation
|
||||
|
||||
Proceed immediately with the next authorised A3 milestone: **navigation**.
|
||||
|
||||
Preserve the approved A3 design direction:
|
||||
|
||||
- D1 visual foundation.
|
||||
- Original A1 dashboard.
|
||||
- B1 application tracking.
|
||||
- Labelled, grouped and collapsible desktop sidebar.
|
||||
- Hybrid mobile navigation.
|
||||
- CV editor left and live preview right.
|
||||
- Full application-detail pages with contextual information on the right.
|
||||
- Career Profile overview first.
|
||||
- Calendar agenda first, with month-view option.
|
||||
- Automation controls under Settings.
|
||||
- Contextual, optional AI assistance.
|
||||
- Optional, resumable onboarding.
|
||||
|
||||
Do not restart design exploration.
|
||||
|
||||
## 2. Complete as much authorised work as possible
|
||||
|
||||
I want you to continue development autonomously, making substantial progress without unnecessary interruptions.
|
||||
|
||||
After navigation, proceed through the remaining A3 milestones in their approved dependency order:
|
||||
|
||||
- Dashboard and application tracking.
|
||||
- Application details.
|
||||
- Career Profile.
|
||||
- CV Builder and import workflows.
|
||||
- Cover-letter editing.
|
||||
- Job discovery.
|
||||
- Calendar and correspondence.
|
||||
- Documents and administration.
|
||||
- Settings and automation.
|
||||
- Optional onboarding.
|
||||
- Responsive mobile refinement.
|
||||
- Integrated UI/UX qualification.
|
||||
|
||||
Follow the actual approved A3 implementation plan and existing preservation requirements.
|
||||
|
||||
For each increment:
|
||||
|
||||
1. Inspect the existing implementation.
|
||||
2. Implement the approved changes.
|
||||
3. Fix bounded defects.
|
||||
4. Run relevant tests.
|
||||
5. Validate responsive layouts and both themes.
|
||||
6. Verify English/Norwegian behaviour.
|
||||
7. Check accessibility.
|
||||
8. Verify preservation of existing functionality.
|
||||
9. Commit validated changes.
|
||||
10. Push where available.
|
||||
11. Record evidence and continuation status.
|
||||
12. Proceed to the next authorised increment.
|
||||
|
||||
Avoid repeatedly asking permission for ordinary reversible implementation decisions already covered by the approved design.
|
||||
|
||||
## 3. Milestone approvals
|
||||
|
||||
I want maximum autonomous progress, but genuine mandatory owner gates remain in force.
|
||||
|
||||
Where the approved implementation plan requires an owner milestone review:
|
||||
|
||||
- Complete the increment.
|
||||
- Prepare the review evidence and screenshots.
|
||||
- Record the exact proposed next scope.
|
||||
- Request the required approval.
|
||||
- Do not bypass that gate.
|
||||
|
||||
While awaiting approval, continue other independently authorised tasks that do not depend on the blocked milestone.
|
||||
|
||||
Do not treat my Gate F approval as blanket approval of all future protected gates.
|
||||
|
||||
Where the authoritative plan allows automatic progression, proceed without stopping.
|
||||
|
||||
## 4. Preserve the complete application
|
||||
|
||||
The A3 design handoff identifies 57 preservation groups and 34 routes.
|
||||
|
||||
Ensure every existing function remains available unless removal has been separately authorised and qualified.
|
||||
|
||||
Pay particular attention to:
|
||||
|
||||
- Career Profile persistence.
|
||||
- CV revisions and undo/redo.
|
||||
- Existing CV and cover-letter documents.
|
||||
- Imports and exports.
|
||||
- Authentication and account security.
|
||||
- Job application data.
|
||||
- Dashboard customisation.
|
||||
- Administration permissions.
|
||||
- RD21 data-integrity protections.
|
||||
- Existing integrations and automations.
|
||||
|
||||
Do not simplify away advanced features merely because they were absent from a design prototype.
|
||||
|
||||
## 5. Continue the wider roadmap
|
||||
|
||||
Continue independently eligible work across:
|
||||
|
||||
1. Phase 10 completion and acceptance.
|
||||
2. PRODUCT-REVIEW-01.
|
||||
3. International Global Job Search.
|
||||
4. Full European localisation.
|
||||
5. A3 application UI/UX implementation.
|
||||
6. Multilingual homepage redesign.
|
||||
7. Security audit and remediation.
|
||||
8. Release-readiness preparation.
|
||||
|
||||
Respect dependencies, explicit owner decisions and authoritative acceptance gates.
|
||||
|
||||
Coordinate Global Job Search, translations and A3 so their implementations do not conflict.
|
||||
|
||||
Do not repeat accepted work unnecessarily.
|
||||
|
||||
## 6. Blockers and continuation
|
||||
|
||||
If a task cannot proceed:
|
||||
|
||||
- Record the exact blocker.
|
||||
- Identify its impact and dependency.
|
||||
- Preserve completed work.
|
||||
- Continue another independently eligible task.
|
||||
- Revisit the blocker only when new evidence or an approval makes progress possible.
|
||||
|
||||
Maintain the existing durable roadmap continuation records.
|
||||
|
||||
Do not build or reactivate the autonomous orchestrator.
|
||||
|
||||
Do not spend development time fixing unrelated Git infrastructure issues.
|
||||
|
||||
Never claim unsuccessful publication or unperformed tests passed.
|
||||
|
||||
## 7. Validation expectations
|
||||
|
||||
Continue targeted verification throughout development.
|
||||
|
||||
Run broader regression suites when required by the approved milestone gates.
|
||||
|
||||
Keep these statuses distinct:
|
||||
|
||||
- Implemented.
|
||||
- Tested.
|
||||
- Accepted.
|
||||
- Published.
|
||||
- Production-ready.
|
||||
|
||||
The UI-01 browser checks do not qualify real backend journeys, native-device accessibility or integrated security.
|
||||
|
||||
Those requirements remain open.
|
||||
|
||||
## 8. Git and production restrictions
|
||||
|
||||
Use the existing authorised development branches and worktrees.
|
||||
|
||||
Verify the correct integration baseline before combining workstreams.
|
||||
|
||||
Commit and publish validated checkpoints when possible.
|
||||
|
||||
Do not merge into `main`.
|
||||
|
||||
Do not deploy production.
|
||||
|
||||
Do not activate unqualified AI models.
|
||||
|
||||
Do not perform destructive migrations without approval.
|
||||
|
||||
## Final instruction
|
||||
|
||||
**Gate F is approved for the A3 UI-01 Foundation checkpoint.**
|
||||
|
||||
Proceed immediately to navigation implementation.
|
||||
|
||||
Then continue through as much of the remaining authorised A3 overhaul and wider Jobjakt roadmap as possible.
|
||||
|
||||
Prioritise completing functional, integrated user journeys rather than accumulating disconnected partial implementations.
|
||||
|
||||
Minimise unnecessary interruptions.
|
||||
|
||||
Pause only for genuine mandatory decisions, and continue independent work whenever another task is blocked.
|
||||
|
||||
Keep the roadmap, test evidence and remaining approval items updated.
|
||||
|
||||
Do not merge into main or deploy production.
|
||||
@@ -0,0 +1,39 @@
|
||||
# A3-IM02 navigation validation and review
|
||||
|
||||
Status: implemented and tested; owner Gate F navigation review remains OPEN before dashboard/onboarding A3-IM03. Foundation Gate F is already accepted, not reopened. See UI-02.md for preserved owners and exact next scope.
|
||||
|
||||
## Fresh scoped evidence
|
||||
|
||||
| Check | Result / scope |
|
||||
|---|---|
|
||||
| Baseline | 15 tests / 3 suites PASSED before navigation edits; BASELINE.json |
|
||||
| New primary-navigation tests | Five expected failures before implementation; desktop preservation case already passed |
|
||||
| Current-route regression | Reproduced drawer staying open; fixed in shared handler; red/green case retained |
|
||||
| Final selected Jest run | 49 tests / 9 suites PASSED; FINAL_TESTS.json. Intermediate32/17 and reviewer11 overlap this total, not extra cases |
|
||||
| Typecheck / lint / production build | PASSED; built static export used API base /api for controlled loopback checks |
|
||||
| Real React screen matrix | 32 conditions: login + Companies × 320/390/768/1440 × EN/NB × light/dark |
|
||||
| Dialog and navigation accessibility | 56 scoped axe sweeps, zero returned violations: 32 complete screen surfaces, 16 company dialogs, 8 mobile More drawers |
|
||||
| Connected browser checks | 16 configurations: primary route selection and heading focus, secondary navigation, collapse persistence or More/Escape/current-route selection, reviewed synthetic company edit/save and phone notification clearance |
|
||||
| Primary routes | All four primary shell destinations visited in each configuration (64 transitions). API-unavailable content states are permitted; this verifies navigation/focus, not successful domain/backend journeys |
|
||||
| Write safety | 16 explicit company PUTs intercepted and fulfilled by local browser fixtures; zero requests reached a backend. Unexpected write methods/paths rejected; no unexpected writes or page exceptions observed |
|
||||
| Captures | 56 PNGs: 32 screens + 8 More drawers + 8 collapsed desktop/tablet + 8 phone notification states |
|
||||
| Preservation census | All 57 inherited groups retained; all 34 inherited route declarations present. Source membership is not complete functional or authorisation acceptance |
|
||||
| Independent source review | No important/critical findings. Conservative extra safe-area clearance noted; native notched-device review still pending |
|
||||
|
||||
The browser lane is the actual built React application, with controlled service responses, not the design prototype. It rejects every external request; 40 existing Google Fonts attempts were aborted. Provider/model/production services were never contacted. Only Companies has a successful synthetic mutation fixture; other core destination content may display honest unavailable-service states. No model was started. Main document/page renderer sources are unchanged.
|
||||
|
||||
During verification, a mistyped translation test path produced a failed harness run (two real suites/eight cases passed); corrected to the existing catalogue/provider files, then final nine-suite run passed. A broad alert selector also matched Next's route announcer; narrowed to the actual Snackbar feedback. These are resolved harness defects, not hidden passing tests. Layout review reproduced broken English labels at320px: content-based flex widths with minimum44px targets fixed them while retaining11px labels and long-text wrapping. The final browser assertions require Dashboard and Applications to fit one line in English.
|
||||
|
||||
No original concepts were regenerated. No route, advanced workflow, permission, document revision, schema, dependency, controller or production configuration was removed. Route declarations are unchanged; navigation grouping is changed deliberately. Existing admin visibility flags, router/legacy redirects, quick search, notification count semantics, desktop storage and ownership disposal remain in their existing owners.
|
||||
|
||||
## Review examples
|
||||
|
||||
- [Phone navigation](evidence/navigation/companies-en-light-320.png).
|
||||
- [Bokmål dark desktop](evidence/navigation/companies-nb-dark-1440.png).
|
||||
- [More drawer](evidence/navigation/more-en-light-390.png).
|
||||
- [Notification above the bar](evidence/navigation/feedback-nb-dark-320.png).
|
||||
- [Collapsed sidebar](evidence/navigation/collapsed-en-light-1440.png).
|
||||
|
||||
Run the installed harness from job-tracker-ui against the current static export on loopback port4338: `rtk proxy node scripts/verify-a3-theme.mjs --navigation`. This mode writes only evidence/navigation; historical foundation artifacts stay unchanged. SOURCE_MANIFEST.json binds final source, native reports, captures and exported assets. Historical foundation source hashes remain bound to bdd1de0d, not falsely reused as new navigation results.
|
||||
|
||||
NOT RUN: real database/backend workflows, hosted CI, real identity/mail/job providers, AI models, physical PDF/container requalification, native screen reader/touch/software keyboard, actual browser zoom, native-language review, final integrated security or release-readiness acceptance. Those gates remain separate. Full A3 UI/UX implementation is not complete.
|
||||
@@ -0,0 +1,38 @@
|
||||
# UI-01 — approved A3 foundation implementation
|
||||
|
||||
Status: A3-IM01 foundation ACCEPTED under Gate F by explicit owner attachment a178edeb-c3ef-4c0e-b4c2-bcd1ca84b90b, 3 November 2026. Do not repeat that approval request. Navigation A3-IM02 proceeds on codex/a3-ui-02; see UI-02.md. Original implementation branch `codex/a3-ui-01`, isolated integration worktree. Base `d3d338376444b8abdcaf7200f682faa3daf1ad10`; design source `237c79b8cb3e280d7e4d1ef95cdbb2c77bb81c69`; roadmap receipt `286535bef046417a09a156685c937e8be9155147`.
|
||||
|
||||
Owner's 3 November 2026 attachment explicitly approves the final A3 foundation and staged real-application implementation. Verbatim authorisation is retained in A3_APPROVAL.md. Gates C/D/E are approved for that scope; deployment, Phase 10, security/provider/native/device/release gates are not waived.
|
||||
|
||||
## Task ledger and verification plan
|
||||
|
||||
- [x] Verify branch/commits and use accepted integration baseline; preserve existing worktrees. Created implementation branch in the already isolated integration worktree, keeping its original branch ref unchanged. No wholesale merge of the older design tree.
|
||||
- [x] Baseline: four existing theme/dialog suites, 28 tests PASSED before production edits.
|
||||
- [x] A3-IM01: approved D1 palette, typography, quiet surfaces and shared controls implemented through existing theme.ts. Added visual-contract regression checks; retained semantic contrast, theme/system persistence, focus, reduced-motion, density and dialog checks.
|
||||
- [x] Targeted tests, types, lint, production build and actual application browser checks in EN/NB, both themes and mobile/desktop. See VALIDATION.md for exact source scopes and pending human/zoom checks.
|
||||
- [x] Validated checkpoint `bdd1de0dd3259e4e9e9f46c81948f865317c6054` committed, pushed to origin/codex/a3-ui-01 and independently confirmed by git ls-remote. No infrastructure repair. Subsequent documentation receipts do not change this immutable application/evidence identity.
|
||||
- [x] Gate F foundation review approved by the owner in GATE_F_FOUNDATION_APPROVAL.md. Navigation is A3-IM02, separately implemented and reviewed.
|
||||
|
||||
Scope reaches the existing ThemeProvider and every MUI theme consumer, including navigation semantic colours and shared fields/buttons/cards/dialogs. Preserve component APIs, routes, application state, server data ownership, RD21 and physical CV/PDF renderers. No dependency, API or database changes. Existing semantic status colours must retain readable contrast on all new surfaces; dividers are decorative and do not replace stronger essential field boundaries.
|
||||
|
||||
Ruling: use targeted shared-theme/dialog/state checks and relevant browser workflows rather than thousands of unrelated tests, following the owner's explicit evidence/testing instructions. Backend tests are unnecessary unless backend behaviour is changed. Prototype tests are not application qualification.
|
||||
|
||||
Ruling: approved global MUI roles will also be inherited by existing public React consumers; this is shared theme plumbing, not selection or implementation of a new homepage layout/claims/SEO. Keep the existing gradient API and physical document rendering untouched. Later launch-site decisions remain separate.
|
||||
|
||||
Rollback: revert this UI increment on its development branch; no persisted data/schema change. Re-run affected theme/layout checks. Never reset unrelated work or alter the autonomous orchestrator.
|
||||
|
||||
## Implemented behaviour
|
||||
|
||||
Shared MUI theme now uses approved violet canvas/text/accent/navigation roles in both schemes; existing state synchronisation/storage remains unchanged. App chrome uses the approved system font stack, more readable body rhythm and responsive page-title hierarchy. Shared cards use restrained borders without floating section shadows. Buttons use sentence case and 44px base height; outlined fields retain their notched focus indicator and now have a 44px base height. Existing density hit-region rules remain in force. Actual navigation structure and feature layouts are not represented as implemented yet.
|
||||
|
||||
Contrast verification exposed the old dark error role at 4.275:1 on the new elevated surface. Corrected dark error main/darker fills to #FF8A80/#FF7067 with explicit dark contrast text; thresholds were not lowered. Final semantic contrast tests pass, and code review checked standard alert text against composited surfaces. CV/template/letter previews use isolated document HTML; physical renderer source, fonts, metrics, fixtures and historical document acceptance were not changed.
|
||||
|
||||
Independent code review: no important/critical findings. Accepted minor recommendation to assert every collected scoped axe violation array, rather than only colour contrast. Reviewer's 16 theme tests overlap the final 30 and must not be added to them. Initial two-width browser artifact was superseded by the final four-width run, not added as extra coverage.
|
||||
|
||||
## Continuation and review gate
|
||||
|
||||
Actual selected validation: 30 theme/state/dialog tests in five suites plus five disjoint navigation/CV-thumbnail tests in two suites; baseline28 and review16 are overlapping and excluded from that35. Full typecheck/lint/build passed. Final actual React browser lane:32 screen conditions,16 keyboard dialog journeys,48 scoped axe sweeps with zero returned violations,32 screenshots, zero page exceptions or attempted backend writes. All32 existing Google font requests aborted. No physical document or native/human acceptance reopened.
|
||||
|
||||
Historical pre-approval gate note (now satisfied by the explicit attachment above): the approved design handoff `docs/product-modernisation/08-a3-handoff/IMPLEMENTATION_PROPOSAL.md` at design checkpoint237c79b8, A3-IM01 row says "Owner milestone review before next increment." User's ordinary-implementation authorisation persists; do not ask about individual reversible changes after the relevant milestone entry is authorised.
|
||||
|
||||
Next UI task after that review: retain all34 routes and57 groups while implementing the approved labelled grouped/collapsible desktop sidebar and hybrid mobile navigation through existing AppShell/router owners. Do not merge this branch into main or activate deployment. The original codex/direct-roadmap-integration ref remains at d3d33837; its existing isolated worktree is currently checked out on codex/a3-ui-01. Generated graph is untracked (18,714 nodes/46,204 edges). Design approval record b7051a3e is local-only on the prototype branch; do not publish that restricted branch.
|
||||
@@ -0,0 +1,27 @@
|
||||
# A3-IM02 — navigation
|
||||
|
||||
Status: IMPLEMENTED and TESTED; Gate F navigation review OPEN before the next dependent increment. Branch codex/a3-ui-02 from approved foundation receipt 0d6de714. Owner attachment a178edeb-c3ef-4c0e-b4c2-bcd1ca84b90b explicitly accepts foundation Gate F and authorises navigation; later protected milestone reviews remain separate. Verbatim approval: GATE_F_FOUNDATION_APPROVAL.md. Publication receipt is recorded in the continuing roadmap handoff.
|
||||
|
||||
Review [navigation evidence and screenshots](NAVIGATION_VALIDATION.md): final 49 tests / 9 suites; typecheck/lint/build; 56 scoped browser accessibility sweeps with zero violations; 56 captures; 16 configurations with primary/secondary navigation, focus/persistence, controlled company save and phone feedback clearance. No live backend qualification. Native/human/device/zoom and final integrated security/release gates remain open.
|
||||
|
||||
Tasks: inspect existing owners/callers and baseline tests; add failing mobile/route-preservation tests; implement five-destination hybrid navigation through AppShell, promote Discovery in existing App nav groups, retain every secondary tool/permission/route; reserve mobile clearance for feedback and actions; verify targeted tests, typecheck/lint/build, actual controlled-API browser journeys in both languages/themes/viewport classes; commit/push/read back; prepare next scope and required Gate F review.
|
||||
|
||||
No API/schema/dependency or physical document changes. Existing theme/state/router/dialog/toast owners remain. Keep desktop collapse persistence, route-heading focus, skip link, command palette, notification semantics, account menus, legacy redirects and admin guards. Use existing 768px small breakpoint for hybrid mobile navigation, matching compact header controls and the approved tablet sidebar arrangement.
|
||||
|
||||
Baseline navigation/notification/readiness results remain separate from final totals. UI-01's35/48 evidence qualifies its own foundation scope only. After this increment, A3-IM03 dashboard/onboarding and A3-IM04 application layouts await the source-defined next milestone review; other independent roadmap work may progress while that decision is pending.
|
||||
|
||||
## Implemented scope
|
||||
|
||||
The existing AppShell now provides Dashboard, Applications, Discover, Career and More on phones. More and the existing header trigger open the same accessible MUI drawer, retaining all secondary destinations. Career includes builder deep links; Applications includes job/detail/legacy aliases. Secondary tools select More. Visible primaries are derived from the existing permitted navigation tree; hidden ancestors are pruned. No new route or permission system.
|
||||
|
||||
Desktop retains labelled/grouped navigation, whole-sidebar collapse persistence and secondary menus. Discovery is now a primary Job Search item. Reminders, correspondence, analytics and existing Operations are workspace destinations; companies/offers/trash, CVs/documents, accounts and admin tools remain accessible. No route declarations removed or rewritten.
|
||||
|
||||
The bottom bar is measured, so wrapped labels/safe areas reserve actual space in main padding, native scroll clearance and existing Snackbar positioning. Notifications and feedback remain above the bar. Desktop/public contexts retain zero bar clearance. Native notched-device review remains pending; existing safe-area padding adds a conservative extra gap after the measured bar.
|
||||
|
||||
Regression found/fixed: choosing the current destination returned before closing the mobile drawer. The shared handler now closes it and focuses the heading after the transition, while Escape still returns to the opener. Red/green unit regression and browser checks cover it. No unsaved-document guard, persistence, API or physical renderer is replaced.
|
||||
|
||||
Independent read-only review found no important/critical findings; reviewer 11 tests overlap the final selected suite and are not additional evidence. All 188 historical dynamic-call reviews remain accounted for; four new static EN/NB navigation keys were added with catalogue parity checks. No new European language was advertised or enabled.
|
||||
|
||||
## Next proposed scope / protected review
|
||||
|
||||
Gate F navigation review required before dependent A3-IM03. Proposed next scope: approved A1 dashboard hierarchy and optional resumable onboarding using existing DashboardView/grid/layout/checklist owners; preserve schema-2/CAS, hidden positions/gaps, collision handling, drag/resize/keyboard alternatives, existing-data completion, skip/resume and notification behaviour. No schema migration, new provider/model or loss of widgets. Then prepare that increment's targeted state/browser/preservation evidence and review. Existing A3 approvals persist; request only this mandatory milestone entry, not a new overall design choice.
|
||||
@@ -0,0 +1,20 @@
|
||||
# A3-IM03 — A1 dashboard and optional onboarding
|
||||
|
||||
Status: IMPLEMENTED / VALIDATED; publication and owner Gate F review tracked in DASHBOARD_VALIDATION.md. Owner explicitly answered the navigation Gate F question: **"Approve navigation and A3-IM03"** on 3 November 2026. Approved navigation checkpoint992608c7 remains immutable. Branch codex/a3-ui-03 starts there, with the independently validated small localisation patch d4b938fa applied as5e8a07d1. No wholesale merge of the older i18n/theme tree. Combined checks qualify this integration only for the stated scope.
|
||||
|
||||
## Scope / task ledger
|
||||
|
||||
- [x] Read existing DashboardView, OnboardingChecklist, DashboardGrid/layout/hook/editor, source-backed completion tests, backend DashboardLayout reader/validation and current A3 contracts.
|
||||
- [x] Baseline dashboard/grid/layout/onboarding and combined navigation/metadata checks.
|
||||
- [x] Task-first A1 defaults for new/reset layouts; existing geometry, schema2/CAS and controls preserved. Additive agenda ID is the only server contract change (ruling below); no migration.
|
||||
- [x] Quiet hierarchy, personal greeting when a recorded name exists, movable week glance beside pipeline; reporting retained. Week coverage limited to recorded attention-feed dates.
|
||||
- [x] Optional owner-scoped setup, skip/resume and on-demand walkthrough; skips never count as completed data. Guidance controls do not mutate source data or grant consent.
|
||||
- [x] Targeted regression, types/lint/build and fixture-backed browser journeys across languages/themes/viewports; physical renderer unchanged.
|
||||
- [x] Independent read-only review: no actionable findings; reviewer45 tests overlap final95.
|
||||
- [ ] Commit/publish/read-back and next Gate F owner review. Do not begin A3-IM04 before approval; continue unrelated eligible work.
|
||||
|
||||
Preservation:57 groups/34 routes remain; all nine existing widget IDs remain supported. Career Profile stays canonical, account identity remains separate, old dismissal keys remain compatible, owner disposal prevents cross-account state. Existing layout persistence and rendering logic stay in their owners. Legacy version1 preferences keep their recorded order; schema2 coordinates are not repacked on load. API/provider/model/backend/production qualification remains distinct from controlled browser evidence.
|
||||
|
||||
Ruling: the week panel must be separately movable/hideable to reproduce A1's week-left/progress-right row. Add one `agenda` widget ID to the existing catalogue and server JSON whitelist; no schema migration or new endpoint. Keep all nine old widgets and their saved coordinates. Existing saved layouts append the new widget hidden; only new/reset defaults show it. Backend parser/CAS/bounds/collision protections remain unchanged and require targeted regression. The earlier plan's "no backend contract change" assumption is superseded by this small additive ID; no new calendar/provider service is introduced.
|
||||
|
||||
Next dependency after review: A3-IM04 / approved B1 application tracking/detail work. No automatic advance through a future protected owner gate.
|
||||
@@ -0,0 +1,17 @@
|
||||
# A3-IM04 — B1 applications and persistent right context
|
||||
|
||||
Owner reply3 November 2026: **"Approve dashboard/onboarding and A3-IM04"**. Dashboard implementation c7d26d35 and publication receipt dc93b589 are accepted for progression. Isolated codex/a3-ui-04 starts at dc93b589; no older design-tree merge. A3 frozen design237c79b8 and original five concepts remain unchanged.
|
||||
|
||||
## Bounded implementation plan
|
||||
|
||||
- [x] Baseline62 tests/7 suites passed before edits.
|
||||
- [x] B1 quiet filter/results surfaces and compact board cards through existing MUI owners. Existing density/sort/filter/page/columns/saved views/bulk/trash owners retained.
|
||||
- [x] Persistent right context above1000px; context follows the task in DOM and narrow/compact layouts. Named jump/return controls. Existing dates moved, next action/preparation/activity/details and tabs retained.
|
||||
- [x] Full-page/preview, list return/focus, unsaved guards, source language, precise status menu and revision writers retained. Corrected reproduced unsupported fully-prepared claim when next action is absent.
|
||||
- [x] Test new focus/navigation contract first; final126 selected frontend,88 backend, types/lint/build and16 controlled browser journeys/48 scans/captures passed. Limits in APPLICATIONS_VALIDATION.md.
|
||||
- [x] Independent read-only review: no actionable findings; reviewer52 tests overlap selected totals.
|
||||
- [ ] Final source-bound evidence, coherent commits, publish/remote verify and Gate F before A3-IM05.
|
||||
|
||||
Affected callers: JobTable's jobs/trash/table/board modes; Kanban card/status navigation; ApplicationWorkspace full-page and overlay callers, primary/secondary tabs; shared EN/NB keys/tests/browser fixtures. APIs, persistence, schema, permissions and physical document rendering are unchanged. No provider/model calls, database migrations or dependency changes.
|
||||
|
||||
Rollback: revert this presentation increment on its branch; no data rollback. Do not modify revision writers just to ease fixtures. Remaining breadth must stay OPEN until qualified; baseline tests alone are not complete IM04 or Phase10 acceptance.
|
||||
@@ -0,0 +1,13 @@
|
||||
# A3-IM05 — discovery presentation and existing saved searches
|
||||
|
||||
3 November2026 owner reply: **"Approve applications and A3-IM05"**. Application implementation98e9502a/publication receipt172074e9 accepted for progression. Isolated codex/a3-ui-05 starts at172074e9. No new international provider or geography authorization is inferred.
|
||||
|
||||
## Bounded plan
|
||||
|
||||
- [x] Baseline21 existing discovery tests passed.
|
||||
- [x] Filter/saved-search rail left, result list right above1000px; narrow logical stack and named jump/return focus. Existing source explanation prominent.
|
||||
- [x] All existing handlers/semantics retained; no unsupported provider/country/radius controls or API changes.
|
||||
- [x]32 selected frontend/3 suites,14 mocked-provider/local backend tests, type/lint/build,16 controlled browser journeys/48 scans/captures passed. Independent review found no actionable issue; reviewer23 overlaps32.
|
||||
- [ ] Publish/readback, Gate F before A3-IM06 Career/CV/letter work.
|
||||
|
||||
Callers: JobDiscoveryPage, its EN/NB messages, tests and browser fixtures only. Existing API/data/provider owners retained. Canonical occupation/geography expansion remains Global Jobs work with its own prerequisites and permissions; GJ-01+ is not accepted by a presentation change. Rollback reverts presentation/tests; no migration or data rollback. Preserve source ads and generated-content language distinction.
|
||||
@@ -0,0 +1,21 @@
|
||||
# A3-IM06 — Career Profile and document workflows
|
||||
|
||||
3 November2026. Owner explicitly answered **"Approve discovery and A3-IM06"**. Isolated codex/a3-ui-06 starts at published/independently verified discovery receipt027907a80666f7ddd51c848411ceaacec6768f20. No older design/source tree merged. Root security policy and independent document-date fix remain separate.
|
||||
|
||||
## Scope and work packages
|
||||
|
||||
- [x] Inspect current CareerProfilePage/overview/section owners, CV library/editor/preview and letter presentation. Existing editor already places edit left/preview right and owns queues, conflicts, undo and export; retain these behaviors.
|
||||
- [x] Establish selected Career/import/library/studio/letter baseline; no full-suite/PDF rerun merely for restart.
|
||||
- [x] Career overview: useful section indicators and immediate section edit/focus actions, using existing canonical profile/draft state. Preserve unknown/loading/error states and source-backed overall completeness; do not count skipped setup as complete.
|
||||
- [x] Audit every canonical section against actual editable controls. Initial source shows projects/certifications in StructuredCvProfile but no corresponding CareerProfileSections controls; investigate and close supported UI gaps through the existing revision writer, preserving stable IDs/metadata, or record a precise limitation.
|
||||
- [x] Align studio responsive presentation with approved1000px split contract and existing mobile edit/preview mode; keep focus, controls, template/gallery/history/import review, library actions and letter workflow connected. Refine quiet chrome where needed, not physical document CSS.
|
||||
- [x] Qualify existing import/source/proposed/selected/conflict/retention and letter history/revision behavior. No import-engine overhaul, new schema/API/dependency, provider/model activation or changed renderer metrics.
|
||||
- [x] Fix affected bounded EN/NB display issues without rewriting working terminology. Fixed decimal attachment-size display remains a known candidate, not yet fixed.
|
||||
- [x] Targeted frontend/backend/types/lint/build plus actual React controlled Career/CV/letter journeys, responsive/theme/locale/accessibility checks and independent review. Reuse unchanged accepted physical PDF metrics/visuals; distinguish controlled previews from physical exports.
|
||||
- [ ] Commit/publish/remote verify each coherent package; only request next Gate F after this increment is complete and reviewable. A3-IM07 Calendar/reminders/correspondence/documents still needs that gate.
|
||||
|
||||
Affected callers: CareerProfilePage and CareerWorkspaceOverview/section editors; existing CV library/editor/template/preview and ApplicationCoverLetterSection/Document chrome; their tests and EN/NB catalogue. Canonical state, API writers, revisions and renderers stay in existing owners. Rollback presentation/controls commits on this branch; no database/data rollback. Changes must not silently replace source facts or reset null-as-inherit overrides.
|
||||
|
||||
Source comparison identified current studio compact boundary899.95px while the approved A3 handoff uses1000px. Verify field/preview geometry and focus at the boundary before changing it. The overall milestone remains IN PROGRESS; baseline/reused evidence alone cannot accept it.
|
||||
|
||||
Local qualification:212 unique frontend cases/10 suites,103 backend cases,types/full lint/build,16 controlled browser journeys/96 axe scans plus six boundary journeys/36 scans (four configurations overlap;108 unique captures), independent review57 overlapping cases. Exact evidence and limitations:CAREER_VALIDATION.md. Physical renderer and backend sources unchanged. Gate F before IM07 remains pending.
|
||||
@@ -0,0 +1,20 @@
|
||||
# A3-IM07 Calendar, correspondence and documents
|
||||
|
||||
3 November 2026. Owner explicitly answered **"Approve Career/CV/letter and A3-IM07"**. Isolated `codex/a3-ui-07` starts at accepted/published UI06 receipt19dad316. Approval record7e410e79 is published/remotely verified. UI06 implementation6f801251 and all earlier approvals remain accepted; no repeat gate.
|
||||
|
||||
- [x] Inspect current reminder, calendar/provider, document and inbox owners and approved A3 journeys/coverage.
|
||||
- [x] Establish selected baseline; preserve existing reminder mutation/retry/focus and correspondence/document trust boundaries.
|
||||
- [x] Calendar: agenda first with persisted view-only preference and accessible optional month view; include recorded deadlines even for saved applications missing from attention feed. Keep workflow reminders available, linked context, raw date provenance, unknown-date disclosure, loading/error/retry. Do not derive interview times from stage or assume timezone/precision lost in legacy DateTime storage.
|
||||
- [x] Qualify owner-scoped bounded calendar read and server/local date boundaries, including soft-deleted and sibling-owner exclusion. No schema migration/provider activation/calendar writes needed for calendar display.
|
||||
- [x] Correspondence: quiet inbox/context presentation using current read/draft/send owners; preserve uncertain outcomes/conflicts/explicit confirmed-send and provider permissions. No live send.
|
||||
- [x] Documents: connected library/filter/source/download presentation, preserve URL allowlists, frozen data, private/public state and failures. Reconcile the independently validated ca519cac date patch narrowly before combining it.
|
||||
- [x] Targeted frontend/backend/types/lint/build and controlled rendered EN/NB/themes/widths/focus/accessibility journeys; independent review.
|
||||
- [ ] Publish coherent validated checkpoints, verify remote refs, update evidence and durable handoff. Next mandatory Gate F before A3-IM08.
|
||||
|
||||
Scope reaches existing RemindersView, ApplicationCalendarController, correspondence/document presentation and their tests/fixtures/catalogues/navigation. Existing reminder attention feed excludes deadline-only Saved applications; using it as a complete calendar would silently omit deadlines. Add a narrow bounded read to the existing calendar owner instead of changing the attention feed's meaning or fetching an unbounded full board. Existing calendar ICS/provider exports remain unchanged and require explicit user actions/consent.
|
||||
|
||||
Current JobApplication fields store Deadline/FollowUpAt as nullable DateTime, with no independent interview appointment or original source precision/timezone metadata. Display recorded calendar dates with raw values retained, label the date-level boundary, and do not manufacture appointments. Any later interview scheduling/data-model qualification must be recorded separately. Unknown-date attention remains the existing reminder workflow, not a guessed calendar event.
|
||||
|
||||
Rollback: revert this feature increment; no database/data rollback for presentation and bounded read. Preserve canonical Career Profile, CV/letter history/settings, RD21 and all previous routes. Full roadmap/security/release acceptance remains open.
|
||||
|
||||
Local final qualification:WORKSPACE_VALIDATION.md;108 unique frontend cases/8 suites,52 backend cases,types/lint/build,48 final calendar plus96 document/mail browser scans/captures. Interview scheduling/original date precision-timezone data remains an explicit gap, not fabricated appointments. Initial calendar194e01ed published/remotely verified; complete increment publication/next Gate F pending.
|
||||
@@ -0,0 +1,33 @@
|
||||
# A3-IM01 — implementation validation
|
||||
|
||||
3 November 2026. This qualifies a bounded shared-theme increment in the actual React application. It does not qualify the entire A3 redesign, Phase 10, Product Review, international discovery, European localisation, security or release readiness.
|
||||
|
||||
| Check | Result | Scope |
|
||||
|---|---|---|
|
||||
| Existing baseline | PASSED: 28 tests / 4 suites | Theme contrast/state, loaded company states and dialog flow before edits. BASELINE.json |
|
||||
| A3 visual contract before implementation | FAILED as expected: 2 tests | Old light/dark canvas values differed from approved A3; no production code had been changed |
|
||||
| First new-palette regression | FAILED, corrected | Dark error text 4.275:1 on new elevated surface; changed colour, retained 4.5 threshold |
|
||||
| Final targeted theme/state/dialog tests | PASSED: 30 / 5 suites | Includes the baseline 28 and 2 new A3 visual-contract cases; not 58 independent tests. THEME_TESTS.json |
|
||||
| Additional preservation checks | PASSED: 5 / 2 suites | Existing CV thumbnail/template rendering and shell navigation; disjoint from the 30 theme/state/dialog cases. PRESERVATION_TESTS.json |
|
||||
| Typecheck | PASSED | npm run typecheck, no incremental cache |
|
||||
| Lint | PASSED | npm run lint, zero-warning policy |
|
||||
| Static production build | PASSED | npm run build with NEXT_PUBLIC_API_BASE_URL=/api for controlled loopback browser checks; no deployment |
|
||||
| Actual React screen matrix | PASSED: 32 conditions | Login and loaded Companies × 320/390/768/1440px × EN/NB × light/dark |
|
||||
| Company dialog keyboard journeys | PASSED: 16 | Keyboard edit/open, visible focus, Escape and focus return; actual MUI controls |
|
||||
| Scoped axe sweeps | PASSED: 48, zero returned violations | 32 main surfaces + 16 dialogs; rule tags WCAG2 A/AA, 2.1AA, 2.2AA. Excludes shell/navigation from the main-surface sweep; not full WCAG conformance |
|
||||
| Actual form validation | PASSED: 16 screen variants | Empty login submit marks required fields invalid and focuses first field; no authentication POST |
|
||||
| Root reflow / colours / locale | PASSED in screen matrix | Actual built app body palette and html lang/scheme, no root overflow at the tested widths |
|
||||
| Source review | PASSED for bounded patch | Independent reviewer found no important/critical issue; physical document frames/renderers retain font ownership |
|
||||
| Graph | AST-only refresh completed | Generated graph untracked; no model/semantic graph call |
|
||||
|
||||
`evidence/BROWSER.json` records every screen/dialog scope, page exceptions, attempted writes and blocked external requests; `scripts/verify-a3-theme.mjs` reproduces it from the static export served locally on port 4338 by the existing serve-export script. All API responses are controlled synthetic fixtures, all write methods are rejected, and every remote request is aborted. No backend, production data, model, identity provider or mailbox was contacted. This is actual application rendering with controlled service responses, not live-service acceptance.
|
||||
|
||||
The first browser run reached all its two-width screen/dialog assertions but failed its final no-external-attempt assertion because the existing page head requests Google Fonts. The harness was corrected to permit only that **blocked** known font origin, retaining all aborts and rejecting any unexpected origin. The final four-width run supersedes that result. No remote font was downloaded. Removal/localisation of existing font imports requires separate caller/renderer review; it was not performed here.
|
||||
|
||||
Lint initially rejected CommonJS require imports in the new browser harness. Converted the harness to the project's existing ES-module script convention rather than suppressing lint rules or changing lint configuration. The final .mjs run and full lint supersede the failed intermediate harness check. No application source changed during this conversion.
|
||||
|
||||
Evidence has 32 populated screen screenshots. The built application's sidebar structure is still the existing one: only its shared semantic colours changed. Do not present these captures as completed A3 navigation or A1 dashboard implementation. The prototype's 480 conditions/50 axe sweeps are separate historical design evidence and are not included in these application counts.
|
||||
|
||||
NOT RUN: real backend flows, full application regression, native screen reader, physical touch/software keyboard, actual browser zoom, native-language review, final integrated security, live provider/model, physical PDF/container requalification, backup/restore or hosted CI. Source-defined acceptance for those scopes remains open. Pending zoom/human checks prevent a claim of complete accessibility acceptance.
|
||||
|
||||
Reproduce sequentially from job-tracker-ui with installed dependencies: targeted Jest paths recorded in native JSON reports, npm run typecheck, npm run lint, NEXT_PUBLIC_API_BASE_URL=/api npm run build, serve-export on local port 4338, then `rtk proxy node scripts/verify-a3-theme.mjs`. Rebuild when application source changes; the evidence manifest binds source and exported assets to this checkpoint.
|
||||
@@ -0,0 +1,33 @@
|
||||
# A3-IM07 Calendar, correspondence and document qualification
|
||||
|
||||
3 November 2026. Owner explicitly approved **"Approve Career/CV/letter and A3-IM07"**. This increment is implemented and locally qualified within the boundaries below. Gate F remains required before A3-IM08. Feature branch `codex/a3-ui-07` preserves prior published UI01–06 refs and original integration baseline; no main merge or production deployment.
|
||||
|
||||
Calendar subpackage `194e01ed7ffbdad6f2e5ac61c88f47628987b337` was published and independently remotely verified. Its committed17-source/61-evidence manifest matched exactly. Current follow-up includes a localised MUI month selector, document and inbox keyboard landmarks, and a narrow integration of independently validated date patch ca519cac. Final publication receipt is recorded separately. The earlier calendar manifest describes immutable checkpoint194e01ed; use the final workspace manifest for current combined sources/evidence.
|
||||
|
||||
Calendar offers agenda first and an optional owner-scoped persisted month view, prioritises upcoming dates, and includes recorded application closing dates even for Saved applications omitted by the attention feed. Existing reminder groups/actions remain below it on `/reminders`. The narrow authenticated calendar read is explicitly owner/nondeleted scoped, inclusive and limited to62 days; it retains original recordedAt and stored calendar day. It does not infer an interview appointment, source precision or timezone missing from legacy data. Existing ICS/provider actions and consent remain unchanged.
|
||||
|
||||
The first rendered Bokmål calendar capture exposed a native month control displaying an English month name in an English-configured browser. The replacement reuses MUI Select and Intl for the selected UI language, with adjacent-month choices and previous/next navigation. A red locale regression preceded the fix; all eight agenda tests and a fresh48-scan browser run pass with exact EN/NB month-label assertions. A verifier lookup initially expected a label-only accessible name; MUI includes its selected value. Corrected that harness lookup and retained the failed attempt; no application behavior was weakened.
|
||||
|
||||
Documents retain existing metadata table/mobile cards, filters, pagination, linked sources, public/private/frozen distinctions, exact source/download allowlists and permission/error recovery. Named filters and Jump/Return move focus without requests. The ca519cac date patch was applied only to DocumentsPage and its ten EN/NB regression cases; both resulting blobs matched the isolated accepted patch before additional focus changes (02f4de2e and64090d7e). It rejects impossible/overflow/trailing-junk unzoned timestamps while preserving fractional-second metadata and wall-clock display. No whole localisation branch was merged.
|
||||
|
||||
Correspondence retains the existing inbox, inline plain-text message read, linked job context, draft editor, provider status, review queue and confirmation owners. Named filters/results include current loading/unlink/empty/detail/pagination notices; jump and return only move focus. Draft conflict/revision, definitive failure/new-attempt, uncertain-result lock, explicit send confirmation, saved draft retention and tenant protections remain unchanged. No external mail was sent.
|
||||
|
||||
| Evidence | Exact result and boundary |
|
||||
|---|---|
|
||||
| Final selected frontend |108 unique cases / eight suites passed, zero failed/pending. Latest complete execution per suite:agenda8,reminders11,calendar actions3,catalogue3,documents33,inbox37,attachments5,file-picker8. Baselines and independent reruns overlap and are not added |
|
||||
| Backend |52 unique cases:calendar10 plus document/inbox/provider/draft/send/attempt preservation42, all passed with zero failed/skipped. InMemory/temporary SQLite, mocked providers; MariaDB SQL composition test does not connect to MariaDB |
|
||||
| Types/lint/build |Passed. Final build's TypeScript validation and scoped verifier lint passed; earlier failed typecheck and failed navigation/month regressions remain failed historical attempts |
|
||||
| Calendar browser |16 configs320/390/768/1440 × EN/NB × light/dark,48 axe scans/captures on final localised month control; zero violations/overflow/page errors/writes |
|
||||
| Documents/mail browser |Same16 configs,96 axe scans/captures:documents,filtered document,inbox,message,send confirmation,uncertain result. Zero violations/overflow/page errors/unexpected writes. Relevant document/inbox sources and fixtures unchanged by subsequent calendar-only selector fix; that evidence is reused, not described as another fresh execution |
|
||||
| Browser total |32 controlled journey executions across two work packages,144 distinct route/state/config captures; no overlapping rerun totals added |
|
||||
| Controlled interactions |Document filter and request-free keyboard jump/return; explicit fixture-file download with verified bytes/name/source URL/raw date metadata. Inbox jump/return, inert script-looking plain text, manual reply, saved draft, confirmation before send, uncertain-result retention and disabled repeat send |
|
||||
| Mutation qualification |32 intercepted requests in the full document/mail matrix:16 draft saves and16 confirmed-send fixtures returning uncertain. Calendar0 writes. All API requests intercepted and all external origins blocked; no real storage/mailbox/OAuth/delivery |
|
||||
| Independent review |No actionable document/inbox source/verifier findings;70 matching frontend cases independently passed, overlapping108. Earlier calendar review covered seven cases before the extra ordering case, overlapping108; browser/backend/build not independently repeated |
|
||||
|
||||
Native suite aggregation is under [evidence/workspace](evidence/workspace); original reports remain under calendar and documents-inbox. Browser scripts are verify-a3-calendar.mjs and verify-a3-documents-inbox.mjs against the actual built React static export on localhost4338. Synthetic provider capability flags are fixtures, not access grants. Native download verifies a controlled text fixture, not licensed files or real storage integrity. Existing attachment preview/file-picker behavior is tested locally; physical PDF rendering is not reopened. Representative320px mobile and1440px Bokmål/dark captures were visually inspected. Fixed navigation can appear within full-page scroll captures; native-device behavior is not thereby accepted.
|
||||
|
||||
Known open capabilities and qualifications: actual interview scheduling and original date precision/timezone migration; current calendar is explicitly date-level. Live Google/Outlook consent/events, real mailbox/delivery/reminder service, real storage/backend-browser integration, MariaDB, hosted CI, native device/screen reader/touch/zoom and native-language review remain NOT RUN. Broader attachment decimal formatting remains an independent localisation candidate. European localisation, full Product Review/Global Jobs, Phase10, recovery, final integrated security and release readiness remain open.
|
||||
|
||||
No schema/dependency/migration or reminder/mail/file writer change in this presentation increment; the calendar read is additive. All existing routes, canonical Career Profile, document settings/history/frozen packages, RD21 and provider rights are retained. Rollback reverts the increment; no database/data rollback is required. Root security policy de3d5031 remains isolated and is not silently merged.
|
||||
|
||||
Next protected gate: owner review of the published IM07 result before A3-IM08 contextual AI presentation and Settings automation. Preserve manual fallback, explicit consent/review/apply, stale inputs, usage/limits, accurate rule controls, errors/retry/cancel. No live model activation follows from that UI gate. Independently eligible localisation/security/release preparation may continue while awaiting the decision.
|
||||
@@ -0,0 +1,505 @@
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"writes": [],
|
||||
"blockedExternalRequests": [
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com"
|
||||
],
|
||||
"scope": "actual static-export React application with controlled API; existing remote font requests aborted; no backend or provider qualification"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"numFailedTestSuites":0,"numFailedTests":0,"numPassedTestSuites":2,"numPassedTests":5,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":2,"numTotalTests":5,"openHandles":[],"snapshot":{"added":0,"didUpdate":false,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0},"startTime":1793671502665,"success":true,"testResults":[{"assertionResults":[{"ancestorTitles":[],"duration":66,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"template thumbnails retain distinct server-rendered samples in noninteractive sandboxed frames","invocations":1,"location":null,"numPassingAsserts":6,"retryReasons":[],"startAt":1793671505757,"status":"passed","title":"template thumbnails retain distinct server-rendered samples in noninteractive sandboxed frames"}],"endTime":1793671505824,"message":"","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\cv-template-thumbnail.test.tsx","startTime":1793671503519,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":[],"duration":258,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"language controls identify Bokmål with its native name and language code","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"startAt":1793671506673,"status":"passed","title":"language controls identify Bokmål with its native name and language code"},{"ancestorTitles":[],"duration":108,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[P5-01 PRES-E07 E08] grouped navigation exposes the current child without marking the parent as the page","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"startAt":1793671506931,"status":"passed","title":"[P5-01 PRES-E07 E08] grouped navigation exposes the current child without marking the parent as the page"},{"ancestorTitles":[],"duration":222,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[P5-01 PRES-E07 E08] collapsed secondary destinations remain keyboard-operable","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793671507039,"status":"passed","title":"[P5-01 PRES-E07 E08] collapsed secondary destinations remain keyboard-operable"},{"ancestorTitles":[],"duration":142,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[P5-01 PRES-E08] successful shell navigation focuses the new route heading and exposes a skip link","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793671507261,"status":"passed","title":"[P5-01 PRES-E08] successful shell navigation focuses the new route heading and exposes a skip link"}],"endTime":1793671507403,"message":"","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\app-shell-navigation.test.tsx","startTime":1793671505840,"status":"passed","summary":""}],"wasInterrupted":false}
|
||||
@@ -0,0 +1,150 @@
|
||||
{
|
||||
"recordedAtUtc": "2026-11-03T02:07:53.565494+00:00",
|
||||
"base": "d3d338376444b8abdcaf7200f682faa3daf1ad10",
|
||||
"design": "237c79b8cb3e280d7e4d1ef95cdbb2c77bb81c69",
|
||||
"policy": "Text and JSON LF-normalised SHA-256; PNG/exported asset bytes raw",
|
||||
"sources": {
|
||||
"job-tracker-ui/src/theme.ts": "6b3c28a2a920e53e01ed9ee12ee2f5cdaa0fe7c3752415a97ca544c82fce8cfa",
|
||||
"job-tracker-ui/src/ThemeProvider.tsx": "1d25fd091ca632f7671e413db24e917d4ca4a375fddade0ca1ff397a8ae9f950",
|
||||
"job-tracker-ui/src/themePrefs.ts": "d775741cd6b2fc7ac59dca13e5e6cf5ffd3856cf4a2e011948b2dfb0d9c319ca",
|
||||
"job-tracker-ui/src/themeBootstrap.ts": "0035725a9d43077ede757c1f20382465a6f04511b63fb22ac65adcfb8ce5f2d0",
|
||||
"job-tracker-ui/src/a3-theme-contract.test.ts": "039382d49d84f84df81d583079f217a21ca0be4b9c90c82f2da744998fbfe73d",
|
||||
"job-tracker-ui/scripts/verify-a3-theme.mjs": "3d550137be4500b0a1711b88d34d01592ab33e2b9dad261a19b033dc4db609c0",
|
||||
"job-tracker-ui/package.json": "3745394e406cefa40d30a87e840bccb359be147bac6ffba736e2ae90898a8626",
|
||||
"job-tracker-ui/package-lock.json": "bf31e90d7af03e8af059db2aaf893925b9e8881a30a1688034ed88ef45d4fcab",
|
||||
"job-tracker-ui/src/App.tsx": "28d906c0f04d82da41125d4722a04dce2b2c1573e333b68a0ef83018d6f94c9f",
|
||||
"docs/pre-phase10-ux/preservation.json": "a4c2a5a0244ea89381008218de32daee1f615a250eb3808b60e0ee103c674d4d",
|
||||
"docs/ui-modernisation/A3_APPROVAL.md": "54243c73fcb15e9c03b81e2c6ee3cb0ed3485067891243a33da9eb83fb383fca"
|
||||
},
|
||||
"evidence": {
|
||||
"BASELINE.json": "2cf5b006ab9a3c499be32c0e3c3e4aff69708819b6516c6044b8db835dbfab74",
|
||||
"BROWSER.json": "f16dd11c041d3f9a57474acc8f3efd71639f048448894f9c1d97b114996d4261",
|
||||
"companies-en-dark-1440.png": "26ef08a0df3b17e33499cc2a0a6a78916702e4bed6d9254bfb60f23deaf0d6c3",
|
||||
"companies-en-dark-320.png": "b18d4e604f40a17bfdf2624d5823c17d467e03583beccc0e497893ee51c735ce",
|
||||
"companies-en-dark-390.png": "8f17a05b8b22cced76ef47326863b8317ed71ea2807db301cf762ad2f869ac28",
|
||||
"companies-en-dark-768.png": "ba34903cae2b5de339b667e3e6817b821c46e761d8467d876e1ca2bd0ce0202e",
|
||||
"companies-en-light-1440.png": "7ae163a26e395005cc09b2cca8f492ec64b52aae19be6251ef169f6f62a9645c",
|
||||
"companies-en-light-320.png": "bc4d8a94bf354c0968ea47d97bd59b56e42fa9e9730a4e59d4671060062f8b0d",
|
||||
"companies-en-light-390.png": "b01d0ffb8ca2703bc75dcf5ab1c34ac442737ba5d5f9792a1627eb959f665553",
|
||||
"companies-en-light-768.png": "826d7b6707f238703a0a4a74d81c1e5542bcc7f4d1da876e12557fce003b31b9",
|
||||
"companies-nb-dark-1440.png": "579072333acc7fefd677277083f9c9d2792523ef12d7ace02afe973f47c36c7f",
|
||||
"companies-nb-dark-320.png": "62795143d79221b2711077d5c0cdd5766d920418036f18340221a018c845e2a4",
|
||||
"companies-nb-dark-390.png": "e10db421d105c130e7265667b03f8018a934a826ecfcf2500880f89a3379590e",
|
||||
"companies-nb-dark-768.png": "fe2003b73991b7b80c206a0b2baa8fce90c9a994a24d0ab9813aa018e94b5c12",
|
||||
"companies-nb-light-1440.png": "6b3c2f917fb33db424f81be3777969122504455f380db3e5729cad26475487a2",
|
||||
"companies-nb-light-320.png": "5b8b170cdd93f9ee73049a9e307f3c7e8663c640f6cdd3b5e657d519c194f796",
|
||||
"companies-nb-light-390.png": "d18c51480b8fb8f75247118f3bbaeec55f0702e29a988aaf07bc143caf0ae913",
|
||||
"companies-nb-light-768.png": "b430df3421e72a6040730d5dff90e8584cb7926452d537d6fa5ac50353b742a8",
|
||||
"login-en-dark-1440.png": "7f14b204ac297a11d0f66ae14630fc178db576003f5739c8837c0d89a8c671b5",
|
||||
"login-en-dark-320.png": "1349497aa9a8c69135fd65a1b033c235519fea6158574df0bfe480168366fbe6",
|
||||
"login-en-dark-390.png": "e1bc62e9622daed83e702bece9fbbde56a0eb8b44d662436c3c88884dee53571",
|
||||
"login-en-dark-768.png": "398df1bc62c65b52808dfc4060a15f3ddda4ecd53600e1f0f1f48116d46330e8",
|
||||
"login-en-light-1440.png": "adf362ed3cb066a868d466317a5a5f1f9e32e80292d780a43b435e67d8250229",
|
||||
"login-en-light-320.png": "4b0c2f278b6224969bf8d16e73a4bce317948b6fa9b5f2a46ddb4c1692848455",
|
||||
"login-en-light-390.png": "526ae4c4c998c766ad4cb55ccce65db6dd6448c6ca3a88d5fa497d17ffff006a",
|
||||
"login-en-light-768.png": "569319b19e4bb37955a805778a87ca4dfd2b13c4c8c33c4ea9d2e0418f9e25cd",
|
||||
"login-nb-dark-1440.png": "e3dfcad81696cb40e33acae6b2ae9553eb773d5c02e84f9b5974f978a2345389",
|
||||
"login-nb-dark-320.png": "810c6f9b9dd368de5836620004f777b6c7bfd38d20bd6f9a41bef43082ae40b6",
|
||||
"login-nb-dark-390.png": "5dd78b744b92c33f70f40848c905a26f38184324cf77f51caf3d947d59d22902",
|
||||
"login-nb-dark-768.png": "a95543cb6c60c308f756d4f16f480be75d20b03fd9ab855ad3abcd56434bda2c",
|
||||
"login-nb-light-1440.png": "4ca9d0de9a2aaf217c484073f0b3ffffba91d33bfaceef313bc748ec3ad19cc3",
|
||||
"login-nb-light-320.png": "d2d9729bcc9c3cf8d3b8044c9b6e63d463a84b2f7aabb362ca5b7bebd9538804",
|
||||
"login-nb-light-390.png": "7fd0429224e620c58552a9e1ada72e830eb10b3ef392b76f0074a4e6d343f42f",
|
||||
"login-nb-light-768.png": "8f7d2a44913d5cc3dc835b9bde07f04fd56a300cc9bf502a34825777eb02cb74",
|
||||
"PRESERVATION_TESTS.json": "e3e0007714e0ea38daf016516f8442ec785ca6f588f6ffafe915723a32c34fd6",
|
||||
"THEME_TESTS.json": "eaccb949dc12cfc0845292bde4dfe2cda1a8af7c107357c52dc68aa2c4c3f195"
|
||||
},
|
||||
"exportAssets": {
|
||||
"404.html": "44f4f5ea405e5f3c283757c06815b9d76b80ccded65975710f79eb08cc686fe9",
|
||||
"favicon.ico": "8d4923e2c487805ea9f852a685b2cf0fb10512ded8290d2a5c37d1cc8fd0702a",
|
||||
"favicon.svg": "63ecf8f37f8bb146ecfae3917187c6b692d4e801641e8a314486a4007912f3a3",
|
||||
"index.html": "62802e5c9baf3cbb913a5602d23193265f35e68b70b262b262d509b5ad8d9e41",
|
||||
"index.txt": "f0e4bed88cef037cb296f31ccdada5fa0698b673ea8816de1e1901f7a5cf7510",
|
||||
"logo192.png": "bc652031597fabd19b9f14e22a71f809490d218037521b3b64d013418c1390b4",
|
||||
"logo512.png": "5129e9bc1ba812b711fd9a646d3a38a906d365a26ee685df183b8752458944d4",
|
||||
"manifest.json": "2667ce63c2e0835b7007239816a5597639321d333da396a78638dfa9e8a7c935",
|
||||
"robots.txt": "e5ab0d231eeb01b4a982d1c79a6729cac9797ad15a69247e4f28ba6afc149b4c",
|
||||
"_not-found.html": "44f4f5ea405e5f3c283757c06815b9d76b80ccded65975710f79eb08cc686fe9",
|
||||
"_not-found.txt": "6ee9df2ea06c8d6b46b4a2e397cbb0a209381f31125f5aa60d790ad65f2c7e5f",
|
||||
"__next._full.txt": "f0e4bed88cef037cb296f31ccdada5fa0698b673ea8816de1e1901f7a5cf7510",
|
||||
"__next._tree.txt": "b9100c9cbea4f7b3ba2f511d63c7d4b9d82ddf8b305cbefc4709fde4e99f742b",
|
||||
"__next.__PAGE__.txt": "a9259f14c2060132db3929f867737f869b58e47eeb73f7306a101565860da7f6",
|
||||
"mockups/dashboard.svg": "318be3adb1324c26eb30f05572a29528a3e38331c6a604652eef75b54f8c29dc",
|
||||
"mockups/pipeline.svg": "db2ef41faabeb90e7ce85413e168581686c54535d970fc7d8deda3888a479de4",
|
||||
"mockups/workspace.svg": "9bbab22349147c7b01d6e18c93c622a6f8aed6dedaf23715189ab54d60e1ddbd",
|
||||
"_not-found/__next._full.txt": "6ee9df2ea06c8d6b46b4a2e397cbb0a209381f31125f5aa60d790ad65f2c7e5f",
|
||||
"_not-found/__next._tree.txt": "128650e2c58388ed26616d9820dcbd1a477dbc1f8674d57742c69b584ced1f94",
|
||||
"_next/static/chunks/0-_aq6ipzcshj.js": "39f90c215bf52aef6274ed3dcc0f8af32e21a37fe8845b3bca0d6ea60da6a8c2",
|
||||
"_next/static/chunks/07vdc-duql714.js": "5a4840d1ba6b65782459968940a2f4cf973c99f0f77890f4171c4f420f339353",
|
||||
"_next/static/chunks/0bdt7ln111t48.js": "6184b1a61f22e2a640c17941634fdc75678ce93d142848d9f07f163e0d1fd201",
|
||||
"_next/static/chunks/0bwvt3mysnclc.js": "7705667a1b75812b7833d9c9dff47fe023015e58e382c40f4507d9948c973af4",
|
||||
"_next/static/chunks/0cz1d0mv5g_q7.js": "0973c1d64c88adc8e3c950410cb58b288f72118d5965b78049438deb8f2f9683",
|
||||
"_next/static/chunks/0enhs8x_8oeah.js": "44c76f6178d407e1f147fdf70015fd05c21e58ed220fc922d23dfd1e0f8631bd",
|
||||
"_next/static/chunks/0jcvc3qm6-lyk.js": "7c27e1fe373b822adc68c63096a5bf38444ad605b9743f0920271652989c56f1",
|
||||
"_next/static/chunks/0lxzrfwn1fphq.js": "1f1792240611f3fabb14afa6b66f80de20b035a3d0ceee2e40f5f6f589129774",
|
||||
"_next/static/chunks/0q20g9o8x-k8z.js": "3d4d9086985419aa8866b032158196c774acb8bf318f3c8245508c8daa9c5148",
|
||||
"_next/static/chunks/0q_pwu9jxv4-d.js": "42a43b3d7245a413c7c29b4cbe87823037a6dbc637e2e282c92405470e0f575d",
|
||||
"_next/static/chunks/0w69-xg9od0ja.js": "88a7bd64f4fddf57cdbf3e993be2a44e48d5b313e434038bc9a7337d107ae162",
|
||||
"_next/static/chunks/11-48p8kygxgp.js": "57eb9059599b5a5a30598d0a334912d58af571c0ffe28448ca76ad77c8ea8df9",
|
||||
"_next/static/chunks/13uq1xe3s3l_c.js": "dd5b46dbf29a692062dcedc2604ff9c254db1abfcf9d39f30ab96b2de87d1707",
|
||||
"_next/static/chunks/14-lfugawba2w.js": "6a5780ca3c84d7f130f3c0a14431c85c7a1e799e2645b8c171161dab40a64360",
|
||||
"_next/static/chunks/1435in_k_-dhc.js": "4757476512d5c4dd25f9264a18b304ed4824b23aff1c09e134fcbff21d9c36b6",
|
||||
"_next/static/chunks/145oicobmjvm7.js": "d6bbbdeed1381652dc7412e5ce673a077579ecd5cee8934cb6b533c814098764",
|
||||
"_next/static/chunks/14e7ovj0s3elm.js": "070567dd4d23fb9fa0b9ba132185a697af6578045d43b2b1c7bbb2a1594d935d",
|
||||
"_next/static/chunks/154b5a6du9olf.js": "49e4df3a3e10119ddc34f84767883b9228ff6798a07fd759c2fb8e2be62fe9fb",
|
||||
"_next/static/chunks/16lfece6cnlln.js": "716363ba044f30b0e70440756b4e5eafa2d25f2e1628e855e3bc4ab9eabee3d3",
|
||||
"_next/static/chunks/1d0xrdyyzw7qc.js": "c11668ff1e152008e0d7b4454af12eb36c97df46a5860938e2eb5d8429b374a8",
|
||||
"_next/static/chunks/1h7j7ef9e6i41.js": "cb6cd497566dc188b67d09b9c031ef9bbf36f2b85d0aac02621f56daa44faa34",
|
||||
"_next/static/chunks/1ke8pzecwofrg.css": "32e9ab963ebadebcbe2c68dffb24cfbfc8cc24255ad91b48b7941fc777bf7439",
|
||||
"_next/static/chunks/1m3dt58dmprbw.js": "3a80b00707e6a884a03fa636260511585f1760f37c24fd4861ead110e6b3e985",
|
||||
"_next/static/chunks/1req80b9jj38r.js": "eee4d2e3789e1215195dba99ad0f09d34f8c83da848322b76054722233e9dae3",
|
||||
"_next/static/chunks/1vlgr-jtg9qr0.js": "6e41421a30b7313860e86c2069ed9dde394e29d004eeb42af46b2d2d124a1acb",
|
||||
"_next/static/chunks/1w3q8yrcjn2jk.js": "365200e241ee9290e93d7c2fdba169f2b0a8e774541e3cbf3f6f2781110fa644",
|
||||
"_next/static/chunks/1xn023_28rgzj.js": "4f7f2108d030a48d039930736c92a55710975dddf419fe673f84d92899b1f575",
|
||||
"_next/static/chunks/1xwc-b795syag.css": "f73c002233f931ca14d0ae58815c47ca9f2659f25b1547a6d1fdca12a2a00b3f",
|
||||
"_next/static/chunks/1zi8i6dnxiac_.js": "8aea28bbe6a138e5d4b619429ca71570883a7aee974b86d5a4a746d90f704dbc",
|
||||
"_next/static/chunks/21n31t_q2ou2m.js": "bbd6a5dc061a64d5b7817babeeb5c2f90aae8ba21cff54fea1064c39f497af6a",
|
||||
"_next/static/chunks/22uh2tvaw80j2.js": "dafe6b4e23dc5c1d32f8b4a60c561238d2d5e7545f23ebc5b3f7304b48626dbf",
|
||||
"_next/static/chunks/22wx8--1b9tnq.js": "3f7d8e762371262c6a740b4dac21725b424847319afac46055e97074a99ff5f5",
|
||||
"_next/static/chunks/245ibf0f31ne8.js": "8b27ab5d720bd278b5d73a7e824bfcccf4cc893ced9fa6f1937bb2bc7a65f967",
|
||||
"_next/static/chunks/280cq9ekejv1f.js": "01de8c1c3555cdd8d711763065ea9d8aec2968c3053f61254e43e26c999027bf",
|
||||
"_next/static/chunks/2br3ad_-bc7k9.js": "80fa55f7a32db4d743fda36747c36994fde00a0f53f2eb25b2a6d07c6fb97cd7",
|
||||
"_next/static/chunks/2gd9s_n-0nl1p.js": "31e2811be51a3c4d0ff2d1e3cea756e7fd8d57ef89141b5de69f638c1301d039",
|
||||
"_next/static/chunks/2j9f-6w2x4auf.js": "a23068fc68514dcaa1375de8802bf7f9bdfc561835e4fe47b9e6fe8f7372f85c",
|
||||
"_next/static/chunks/2s2gjr6ro25dj.js": "7489e2ac285a05b563c2bcb4eaf9274bf930f2a7385f17d6d5e6850064b88b10",
|
||||
"_next/static/chunks/2u5qve004opku.js": "be388d9a6aa423082bafb4584c3facc65ddfed71bcfa5c1d06b097b408c5ff97",
|
||||
"_next/static/chunks/2wae6urahmel1.js": "ae86575883781981cc373601a07009101d81eba801f40d4607e6f3f168777a5b",
|
||||
"_next/static/chunks/2xlg4_1fj8fxh.js": "8ab4ba521db0167f3dbf684787ebf643cbc66fa7ffff7cdc65a8d8076a926155",
|
||||
"_next/static/chunks/2z42el0b2mp8_.js": "86ff990ef32c90c4839583e4f1d1bcbddb165dad3141b9fcd2ecec67f4ff24b8",
|
||||
"_next/static/chunks/334vtqp3-g1j6.js": "c33d42da97f3af7388e29273297e9f42c67f54b7f5ec77a5d0637e2da06d7f7e",
|
||||
"_next/static/chunks/3720519r84mh6.js": "54358db392a13914e3363046d594e824b1a3ef987913d95002bf48267dded4aa",
|
||||
"_next/static/chunks/3bqn9b34na0b9.js": "f1b8ebcc1b22251c33c9f3a5d11c1f893cad2da2e8744a441e790f7347aa9e73",
|
||||
"_next/static/chunks/3ckk_j5ril9ag.js": "87f631dae7b648d32171e9e05a3e000753ecb54f8d3b86a4401c0e4ab4d73553",
|
||||
"_next/static/chunks/3f96r6vscobou.js": "d4b452ff3f1433f8fe1df705a8f592326f51b5a8846e6c2790d28df5a977aed3",
|
||||
"_next/static/chunks/3gkylew_qn7cw.js": "7e6c74c81be0c41ab433e36d65b914f62c48f332922e27f7cc953476f4dd78cb",
|
||||
"_next/static/chunks/3mowdlh-jq9ii.js": "2c6ccd1500d28ec0c7312cb08ee221f0e4184ba21465ee166a054aa9a6c7f3ed",
|
||||
"_next/static/chunks/3os11ovm65tyl.js": "c5a908bd61f53f0d75927efb71e53aef8fdd9b2e4fef412a167990dbc702c166",
|
||||
"_next/static/chunks/3q4v10rrqy40n.js": "d87ff7b7a0f07d0d92eab3876481eb686a12d9c43d8b92cbe406aefa227a11c1",
|
||||
"_next/static/chunks/3q80eur194l-9.js": "7b52d29843c23a0ed74056eeb1704de14488f36e9d05f2f8271434c61051dce0",
|
||||
"_next/static/chunks/3u61o8t7m_jza.js": "86231c12e0f8cacc8638bed0bc4b34f645fc35e60de342dc154d3cce0c9a5afa",
|
||||
"_next/static/chunks/40y_aqqilokr2.js": "1f5a5260316134d6bffe949400752ee6b42addf908ae714ef4ae4ebde916dddd",
|
||||
"_next/static/chunks/43b5x8qjjh3ax.js": "6ee7261cf9a63e0e6ea181bbb09125e09948588b6e10b5c02727c686a6062a3a",
|
||||
"_next/static/chunks/442d7ylb3po0z.js": "d95cedfbdcd00c674fd718cbbf391ec01c0728018b0db2461a06df7074049132",
|
||||
"_next/static/chunks/turbopack-25fzg9ay_1ss-.js": "c40f39e993a30c96d6247bb3a7b581538bb046efe8ef8ec07bea3ba32291750f",
|
||||
"_next/static/ibUkuY7Y_5wUxZxd0jW38/_buildManifest.js": "9476e0afd3f9da68a64e6ec58631191fd3eaca62c9f5a377e7517fe9a89e59ea",
|
||||
"_next/static/ibUkuY7Y_5wUxZxd0jW38/_clientMiddlewareManifest.js": "5483e3295dc35dfe29ea932efc85341c916f10ff78ff5b0e965e003710893a4a",
|
||||
"_next/static/ibUkuY7Y_5wUxZxd0jW38/_ssgManifest.js": "678f6ce2cb80b1fe72fc67e7412be6e2ab6ada083111b64f7c40d35e3cba5e00",
|
||||
"_not-found/__next._not-found/__PAGE__.txt": "b29ec33fb211daa1fd701159576a82422aecee42bc24fa6927e28f4e22e3df0c"
|
||||
},
|
||||
"commands": {
|
||||
"typecheck": "npm run typecheck: exit 0",
|
||||
"lint": "npm run lint: exit 0",
|
||||
"build": "NEXT_PUBLIC_API_BASE_URL=/api npm run build: exit 0",
|
||||
"browser": "node scripts/verify-a3-theme.mjs: exit 0"
|
||||
},
|
||||
"limits": [
|
||||
"synthetic API fixture browser lane",
|
||||
"Google font requests aborted, not downloaded",
|
||||
"no backend or native-device/security/release acceptance"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"date": "2026-11-03",
|
||||
"branch": "codex/a3-ui-04",
|
||||
"base": "dc93b589c995f4edcc48f658ddde571356d6dd86",
|
||||
"coreFrontend": {"passed": 69, "failed": 0, "suites": 8, "report": "CORE_TESTS.json"},
|
||||
"disjointWriterFrontend": {"passed": 57, "failed": 0, "suites": 2, "report": "WRITER_TESTS.json"},
|
||||
"backend": {"passed": 88, "failed": 0, "skipped": 0, "report": "backend/a3-applications.trx", "environment": "InMemory and isolated SQLite; mocked summarizer, no live models"},
|
||||
"commands": [
|
||||
{"command": "rtk proxy npm run typecheck", "exitCode": 0},
|
||||
{"command": "rtk proxy npm run lint", "exitCode": 0},
|
||||
{"command": "rtk proxy npm run build", "exitCode": 0},
|
||||
{"command": "rtk proxy node scripts/verify-a3-applications.mjs", "exitCode": 0}
|
||||
],
|
||||
"independentReview": {"result": "no actionable findings", "testsPassed": 52, "overlapCoreTotal": true},
|
||||
"notRun": ["MariaDB", "real backend browser integration", "hosted CI", "native device and screen-reader review", "explicit board ArrowRight scroll assertion", "actual zoom", "native linguistic approval", "provider/model services", "final integrated security", "production/release qualification"]
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"base": "dc93b589c995f4edcc48f658ddde571356d6dd86",
|
||||
"recordedAtUtc": "2026-11-03T09:03:57.755433+00:00",
|
||||
"policy": "Text LF-normalised SHA256; PNG/export raw bytes",
|
||||
"sources": {
|
||||
"JobTrackerApi.Tests/ApplicationWorkspaceTests.cs": "ebbf3cc7762bb5087861da37f3d6faac5a0c988598487dadfdadfab9a6dea0c2",
|
||||
"JobTrackerApi.Tests/JobApplicationsAppliedDateHistoryTests.cs": "367a3e9d1a61358571afb8852d4edbe794522276f36009c5af2ea2cde1965b75",
|
||||
"JobTrackerApi.Tests/JobApplicationsAuthorizationTests.cs": "1eba1b885107db636bd5d9a12e0e163f8cb578e810801c4e8dc58eed09b899bf",
|
||||
"JobTrackerApi.Tests/JobPipelineTests.cs": "15513f49a0b8a47295cbed15cf0b4d62d4e85faa57b4b5608ea8b52fdccebd2f",
|
||||
"JobTrackerApi.Tests/JobQueryParityTests.cs": "fd5ff8a7ed9cea356e1778514572380e203ac3806aff11ca334f7e1502a26fcd",
|
||||
"JobTrackerApi.Tests/Rd21JobPersistenceTests.cs": "945fb6ee4195ff9d6f14795441df1325c810b9a655dc841f825a646dcdecd452",
|
||||
"docs/pre-phase10-ux/preservation.json": "a4c2a5a0244ea89381008218de32daee1f615a250eb3808b60e0ee103c674d4d",
|
||||
"docs/ui-modernisation/APPLICATIONS_VALIDATION.md": "a3781d1c2cdd368e0606b82218ef6dc0e543b0b82fb563278a367a1132282aba",
|
||||
"docs/ui-modernisation/UI-04.md": "d2b2c3d5db1ec9a6ccbea3014bec22f16986bede368e8546caf7ebf6b70fcbe6",
|
||||
"job-tracker-ui/package-lock.json": "bf31e90d7af03e8af059db2aaf893925b9e8881a30a1688034ed88ef45d4fcab",
|
||||
"job-tracker-ui/package.json": "3745394e406cefa40d30a87e840bccb359be147bac6ffba736e2ae90898a8626",
|
||||
"job-tracker-ui/scripts/verify-a3-applications.mjs": "f55aa36ae492e7f8c004a6bf3da0d7eee44dfc457d88163a78fbceace0f34200",
|
||||
"job-tracker-ui/src/application-workspace-overlay.test.tsx": "86ec993ae4e0c2f96eec71e2797502247f4e5335cf6f39001e881d0c44991152",
|
||||
"job-tracker-ui/src/applicationWorkspace.ts": "3b00a4fe16159bdb9603eeb37bfdf5e5eb9a87d7815227fa3aa2f0da6e4f232c",
|
||||
"job-tracker-ui/src/components/JobTable.tsx": "515191502a1bb0629f816936059791ed71dd05b1fc6549f06ec6e88e9c22733c",
|
||||
"job-tracker-ui/src/components/KanbanBoard.tsx": "9bb9b08fa66884e0f40fa751c540d421fa4c4c604a796c30e21a0ca53e0c7387",
|
||||
"job-tracker-ui/src/i18n/I18nProvider.tsx": "d22b5d033d0e405ffb5d581c752d61a24056d1e496f5f6a2f1baecef500f2113",
|
||||
"job-tracker-ui/src/i18n/translations.ts": "2ee1320e2aa70b42adf73a7876fe979dc3bba8914889914003998dc35df2657c",
|
||||
"job-tracker-ui/src/layout/AppShell.tsx": "33dc40054ce390cc532e3bc51d6301795359f4105bac38b2dcdf2d17b3f4b917",
|
||||
"job-tracker-ui/src/views/ApplicationWorkspacePage.tsx": "f3fe99a0c73a8bf04f632832e01e3a0cef6e7cfde6d6a815e3aa0faf0068b673"
|
||||
},
|
||||
"evidence": {
|
||||
"backend/a3-applications.trx": "b0908ef7a089f728d314c06e1e5440bc208406a371a00ba7e50f425c1fe2a364",
|
||||
"BASELINE.json": "2ff316833a60138e6b5c9e782fd5a637ca743edfac495b7a277e244e4fd44b2a",
|
||||
"browser/board-en-dark-1440.png": "4b76debdeee108d27e1ad464943f4657238bf938978235af924cc98c2a767205",
|
||||
"browser/board-en-dark-320.png": "5bb81e37c4c3def10b1828837b429d66c76af9a5b7fab6c95c1321a2381ecbb3",
|
||||
"browser/board-en-dark-390.png": "d1574105dfa92344b3b018e70fc40913d3f006aec88ae99f3f9bd2941112bb52",
|
||||
"browser/board-en-dark-768.png": "9cb7c5c302698d5ba398043a08ded844d9376e02e0364472cd06eff1ad5fccb2",
|
||||
"browser/board-en-light-1440.png": "513770e2f1fd6f87b758262dee4f7aaf0cfec77da23e3842d6c49785b2b0758d",
|
||||
"browser/board-en-light-320.png": "fd92a944b245169459e2bbf96b312c8de349a69fc5fc8330bb314aa4fd92a285",
|
||||
"browser/board-en-light-390.png": "e40abb4a83675e6344dd0843f59425a84752759dd38f2e7c5dc08cebeb6a4d84",
|
||||
"browser/board-en-light-768.png": "ada203cedea470fea279b397da8a9b1eb38f6113ce36b54cb6fd4aae7a58b634",
|
||||
"browser/board-nb-dark-1440.png": "88936a94046edb46e15f598a7171cb17fdf1a9fffaf5e4fc22d7dcd8a950d7b1",
|
||||
"browser/board-nb-dark-320.png": "c94c9bdcb91bed1c91ffeea5057002ea0ae363aca88ffd6c004b0768e294840a",
|
||||
"browser/board-nb-dark-390.png": "a975021ae84550fe103fe2c8af5456301e69fa7be52cbea8091403c29517b11e",
|
||||
"browser/board-nb-dark-768.png": "88f65c6bb5c040a0f70f0b15983bb7b298df9bc017c405bb21c733d17708e219",
|
||||
"browser/board-nb-light-1440.png": "0dcc04d07f297da3ebda5c67a50d97e81ef699d76da4c71087cdf9a5a16c05ae",
|
||||
"browser/board-nb-light-320.png": "294bba1ca76969cb4b2ebeb0c5cdd2311387cd9c4255c23c9735c22747e0f831",
|
||||
"browser/board-nb-light-390.png": "332374c110f0274fe98de9cf36f6dea21d6ef8374a32e6f17bfe285edb20a527",
|
||||
"browser/board-nb-light-768.png": "142ed86182f17a41424f8da70c2f215c5a9634251ad7c12217493ab61a518c16",
|
||||
"browser/BROWSER.json": "014e4d9db96b643e9b1d9d9e009a6db63dc64639197907d4572fac3bb1fecd45",
|
||||
"browser/detail-en-dark-1440.png": "18e8509a104e96d76025c486ad846ef653ce258628ea5154bf9673e5ceaadcc0",
|
||||
"browser/detail-en-dark-320.png": "78da997f5d102f4657d9809f0529a27a09201174a0c2a42d62e47d682e8cdc26",
|
||||
"browser/detail-en-dark-390.png": "f706eb060d8c28f7624e3ddebfb0cb693fc7e9bb1186f37c0d023b08105db037",
|
||||
"browser/detail-en-dark-768.png": "a70666a0e29892164db49e6f62e472bba5ee87a5541e6ae431c3d4a23d6e3614",
|
||||
"browser/detail-en-light-1440.png": "fd6889a8896aa149169bc38f1ccd15da10374b05f600347acf2b34f08ab72e69",
|
||||
"browser/detail-en-light-320.png": "0fa9a83f6021d729ad0b72c8c4a45d78fc98a19561a24b89a32ca81fac0915d3",
|
||||
"browser/detail-en-light-390.png": "b94429f5ae4fe864c2404ea096c9f529cc0acde9bb04cec3b026020d6775b39b",
|
||||
"browser/detail-en-light-768.png": "c4387bc5d3f4a9cbc0a90ee81ec04d75faf17e4383f1b8746566067edeaa6d4f",
|
||||
"browser/detail-nb-dark-1440.png": "2e627b7cafd883d8d6cc2da205ae67730277a333db0de557d613619b99926853",
|
||||
"browser/detail-nb-dark-320.png": "776a9e2dd4e282a388a316a2553b9ee6ce05b5185a34148fef85872d808228d4",
|
||||
"browser/detail-nb-dark-390.png": "8dbdc071b082973a03efdc913a126563fe3d9d8fac43aca9b6cc3973d8b305bc",
|
||||
"browser/detail-nb-dark-768.png": "f45f95b53ae27251a7ad28d6333d3b4f4f580337a277e57f378834bc005aa610",
|
||||
"browser/detail-nb-light-1440.png": "cae879f63a83d1224e8e5938d28f5c0466e175e9bbd7d52f9c1f1dfd804a8faa",
|
||||
"browser/detail-nb-light-320.png": "ad7273bc551228a8336cf89e7fd08d336040cc759b3e6d76aa7392c79ab25468",
|
||||
"browser/detail-nb-light-390.png": "bf0e3842922559b5eb276ebc330dfced3d735a897bc950cb3381c944fd6217ec",
|
||||
"browser/detail-nb-light-768.png": "6d652da800de55b8f8faf224ad114f7195bf7a3062eb33e77d433a829529aaaa",
|
||||
"browser/table-en-dark-1440.png": "3418f05ede09989ce851b46c1ee527f2eb9d082aabc69c87bcc96a2e298dcea3",
|
||||
"browser/table-en-dark-320.png": "fbed9a3661707389bc9dd4e6c9ccb06a5202a01d7814a06ee268835f8615e807",
|
||||
"browser/table-en-dark-390.png": "b22ff8c2cfe60426987c09db08eb316d6b06becd5400a06d719c8860e2079bdf",
|
||||
"browser/table-en-dark-768.png": "2fafba08d45d97443122960ae8ebd05cdda2ae6a020b890531d494ecca9d3b70",
|
||||
"browser/table-en-light-1440.png": "ec8b007b6b77a560bd323355a1a256804aef96c9c3f0699f12fcd6a3a6d30522",
|
||||
"browser/table-en-light-320.png": "b4ee0a232b804ff9d6fb40bc4d9e77eb197b13a16fb1c871828ed9926700d0d1",
|
||||
"browser/table-en-light-390.png": "f8f413381aa9c71fcfd5ec9df08f71e6c708648779e5ddc8af7e734592ea701b",
|
||||
"browser/table-en-light-768.png": "77df715142dd5cd6b7b32ddfe1cf425f7992d8d10db3175d1122af2ccadb1191",
|
||||
"browser/table-nb-dark-1440.png": "507e11b09e537a7a2f7650f16d3c0ef8b680ddef10cec2ba6c13bd6b27cf62cf",
|
||||
"browser/table-nb-dark-320.png": "6ae3e32205a325d42f9cc0102cb2d50480687917f894400ddf99360f821ccafa",
|
||||
"browser/table-nb-dark-390.png": "d3739c8f4b662a19813f69f21ea905b683ea04836c91ccfe299147bd976792fd",
|
||||
"browser/table-nb-dark-768.png": "e8a2420a3b8ca18aa9cd609622512a33c6e152d55ee23409e1dba459ee9cf66b",
|
||||
"browser/table-nb-light-1440.png": "e68ce699398394386266270a908c831738b0683442122956d4332bba10a00be8",
|
||||
"browser/table-nb-light-320.png": "54beded4edf634714e3c3a849530af56d5826159e5b851394069a848bae2d83b",
|
||||
"browser/table-nb-light-390.png": "010dad9ad4aa6fc56284de4ca1f8561497421df878871a27a21b58d47756dc5f",
|
||||
"browser/table-nb-light-768.png": "9a215b0382afd0ccf919a0a07e2a09ffeeb209256c6a3e1265046489613ff6b0",
|
||||
"CHECKS.json": "787ec1ccf1e42fc8776b65e8a70e9861bf70081831088700b5d0f016791e5680",
|
||||
"CONTEXT_RED.json": "2e4d00bedec88c050cb9cd4f443497c4846ca889054c2f367b2b1fe356e60c16",
|
||||
"CORE_TESTS.json": "d59ca1fb7894367735c9e26725e0f946bdf7bfdc3cb4a100fce1fbe2f201caa0",
|
||||
"READINESS_RED.json": "570007618104ef186c569236634e9bb3d5158722faea847a20f6df33c100144d",
|
||||
"WRITER_TESTS.json": "24c77d92cd9d66ccaac07d11c8c142d11d48f050e99c30d87af5088c9f87ae34"
|
||||
},
|
||||
"export": {
|
||||
"404.html": "84c9eba7e93604d360efad259856ac2ecb38e577918efa2174032628ff7552b8",
|
||||
"__next.__PAGE__.txt": "97cf0e26dafeb33b6d11e12d8f34661b17c08c66b3ec05919ed23b035a36728f",
|
||||
"__next._full.txt": "5d1b95cc3160a9ac024392d1b49aab735c1b325c598001291f6ecc56bbf85ca8",
|
||||
"__next._tree.txt": "4a52ed54431d58bbe9c96d0b45816c031682e23b163c363f204cd0de0584a9e0",
|
||||
"_next/static/chunks/0-_aq6ipzcshj.js": "39f90c215bf52aef6274ed3dcc0f8af32e21a37fe8845b3bca0d6ea60da6a8c2",
|
||||
"_next/static/chunks/07vdc-duql714.js": "5a4840d1ba6b65782459968940a2f4cf973c99f0f77890f4171c4f420f339353",
|
||||
"_next/static/chunks/0ah1fzqmie05a.js": "5c65505a7dcbac63ac71d254e619a4c800943bfb4fa16cd40c10cdbe7e9b6e31",
|
||||
"_next/static/chunks/0bdt7ln111t48.js": "6184b1a61f22e2a640c17941634fdc75678ce93d142848d9f07f163e0d1fd201",
|
||||
"_next/static/chunks/0bwvt3mysnclc.js": "7705667a1b75812b7833d9c9dff47fe023015e58e382c40f4507d9948c973af4",
|
||||
"_next/static/chunks/0cz1d0mv5g_q7.js": "0973c1d64c88adc8e3c950410cb58b288f72118d5965b78049438deb8f2f9683",
|
||||
"_next/static/chunks/0enhs8x_8oeah.js": "44c76f6178d407e1f147fdf70015fd05c21e58ed220fc922d23dfd1e0f8631bd",
|
||||
"_next/static/chunks/0jcvc3qm6-lyk.js": "7c27e1fe373b822adc68c63096a5bf38444ad605b9743f0920271652989c56f1",
|
||||
"_next/static/chunks/0q20g9o8x-k8z.js": "3d4d9086985419aa8866b032158196c774acb8bf318f3c8245508c8daa9c5148",
|
||||
"_next/static/chunks/0q_pwu9jxv4-d.js": "42a43b3d7245a413c7c29b4cbe87823037a6dbc637e2e282c92405470e0f575d",
|
||||
"_next/static/chunks/11-48p8kygxgp.js": "57eb9059599b5a5a30598d0a334912d58af571c0ffe28448ca76ad77c8ea8df9",
|
||||
"_next/static/chunks/14-lfugawba2w.js": "6a5780ca3c84d7f130f3c0a14431c85c7a1e799e2645b8c171161dab40a64360",
|
||||
"_next/static/chunks/1435in_k_-dhc.js": "4757476512d5c4dd25f9264a18b304ed4824b23aff1c09e134fcbff21d9c36b6",
|
||||
"_next/static/chunks/145oicobmjvm7.js": "d6bbbdeed1381652dc7412e5ce673a077579ecd5cee8934cb6b533c814098764",
|
||||
"_next/static/chunks/14e7ovj0s3elm.js": "070567dd4d23fb9fa0b9ba132185a697af6578045d43b2b1c7bbb2a1594d935d",
|
||||
"_next/static/chunks/154b5a6du9olf.js": "49e4df3a3e10119ddc34f84767883b9228ff6798a07fd759c2fb8e2be62fe9fb",
|
||||
"_next/static/chunks/16lfece6cnlln.js": "716363ba044f30b0e70440756b4e5eafa2d25f2e1628e855e3bc4ab9eabee3d3",
|
||||
"_next/static/chunks/1d0xrdyyzw7qc.js": "c11668ff1e152008e0d7b4454af12eb36c97df46a5860938e2eb5d8429b374a8",
|
||||
"_next/static/chunks/1h7j7ef9e6i41.js": "cb6cd497566dc188b67d09b9c031ef9bbf36f2b85d0aac02621f56daa44faa34",
|
||||
"_next/static/chunks/1ke8pzecwofrg.css": "32e9ab963ebadebcbe2c68dffb24cfbfc8cc24255ad91b48b7941fc777bf7439",
|
||||
"_next/static/chunks/1m3dt58dmprbw.js": "3a80b00707e6a884a03fa636260511585f1760f37c24fd4861ead110e6b3e985",
|
||||
"_next/static/chunks/1req80b9jj38r.js": "eee4d2e3789e1215195dba99ad0f09d34f8c83da848322b76054722233e9dae3",
|
||||
"_next/static/chunks/1w3q8yrcjn2jk.js": "365200e241ee9290e93d7c2fdba169f2b0a8e774541e3cbf3f6f2781110fa644",
|
||||
"_next/static/chunks/1xn023_28rgzj.js": "4f7f2108d030a48d039930736c92a55710975dddf419fe673f84d92899b1f575",
|
||||
"_next/static/chunks/1xwc-b795syag.css": "f73c002233f931ca14d0ae58815c47ca9f2659f25b1547a6d1fdca12a2a00b3f",
|
||||
"_next/static/chunks/1yx5pd9k61fi3.js": "1f9bb26664ca84fef80c0987470c1357c63015cf68fd14dc569f504e373fcd2a",
|
||||
"_next/static/chunks/1zi8i6dnxiac_.js": "8aea28bbe6a138e5d4b619429ca71570883a7aee974b86d5a4a746d90f704dbc",
|
||||
"_next/static/chunks/2-o9_wag-xnw1.js": "2d5526cb095b6f27580073719533b9448a17869517d9025c08a5b18b5060b1a7",
|
||||
"_next/static/chunks/22uh2tvaw80j2.js": "dafe6b4e23dc5c1d32f8b4a60c561238d2d5e7545f23ebc5b3f7304b48626dbf",
|
||||
"_next/static/chunks/22wx8--1b9tnq.js": "3f7d8e762371262c6a740b4dac21725b424847319afac46055e97074a99ff5f5",
|
||||
"_next/static/chunks/245ibf0f31ne8.js": "8b27ab5d720bd278b5d73a7e824bfcccf4cc893ced9fa6f1937bb2bc7a65f967",
|
||||
"_next/static/chunks/280cq9ekejv1f.js": "01de8c1c3555cdd8d711763065ea9d8aec2968c3053f61254e43e26c999027bf",
|
||||
"_next/static/chunks/2br3ad_-bc7k9.js": "80fa55f7a32db4d743fda36747c36994fde00a0f53f2eb25b2a6d07c6fb97cd7",
|
||||
"_next/static/chunks/2gd9s_n-0nl1p.js": "31e2811be51a3c4d0ff2d1e3cea756e7fd8d57ef89141b5de69f638c1301d039",
|
||||
"_next/static/chunks/2ghgf2s9b2iou.js": "23d8ff31e2128d0541c1887785fb75885323fea7c5d4f35826513b75c12c2ae3",
|
||||
"_next/static/chunks/2s2gjr6ro25dj.js": "7489e2ac285a05b563c2bcb4eaf9274bf930f2a7385f17d6d5e6850064b88b10",
|
||||
"_next/static/chunks/2u5qve004opku.js": "be388d9a6aa423082bafb4584c3facc65ddfed71bcfa5c1d06b097b408c5ff97",
|
||||
"_next/static/chunks/2xlg4_1fj8fxh.js": "8ab4ba521db0167f3dbf684787ebf643cbc66fa7ffff7cdc65a8d8076a926155",
|
||||
"_next/static/chunks/2z42el0b2mp8_.js": "86ff990ef32c90c4839583e4f1d1bcbddb165dad3141b9fcd2ecec67f4ff24b8",
|
||||
"_next/static/chunks/334vtqp3-g1j6.js": "c33d42da97f3af7388e29273297e9f42c67f54b7f5ec77a5d0637e2da06d7f7e",
|
||||
"_next/static/chunks/3720519r84mh6.js": "54358db392a13914e3363046d594e824b1a3ef987913d95002bf48267dded4aa",
|
||||
"_next/static/chunks/399b23gr2par9.js": "8da49aad4d33ee2f3486a41437b01160b9b3628b600024b7fb6560069aa5630c",
|
||||
"_next/static/chunks/3bqn9b34na0b9.js": "f1b8ebcc1b22251c33c9f3a5d11c1f893cad2da2e8744a441e790f7347aa9e73",
|
||||
"_next/static/chunks/3ckk_j5ril9ag.js": "87f631dae7b648d32171e9e05a3e000753ecb54f8d3b86a4401c0e4ab4d73553",
|
||||
"_next/static/chunks/3f96r6vscobou.js": "d4b452ff3f1433f8fe1df705a8f592326f51b5a8846e6c2790d28df5a977aed3",
|
||||
"_next/static/chunks/3gkylew_qn7cw.js": "7e6c74c81be0c41ab433e36d65b914f62c48f332922e27f7cc953476f4dd78cb",
|
||||
"_next/static/chunks/3m8xxac_ytvhs.js": "c4b1089a400547325978631e15b4739295f0d98818fae9be31524a2090e7280c",
|
||||
"_next/static/chunks/3mowdlh-jq9ii.js": "2c6ccd1500d28ec0c7312cb08ee221f0e4184ba21465ee166a054aa9a6c7f3ed",
|
||||
"_next/static/chunks/3os11ovm65tyl.js": "c5a908bd61f53f0d75927efb71e53aef8fdd9b2e4fef412a167990dbc702c166",
|
||||
"_next/static/chunks/3q4v10rrqy40n.js": "d87ff7b7a0f07d0d92eab3876481eb686a12d9c43d8b92cbe406aefa227a11c1",
|
||||
"_next/static/chunks/3q80eur194l-9.js": "7b52d29843c23a0ed74056eeb1704de14488f36e9d05f2f8271434c61051dce0",
|
||||
"_next/static/chunks/3u61o8t7m_jza.js": "86231c12e0f8cacc8638bed0bc4b34f645fc35e60de342dc154d3cce0c9a5afa",
|
||||
"_next/static/chunks/3w2h78_04ah7i.js": "aaa2a9d3c3853e877c61dd49b40c2255cb0afab4989929d23d939b3c9771c5d0",
|
||||
"_next/static/chunks/40y_aqqilokr2.js": "1f5a5260316134d6bffe949400752ee6b42addf908ae714ef4ae4ebde916dddd",
|
||||
"_next/static/chunks/43b5x8qjjh3ax.js": "6ee7261cf9a63e0e6ea181bbb09125e09948588b6e10b5c02727c686a6062a3a",
|
||||
"_next/static/chunks/442d7ylb3po0z.js": "d95cedfbdcd00c674fd718cbbf391ec01c0728018b0db2461a06df7074049132",
|
||||
"_next/static/chunks/turbopack-25fzg9ay_1ss-.js": "c40f39e993a30c96d6247bb3a7b581538bb046efe8ef8ec07bea3ba32291750f",
|
||||
"_next/static/k1t18XJ0YLVrar9ywkslX/_buildManifest.js": "9476e0afd3f9da68a64e6ec58631191fd3eaca62c9f5a377e7517fe9a89e59ea",
|
||||
"_next/static/k1t18XJ0YLVrar9ywkslX/_clientMiddlewareManifest.js": "5483e3295dc35dfe29ea932efc85341c916f10ff78ff5b0e965e003710893a4a",
|
||||
"_next/static/k1t18XJ0YLVrar9ywkslX/_ssgManifest.js": "678f6ce2cb80b1fe72fc67e7412be6e2ab6ada083111b64f7c40d35e3cba5e00",
|
||||
"_not-found/__next._full.txt": "4a6107cdd9dfc4744020eec28e7f1633ea54d67113d0a46aba403cf16c6f992e",
|
||||
"_not-found/__next._not-found/__PAGE__.txt": "7608252acc8387f329317433e76703bddc91437524fd36408b2badd27dc07344",
|
||||
"_not-found/__next._tree.txt": "78368e5de55075d599068e4c97332e93fe4bfc16c1e47096024ff403eacf38f2",
|
||||
"_not-found.html": "84c9eba7e93604d360efad259856ac2ecb38e577918efa2174032628ff7552b8",
|
||||
"_not-found.txt": "4a6107cdd9dfc4744020eec28e7f1633ea54d67113d0a46aba403cf16c6f992e",
|
||||
"favicon.ico": "8d4923e2c487805ea9f852a685b2cf0fb10512ded8290d2a5c37d1cc8fd0702a",
|
||||
"favicon.svg": "63ecf8f37f8bb146ecfae3917187c6b692d4e801641e8a314486a4007912f3a3",
|
||||
"index.html": "9c76b3aef2c98ea2dba87c165650061cbcdc8f01368a7fc3bdb56d4e06843062",
|
||||
"index.txt": "5d1b95cc3160a9ac024392d1b49aab735c1b325c598001291f6ecc56bbf85ca8",
|
||||
"logo192.png": "bc652031597fabd19b9f14e22a71f809490d218037521b3b64d013418c1390b4",
|
||||
"logo512.png": "5129e9bc1ba812b711fd9a646d3a38a906d365a26ee685df183b8752458944d4",
|
||||
"manifest.json": "2667ce63c2e0835b7007239816a5597639321d333da396a78638dfa9e8a7c935",
|
||||
"mockups/dashboard.svg": "318be3adb1324c26eb30f05572a29528a3e38331c6a604652eef75b54f8c29dc",
|
||||
"mockups/pipeline.svg": "db2ef41faabeb90e7ce85413e168581686c54535d970fc7d8deda3888a479de4",
|
||||
"mockups/workspace.svg": "9bbab22349147c7b01d6e18c93c622a6f8aed6dedaf23715189ab54d60e1ddbd",
|
||||
"robots.txt": "e5ab0d231eeb01b4a982d1c79a6729cac9797ad15a69247e4f28ba6afc149b4c"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,556 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TestRun id="68d396f6-e71e-4a2e-bb5f-f343b1a9f40a" name="Connor@CESNIMDA 2026-11-03 09:58:24" runUser="Cesnimda\Connor" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
|
||||
<Times creation="2026-11-03T09:58:25.0013700+01:00" queuing="2026-11-03T09:58:25.0013704+01:00" start="2026-11-03T09:58:24.0629333+01:00" finish="2026-11-03T09:58:28.4175631+01:00" />
|
||||
<TestSettings name="default" id="f7cbc00d-cf16-4de0-a760-6bc05056b2cd">
|
||||
<Deployment runDeploymentRoot="Connor_CESNIMDA_2026-11-03_09_58_24" />
|
||||
</TestSettings>
|
||||
<Results>
|
||||
<UnitTestResult executionId="04288250-5e7d-47ff-8c28-31c7d76ad0be" testId="5f47dc74-c7bb-6b08-131d-55a4f7abbf36" testName="JobTrackerApi.Tests.Rd21JobPersistenceTests.Stale_or_unversioned_snapshot_cannot_erase_an_acknowledged_job_edit(omitRevision: False)" computerName="CESNIMDA" duration="00:00:00.1541663" startTime="2026-11-03T09:58:26.7779005+01:00" endTime="2026-11-03T09:58:26.7779006+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="04288250-5e7d-47ff-8c28-31c7d76ad0be" />
|
||||
<UnitTestResult executionId="40f0f8ac-58ca-4a1c-b7af-6dd598f15c2c" testId="b5fe2723-67af-5c72-78d9-28239b4d24c5" testName="JobTrackerApi.Tests.JobPipelineTests.IsProspect_false_for_post_application_stages(status: "Ghosted")" computerName="CESNIMDA" duration="00:00:00.0000023" startTime="2026-11-03T09:58:24.9814415+01:00" endTime="2026-11-03T09:58:24.9814415+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="40f0f8ac-58ca-4a1c-b7af-6dd598f15c2c" />
|
||||
<UnitTestResult executionId="da8474ac-47ba-435f-868c-d0f8dbc09b45" testId="4d9cb541-8911-0d74-cb02-8d7f6700dd1f" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "foreign-company")" computerName="CESNIMDA" duration="00:00:00.1360510" startTime="2026-11-03T09:58:27.2105492+01:00" endTime="2026-11-03T09:58:27.2105493+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="da8474ac-47ba-435f-868c-d0f8dbc09b45" />
|
||||
<UnitTestResult executionId="d89c2358-4477-4df9-8d6c-86dee59740f4" testId="0405d09d-9d3a-bdfb-afc6-17200531890c" testName="JobTrackerApi.Tests.JobPipelineTests.Every_stage_belongs_to_exactly_one_group" computerName="CESNIMDA" duration="00:00:00.0001886" startTime="2026-11-03T09:58:24.9829539+01:00" endTime="2026-11-03T09:58:24.9829540+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="d89c2358-4477-4df9-8d6c-86dee59740f4" />
|
||||
<UnitTestResult executionId="6b1cbd7c-0e2d-4d42-8141-a72b7bc88fbd" testId="5b8ea46d-ee44-6470-1381-3f43ab773db6" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "standard")" computerName="CESNIMDA" duration="00:00:01.3278494" startTime="2026-11-03T09:58:26.2725472+01:00" endTime="2026-11-03T09:58:26.2725476+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="6b1cbd7c-0e2d-4d42-8141-a72b7bc88fbd" />
|
||||
<UnitTestResult executionId="22279e58-5d23-4159-95c2-1ec20e36cd47" testId="ee747285-6574-0968-3d1b-5b4086b49e77" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "location")" computerName="CESNIMDA" duration="00:00:00.2189637" startTime="2026-11-03T09:58:26.8163187+01:00" endTime="2026-11-03T09:58:26.8163192+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="22279e58-5d23-4159-95c2-1ec20e36cd47" />
|
||||
<UnitTestResult executionId="49e58d06-7807-40ca-8731-f960c544611d" testId="43471150-bda8-0b87-4c8d-1cd20471638b" testName="JobTrackerApi.Tests.JobPipelineTests.IsProspect_true_for_pre_application_stages(status: "Preparing")" computerName="CESNIMDA" duration="00:00:00.0000017" startTime="2026-11-03T09:58:24.9808775+01:00" endTime="2026-11-03T09:58:24.9808775+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="49e58d06-7807-40ca-8731-f960c544611d" />
|
||||
<UnitTestResult executionId="7bb788e6-0268-410f-8b2f-2c646f4fd423" testId="406bfb2f-20b7-15bd-2069-50eef30dff88" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_prospect_synonyms(input: "bookmarked", expected: "Saved")" computerName="CESNIMDA" duration="00:00:00.0000060" startTime="2026-11-03T09:58:24.9792309+01:00" endTime="2026-11-03T09:58:24.9792309+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="7bb788e6-0268-410f-8b2f-2c646f4fd423" />
|
||||
<UnitTestResult executionId="32f51ce0-8242-46b5-9e72-c980a36a0897" testId="9ca882ec-2b75-a26b-1420-961f41c85538" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "correspondence")" computerName="CESNIMDA" duration="00:00:00.1085419" startTime="2026-11-03T09:58:27.9666368+01:00" endTime="2026-11-03T09:58:27.9666369+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="32f51ce0-8242-46b5-9e72-c980a36a0897" />
|
||||
<UnitTestResult executionId="1f475ccb-5169-4cf7-948f-10f70c02505d" testId="243583b0-ea8a-0c2d-b704-f9c081502a8c" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "interview")" computerName="CESNIMDA" duration="00:00:00.1460707" startTime="2026-11-03T09:58:26.9625286+01:00" endTime="2026-11-03T09:58:26.9625287+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1f475ccb-5169-4cf7-948f-10f70c02505d" />
|
||||
<UnitTestResult executionId="141e205c-c74d-4c32-be0e-54216ffe6766" testId="6ba5666c-74e4-b81b-103e-21d383c8c6e4" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_prospect_synonyms(input: "in preparation", expected: "Preparing")" computerName="CESNIMDA" duration="00:00:00.0000112" startTime="2026-11-03T09:58:24.9608339+01:00" endTime="2026-11-03T09:58:24.9608339+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="141e205c-c74d-4c32-be0e-54216ffe6766" />
|
||||
<UnitTestResult executionId="cd020b9d-b4d5-4d4d-8595-bcc8bfc45720" testId="d5dc78bf-9b64-780c-e1a6-189228b35e67" testName="JobTrackerApi.Tests.JobPipelineTests.Stages_are_ordered_and_unique" computerName="CESNIMDA" duration="00:00:00.0029757" startTime="2026-11-03T09:58:24.9827554+01:00" endTime="2026-11-03T09:58:24.9827555+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="cd020b9d-b4d5-4d4d-8595-bcc8bfc45720" />
|
||||
<UnitTestResult executionId="b1e757cb-3ad8-4705-9b96-d302a429a298" testId="807b4ecf-7901-9e43-fb43-71e8fb58731f" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_empty_becomes_default(input: " ")" computerName="CESNIMDA" duration="00:00:00.0000391" startTime="2026-11-03T09:58:24.9821953+01:00" endTime="2026-11-03T09:58:24.9821953+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b1e757cb-3ad8-4705-9b96-d302a429a298" />
|
||||
<UnitTestResult executionId="f276ab6e-8f53-4f57-b69f-89cb8866aef1" testId="e3216f8a-8510-078f-dd29-645ff395558d" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_withdrawn_synonyms(input: "cancelled", expected: "Withdrawn")" computerName="CESNIMDA" duration="00:00:00.0000950" startTime="2026-11-03T09:58:24.9821086+01:00" endTime="2026-11-03T09:58:24.9821086+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="f276ab6e-8f53-4f57-b69f-89cb8866aef1" />
|
||||
<UnitTestResult executionId="a39b54d4-9415-4129-9946-7f3619fd7916" testId="b7972ccc-92fa-2f26-8dd4-06b22977c9bb" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_casing_and_synonyms(input: "APPLIED", expected: "Applied")" computerName="CESNIMDA" duration="00:00:00.0000649" startTime="2026-11-03T09:58:24.9794410+01:00" endTime="2026-11-03T09:58:24.9794410+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a39b54d4-9415-4129-9946-7f3619fd7916" />
|
||||
<UnitTestResult executionId="8de28afd-87a1-4db8-be7f-35680fbcf918" testId="e4227296-3fbb-0af0-0d38-a3229e8a3931" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "custom")" computerName="CESNIMDA" duration="00:00:00.1136599" startTime="2026-11-03T09:58:27.3243100+01:00" endTime="2026-11-03T09:58:27.3243101+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="8de28afd-87a1-4db8-be7f-35680fbcf918" />
|
||||
<UnitTestResult executionId="03b927be-3840-4df0-9833-7a5e7845ca08" testId="3774c215-01a0-fd17-ff44-158de1e6105c" testName="JobTrackerApi.Tests.JobPipelineTests.SyncAppliedDate_returns_null_when_nothing_was_cleared" computerName="CESNIMDA" duration="00:00:00.0001530" startTime="2026-11-03T09:58:24.9826809+01:00" endTime="2026-11-03T09:58:24.9826810+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="03b927be-3840-4df0-9833-7a5e7845ca08" />
|
||||
<UnitTestResult executionId="4b6108e1-3385-461a-aea9-c890115490ca" testId="233c4cb5-66c0-2385-528a-c96b5760f3a5" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_empty_becomes_default(input: null)" computerName="CESNIMDA" duration="00:00:00.0000673" startTime="2026-11-03T09:58:24.9822197+01:00" endTime="2026-11-03T09:58:24.9822198+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4b6108e1-3385-461a-aea9-c890115490ca" />
|
||||
<UnitTestResult executionId="e189c207-5b14-4d97-b959-4ada47262587" testId="83cff8f8-d781-99e7-95b3-2a039270fd7a" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "none")" computerName="CESNIMDA" duration="00:00:00.1113675" startTime="2026-11-03T09:58:28.0780295+01:00" endTime="2026-11-03T09:58:28.0780297+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="e189c207-5b14-4d97-b959-4ada47262587" />
|
||||
<UnitTestResult executionId="fffe549f-449e-49f5-b8ee-78e31ece8480" testId="1ece7e57-e724-aa88-aaa8-6eccd169f3a6" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "include-deleted")" computerName="CESNIMDA" duration="00:00:00.1769604" startTime="2026-11-03T09:58:26.4496041+01:00" endTime="2026-11-03T09:58:26.4496042+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="fffe549f-449e-49f5-b8ee-78e31ece8480" />
|
||||
<UnitTestResult executionId="382cb0f8-68cd-4bd5-8dfc-b49a64020ee2" testId="fd61245f-a8b2-f146-de3a-31d80c4004ff" testName="JobTrackerApi.Tests.ApplicationWorkspaceTests.Next_step_asks_for_the_advert_when_there_is_no_description" computerName="CESNIMDA" duration="00:00:00.0062206" startTime="2026-11-03T09:58:26.1624030+01:00" endTime="2026-11-03T09:58:26.1624035+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="382cb0f8-68cd-4bd5-8dfc-b49a64020ee2" />
|
||||
<UnitTestResult executionId="a1ee7d2c-4aa3-44e5-b21d-115d2b10f07d" testId="c390dfba-f9a3-46a7-1677-20786cfc5d66" testName="JobTrackerApi.Tests.JobPipelineTests.DaysSince_is_null_without_an_applied_date" computerName="CESNIMDA" duration="00:00:00.0003299" startTime="2026-11-03T09:58:24.9830341+01:00" endTime="2026-11-03T09:58:24.9830341+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a1ee7d2c-4aa3-44e5-b21d-115d2b10f07d" />
|
||||
<UnitTestResult executionId="6a681a52-e5fe-4003-8fb6-11fab5725dd7" testId="cb349326-9fd9-4626-f55a-28cbe213bda7" testName="JobTrackerApi.Tests.JobPipelineTests.Prospect_stages_sort_before_applied" computerName="CESNIMDA" duration="00:00:00.0000751" startTime="2026-11-03T09:58:24.9828914+01:00" endTime="2026-11-03T09:58:24.9828914+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="6a681a52-e5fe-4003-8fb6-11fab5725dd7" />
|
||||
<UnitTestResult executionId="98160d95-c0e6-404e-8aea-54975f544627" testId="d4f830c4-a93f-761b-785c-6b1752a42000" testName="JobTrackerApi.Tests.ApplicationWorkspaceTests.Overview_separates_application_answers_from_human_notes" computerName="CESNIMDA" duration="00:00:00.0068371" startTime="2026-11-03T09:58:26.1559345+01:00" endTime="2026-11-03T09:58:26.1559346+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="98160d95-c0e6-404e-8aea-54975f544627" />
|
||||
<UnitTestResult executionId="35f72966-5bcc-4b7d-aa4d-df5349171302" testId="8aa9763e-1d8b-1ccb-f8b0-86c9dacfaf8b" testName="JobTrackerApi.Tests.JobApplicationsAppliedDateHistoryTests.Re_applying_after_a_backwards_move_stamps_a_fresh_date_and_leaves_history_intact" computerName="CESNIMDA" duration="00:00:01.0016189" startTime="2026-11-03T09:58:25.9462478+01:00" endTime="2026-11-03T09:58:25.9462480+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="35f72966-5bcc-4b7d-aa4d-df5349171302" />
|
||||
<UnitTestResult executionId="17279912-eb85-4ec6-8913-f5e000f39691" testId="27fe3229-574e-f5a8-e0cf-4e97fdcbe501" testName="JobTrackerApi.Tests.JobPipelineTests.IsProspect_false_for_post_application_stages(status: "Rejected")" computerName="CESNIMDA" duration="00:00:00.0000043" startTime="2026-11-03T09:58:24.9810241+01:00" endTime="2026-11-03T09:58:24.9810241+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="17279912-eb85-4ec6-8913-f5e000f39691" />
|
||||
<UnitTestResult executionId="8434e059-c250-445e-ac3e-dd844fc52edf" testId="3cd2fef8-dfa7-1464-b6a9-026485c0bd9e" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "notes")" computerName="CESNIMDA" duration="00:00:00.1393272" startTime="2026-11-03T09:58:27.4636995+01:00" endTime="2026-11-03T09:58:27.4637001+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="8434e059-c250-445e-ac3e-dd844fc52edf" />
|
||||
<UnitTestResult executionId="2c371481-70b8-4b13-908d-0a461418e2b6" testId="85e1088b-f623-f992-2c76-6d49b55bec85" testName="JobTrackerApi.Tests.JobPipelineTests.IsProspect_false_for_post_application_stages(status: "Interview")" computerName="CESNIMDA" duration="00:00:00.0000374" startTime="2026-11-03T09:58:24.9809815+01:00" endTime="2026-11-03T09:58:24.9809815+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="2c371481-70b8-4b13-908d-0a461418e2b6" />
|
||||
<UnitTestResult executionId="21fe8a22-43b4-437d-ac0e-309086e8b52e" testId="d9300062-418d-1ccf-2cc7-685be008ce42" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_casing_and_synonyms(input: "Interviewing", expected: "Interview")" computerName="CESNIMDA" duration="00:00:00.0000061" startTime="2026-11-03T09:58:24.9794837+01:00" endTime="2026-11-03T09:58:24.9794837+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="21fe8a22-43b4-437d-ac0e-309086e8b52e" />
|
||||
<UnitTestResult executionId="342880c8-7bba-44e0-b5cb-d51942e85e78" testId="161dc999-3648-3d48-1d7b-99ab066de8f6" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "needs-work")" computerName="CESNIMDA" duration="00:00:00.1174362" startTime="2026-11-03T09:58:27.7263780+01:00" endTime="2026-11-03T09:58:27.7263781+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="342880c8-7bba-44e0-b5cb-d51942e85e78" />
|
||||
<UnitTestResult executionId="7bde4546-deb4-4231-b557-1920fb3adf7b" testId="0ce1b3ae-aba6-2d59-4be9-377c6d0a68a6" testName="JobTrackerApi.Tests.ApplicationWorkspaceTests.Overview_reports_checklist_progress" computerName="CESNIMDA" duration="00:00:00.0063118" startTime="2026-11-03T09:58:26.1489960+01:00" endTime="2026-11-03T09:58:26.1489961+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="7bde4546-deb4-4231-b557-1920fb3adf7b" />
|
||||
<UnitTestResult executionId="48616e06-0dd1-4fa7-a937-0b9f92abfe21" testId="d25a3ef0-b042-1446-83ff-7d94d249fe2f" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_prospect_synonyms(input: "to apply", expected: "Saved")" computerName="CESNIMDA" duration="00:00:00.0098427" startTime="2026-11-03T09:58:24.9603413+01:00" endTime="2026-11-03T09:58:24.9603416+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="48616e06-0dd1-4fa7-a937-0b9f92abfe21" />
|
||||
<UnitTestResult executionId="3127c9b8-68c5-44be-88a8-9f2ed69e2784" testId="57f0349f-4705-96e4-450d-2772916d82e0" testName="JobTrackerApi.Tests.ApplicationWorkspaceTests.Overview_aggregates_the_application_without_copying_career_data" computerName="CESNIMDA" duration="00:00:00.0057555" startTime="2026-11-03T09:58:26.1681161+01:00" endTime="2026-11-03T09:58:26.1681162+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="3127c9b8-68c5-44be-88a8-9f2ed69e2784" />
|
||||
<UnitTestResult executionId="45edc57f-964e-4d7f-8a17-9a919c128bd8" testId="7c3a312b-f057-64f1-e4ba-93352b46df70" testName="JobTrackerApi.Tests.JobApplicationsAuthorizationTests.GetMatchScore_returns_not_found_for_other_users_job" computerName="CESNIMDA" duration="00:00:00.0742982" startTime="2026-11-03T09:58:26.0048309+01:00" endTime="2026-11-03T09:58:26.0048311+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="45edc57f-964e-4d7f-8a17-9a919c128bd8" />
|
||||
<UnitTestResult executionId="75362a5c-d1b4-4ca4-ae4f-d364aca30f10" testId="8e7c3334-0c54-277b-8fb4-aafcd601b1d3" testName="JobTrackerApi.Tests.JobPipelineTests.IsProspect_true_for_pre_application_stages(status: "bookmarked")" computerName="CESNIMDA" duration="00:00:00.0000878" startTime="2026-11-03T09:58:24.9808303+01:00" endTime="2026-11-03T09:58:24.9808303+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="75362a5c-d1b4-4ca4-ae4f-d364aca30f10" />
|
||||
<UnitTestResult executionId="4f676192-2e82-49c7-8821-b22b5282d4ea" testId="a8aff3ef-f27a-a882-1aa1-ba9c663cf4ce" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "company")" computerName="CESNIMDA" duration="00:00:00.1449596" startTime="2026-11-03T09:58:27.6087930+01:00" endTime="2026-11-03T09:58:27.6087932+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4f676192-2e82-49c7-8821-b22b5282d4ea" />
|
||||
<UnitTestResult executionId="6f17a184-1b95-4608-9cfd-86ea96323afd" testId="6b825f2a-013f-92ef-ef09-fe9860925384" testName="JobTrackerApi.Tests.Rd21JobPersistenceTests.Write_that_overlaps_a_delayed_save_wins_without_partial_events_or_opportunity_changes" computerName="CESNIMDA" duration="00:00:00.1241710" startTime="2026-11-03T09:58:26.9040737+01:00" endTime="2026-11-03T09:58:26.9040739+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="6f17a184-1b95-4608-9cfd-86ea96323afd" />
|
||||
<UnitTestResult executionId="1b422a5c-afbc-47e5-8085-f9b0b7d51a5a" testId="4bf5ede1-a4b1-f8e7-801c-ca499e8d57c9" testName="JobTrackerApi.Tests.JobPipelineTests.Ghosted_and_waiting_are_still_canonical_stages" computerName="CESNIMDA" duration="00:00:00.0000420" startTime="2026-11-03T09:58:24.9821677+01:00" endTime="2026-11-03T09:58:24.9821677+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1b422a5c-afbc-47e5-8085-f9b0b7d51a5a" />
|
||||
<UnitTestResult executionId="59f599e3-a853-4ae9-95f8-5d9e2e6428ef" testId="7e6f3ff6-0104-2ed9-ebe7-cc914c075a14" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_prospect_synonyms(input: "shortlisted", expected: "Interested")" computerName="CESNIMDA" duration="00:00:00.0000026" startTime="2026-11-03T09:58:24.9794000+01:00" endTime="2026-11-03T09:58:24.9794000+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="59f599e3-a853-4ae9-95f8-5d9e2e6428ef" />
|
||||
<UnitTestResult executionId="229d818c-f6d6-4270-945a-b6b985e19fcd" testId="04d26b3d-0337-8e69-a468-9144eae6f23a" testName="JobTrackerApi.Tests.JobPipelineTests.Board_groups_match_the_agreed_layout" computerName="CESNIMDA" duration="00:00:00.0068685" startTime="2026-11-03T09:58:24.9823496+01:00" endTime="2026-11-03T09:58:24.9823496+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="229d818c-f6d6-4270-945a-b6b985e19fcd" />
|
||||
<UnitTestResult executionId="c0dbc238-4362-40f4-83d2-779d39b79d0c" testId="8b810648-a924-89f8-3c7b-3c765ec3e6e1" testName="JobTrackerApi.Tests.Rd21JobPersistenceTests.Versioned_job_save_cannot_cross_tenant_job_or_company_ownership" computerName="CESNIMDA" duration="00:00:00.1074879" startTime="2026-11-03T09:58:27.1518543+01:00" endTime="2026-11-03T09:58:27.1518544+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="c0dbc238-4362-40f4-83d2-779d39b79d0c" />
|
||||
<UnitTestResult executionId="218f6bec-56ab-42a3-bf21-a28325e98484" testId="8828413a-f54a-42c7-8065-17e638ec72fc" testName="JobTrackerApi.Tests.ApplicationWorkspaceTests.Overview_returns_recent_activity_newest_first" computerName="CESNIMDA" duration="00:00:00.0130458" startTime="2026-11-03T09:58:26.0834118+01:00" endTime="2026-11-03T09:58:26.0834119+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="218f6bec-56ab-42a3-bf21-a28325e98484" />
|
||||
<UnitTestResult executionId="26d4bf01-2abd-42eb-8e7f-3763f6de6b15" testId="694c474d-1ea7-4388-7133-bc8d0d30f684" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_withdrawn_synonyms(input: "canceled", expected: "Withdrawn")" computerName="CESNIMDA" duration="00:00:00.0000040" startTime="2026-11-03T09:58:24.9821353+01:00" endTime="2026-11-03T09:58:24.9821354+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="26d4bf01-2abd-42eb-8e7f-3763f6de6b15" />
|
||||
<UnitTestResult executionId="89989a79-8646-4786-98ff-2586a5df4dfd" testId="5d8ca15f-c663-1d50-b932-cf2f0339c7c0" testName="JobTrackerApi.Tests.JobPipelineTests.OrderOf_sorts_canonical_before_custom" computerName="CESNIMDA" duration="00:00:00.0017139" startTime="2026-11-03T09:58:24.9816401+01:00" endTime="2026-11-03T09:58:24.9816402+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="89989a79-8646-4786-98ff-2586a5df4dfd" />
|
||||
<UnitTestResult executionId="4db9de59-fa05-4849-8161-8872dfb90319" testId="d6b62877-6631-5087-d82d-12d5d5053ffd" testName="JobTrackerApi.Tests.JobPipelineTests.IsProspect_false_for_post_application_stages(status: "Waiting")" computerName="CESNIMDA" duration="00:00:00.0000736" startTime="2026-11-03T09:58:24.9810020+01:00" endTime="2026-11-03T09:58:24.9810021+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4db9de59-fa05-4849-8161-8872dfb90319" />
|
||||
<UnitTestResult executionId="2199fbe3-3100-426e-925b-004bcc2ab878" testId="a75c8efc-b4a8-b8b5-b751-6fee6831ebf4" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "deleted")" computerName="CESNIMDA" duration="00:00:00.1315144" startTime="2026-11-03T09:58:27.8579356+01:00" endTime="2026-11-03T09:58:27.8579358+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="2199fbe3-3100-426e-925b-004bcc2ab878" />
|
||||
<UnitTestResult executionId="6a2a4747-82be-4335-9364-4e4193386cbf" testId="57a698a5-6de9-6958-20dc-c7755de3f68b" testName="JobTrackerApi.Tests.JobPipelineTests.IsProspect_true_for_pre_application_stages(status: "Saved")" computerName="CESNIMDA" duration="00:00:00.0000052" startTime="2026-11-03T09:58:24.9808579+01:00" endTime="2026-11-03T09:58:24.9808579+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="6a2a4747-82be-4335-9364-4e4193386cbf" />
|
||||
<UnitTestResult executionId="d0036c48-3d2c-41cb-8811-3dc7be1a884b" testId="aa73dc7d-d5b2-0b2a-eb67-8d429c6009f9" testName="JobTrackerApi.Tests.JobPipelineTests.IsProspect_false_for_custom_status" computerName="CESNIMDA" duration="00:00:00.0000484" startTime="2026-11-03T09:58:24.9823199+01:00" endTime="2026-11-03T09:58:24.9823199+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="d0036c48-3d2c-41cb-8811-3dc7be1a884b" />
|
||||
<UnitTestResult executionId="a62b456d-c46c-4416-b022-2de1690f7f31" testId="63a1c947-a202-ef7f-514d-09b47ec75ee2" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "search")" computerName="CESNIMDA" duration="00:00:00.1211936" startTime="2026-11-03T09:58:28.1994167+01:00" endTime="2026-11-03T09:58:28.1994171+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a62b456d-c46c-4416-b022-2de1690f7f31" />
|
||||
<UnitTestResult executionId="2e84145d-d8dd-49e2-8d20-db22d0419b01" testId="a4b61bd0-458f-a6f6-d0d7-20d06b4283af" testName="JobTrackerApi.Tests.JobPipelineTests.Declined_stays_rejected_and_does_not_become_withdrawn" computerName="CESNIMDA" duration="00:00:00.0000608" startTime="2026-11-03T09:58:24.9815990+01:00" endTime="2026-11-03T09:58:24.9815990+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="2e84145d-d8dd-49e2-8d20-db22d0419b01" />
|
||||
<UnitTestResult executionId="6bbee017-ea26-4da6-8ebd-c94abc000df9" testId="ad6db3d3-3274-632d-064b-de9627e5f5f7" testName="JobTrackerApi.Tests.JobApplicationsAppliedDateHistoryTests.Moving_back_to_a_prospect_stage_clears_the_date_but_records_it_as_history" computerName="CESNIMDA" duration="00:00:00.0035332" startTime="2026-11-03T09:58:25.9719611+01:00" endTime="2026-11-03T09:58:25.9719612+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="6bbee017-ea26-4da6-8ebd-c94abc000df9" />
|
||||
<UnitTestResult executionId="c4a15959-53d6-4855-a10d-2ecda79e6c72" testId="04b6a91e-07c1-4169-3675-8f74913a4edb" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_prospect_synonyms(input: "drafting", expected: "Preparing")" computerName="CESNIMDA" duration="00:00:00.0001570" startTime="2026-11-03T09:58:24.9607706+01:00" endTime="2026-11-03T09:58:24.9607706+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="c4a15959-53d6-4855-a10d-2ecda79e6c72" />
|
||||
<UnitTestResult executionId="954cf521-e570-44f1-8515-58b4d6ad2a0b" testId="f90c82d0-e11a-8b37-2b9a-b942922d486f" testName="JobTrackerApi.Tests.Rd21JobPersistenceTests.Stale_or_unversioned_snapshot_cannot_erase_an_acknowledged_job_edit(omitRevision: True)" computerName="CESNIMDA" duration="00:00:00.0966964" startTime="2026-11-03T09:58:26.6236400+01:00" endTime="2026-11-03T09:58:26.6236402+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="954cf521-e570-44f1-8515-58b4d6ad2a0b" />
|
||||
<UnitTestResult executionId="4373cb44-930f-47f0-a239-67de5f7cc70d" testId="039156c1-fc1d-b9d0-af77-bdb9f0cb7746" testName="JobTrackerApi.Tests.JobPipelineTests.IsProspect_true_for_pre_application_stages(status: "Interested")" computerName="CESNIMDA" duration="00:00:00.0001332" startTime="2026-11-03T09:58:24.9807884+01:00" endTime="2026-11-03T09:58:24.9807885+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4373cb44-930f-47f0-a239-67de5f7cc70d" />
|
||||
<UnitTestResult executionId="56285312-8a84-43a8-a1b0-a9c3af990c92" testId="f03192f4-c647-0827-6154-dc73478169bc" testName="JobTrackerApi.Tests.ApplicationWorkspaceTests.Next_step_walks_cv_then_cover_letter_then_documents" computerName="CESNIMDA" duration="00:00:00.0138627" startTime="2026-11-03T09:58:26.1821456+01:00" endTime="2026-11-03T09:58:26.1821458+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="56285312-8a84-43a8-a1b0-a9c3af990c92" />
|
||||
<UnitTestResult executionId="5864862d-4799-4fb7-8e41-f44e34a60ac3" testId="ee63d0f0-d333-caf4-fec2-d43f36690893" testName="JobTrackerApi.Tests.JobPipelineTests.SyncAppliedDate_preserves_an_existing_applied_date" computerName="CESNIMDA" duration="00:00:00.0000952" startTime="2026-11-03T09:58:24.9822681+01:00" endTime="2026-11-03T09:58:24.9822681+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="5864862d-4799-4fb7-8e41-f44e34a60ac3" />
|
||||
<UnitTestResult executionId="6ff8321a-9383-49dc-8419-523322d3b0fd" testId="18c0a064-21ea-b6d7-669e-31fbbab278d0" testName="JobTrackerApi.Tests.JobPipelineTests.IsCanonical_only_true_for_known_stages" computerName="CESNIMDA" duration="00:00:00.0000527" startTime="2026-11-03T09:58:24.9817066+01:00" endTime="2026-11-03T09:58:24.9817066+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="6ff8321a-9383-49dc-8419-523322d3b0fd" />
|
||||
<UnitTestResult executionId="78033441-0d2a-4966-8453-6ffd5c2ec353" testId="1fe222ac-3430-7778-716f-49f037f5db90" testName="JobTrackerApi.Tests.JobPipelineTests.Withdrawn_is_closed_and_not_a_prospect" computerName="CESNIMDA" duration="00:00:00.0001719" startTime="2026-11-03T09:58:24.9809088+01:00" endTime="2026-11-03T09:58:24.9809088+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="78033441-0d2a-4966-8453-6ffd5c2ec353" />
|
||||
<UnitTestResult executionId="682831ba-e2f0-4b3b-ab3a-ab4878822eba" testId="4516ef4e-4e78-4ff4-67c2-32dede6ca0b5" testName="JobTrackerApi.Tests.ApplicationWorkspaceTests.Overview_surfaces_the_attached_cv_variant" computerName="CESNIMDA" duration="00:00:00.0401639" startTime="2026-11-03T09:58:26.2250983+01:00" endTime="2026-11-03T09:58:26.2250984+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="682831ba-e2f0-4b3b-ab3a-ab4878822eba" />
|
||||
<UnitTestResult executionId="59ca53c2-ad52-44bd-863d-c73925b106cb" testId="5380f9af-24f7-74d6-741d-735898357f30" testName="JobTrackerApi.Tests.Rd21JobPersistenceTests.Related_text_save_cannot_silently_replace_a_newer_acknowledged_draft(coverLetter: True)" computerName="CESNIMDA" duration="00:00:00.1269782" startTime="2026-11-03T09:58:26.5268778+01:00" endTime="2026-11-03T09:58:26.5268779+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="59ca53c2-ad52-44bd-863d-c73925b106cb" />
|
||||
<UnitTestResult executionId="8ec26e8a-184a-42c5-9e8c-83c7be40b72e" testId="acfd6c10-a6e7-650f-fcfc-2184cb36ce6c" testName="JobTrackerApi.Tests.JobApplicationsAppliedDateHistoryTests.Moving_between_post_application_stages_records_no_cleared_date_event" computerName="CESNIMDA" duration="00:00:00.0196952" startTime="2026-11-03T09:58:25.9682927+01:00" endTime="2026-11-03T09:58:25.9682930+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="8ec26e8a-184a-42c5-9e8c-83c7be40b72e" />
|
||||
<UnitTestResult executionId="aa059a99-2ae4-4889-a1f0-c7dc903b2af8" testId="efda68b9-0990-68aa-2731-c81591e14915" testName="JobTrackerApi.Tests.JobPipelineTests.IsProspect_false_for_post_application_stages(status: "Applied")" computerName="CESNIMDA" duration="00:00:00.0000015" startTime="2026-11-03T09:58:24.9814859+01:00" endTime="2026-11-03T09:58:24.9814859+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="aa059a99-2ae4-4889-a1f0-c7dc903b2af8" />
|
||||
<UnitTestResult executionId="eecb6789-b633-420a-990b-fee838855c12" testId="be3a9348-61af-0f21-1ace-cd3662be8c7d" testName="JobTrackerApi.Tests.JobApplicationsAuthorizationTests.GetStatusSuggestion_returns_not_found_for_other_users_job" computerName="CESNIMDA" duration="00:00:00.9858070" startTime="2026-11-03T09:58:25.9304593+01:00" endTime="2026-11-03T09:58:25.9304595+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="eecb6789-b633-420a-990b-fee838855c12" />
|
||||
<UnitTestResult executionId="844532d0-1f93-4630-a4c0-e224d3de655e" testId="be18c4bc-808f-f2b0-96d7-e2ce8399ca93" testName="JobTrackerApi.Tests.JobPipelineTests.SyncAppliedDate_returns_the_cleared_date_so_callers_can_record_it" computerName="CESNIMDA" duration="00:00:00.0002113" startTime="2026-11-03T09:58:24.9816762+01:00" endTime="2026-11-03T09:58:24.9816762+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="844532d0-1f93-4630-a4c0-e224d3de655e" />
|
||||
<UnitTestResult executionId="1d97f890-2656-4e50-a342-3775572104b3" testId="83ef356d-f2e0-8bdf-a61e-0b4e60c6f28f" testName="JobTrackerApi.Tests.ApplicationWorkspaceTests.Next_step_reaches_interview_prep_once_preparation_is_done" computerName="CESNIMDA" duration="00:00:00.0590305" startTime="2026-11-03T09:58:26.1425784+01:00" endTime="2026-11-03T09:58:26.1425784+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1d97f890-2656-4e50-a342-3775572104b3" />
|
||||
<UnitTestResult executionId="5e06269c-d594-4856-a288-059a77ec5c97" testId="dae734ee-2a33-1fc8-6a63-7903ea33ddd8" testName="JobTrackerApi.Tests.JobPipelineTests.SyncAppliedDate_stamps_when_a_prospect_becomes_applied" computerName="CESNIMDA" duration="00:00:00.0024847" startTime="2026-11-03T09:58:24.9815555+01:00" endTime="2026-11-03T09:58:24.9815555+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="5e06269c-d594-4856-a288-059a77ec5c97" />
|
||||
<UnitTestResult executionId="fc61ca22-4bc4-41db-a7c9-59f60bcd6a39" testId="24673f9c-c625-5907-c9fe-90e92f71c82b" testName="JobTrackerApi.Tests.JobPipelineTests.SyncAppliedDate_clears_the_applied_date_for_a_prospect" computerName="CESNIMDA" duration="00:00:00.0043099" startTime="2026-11-03T09:58:24.9508283+01:00" endTime="2026-11-03T09:58:24.9508423+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="fc61ca22-4bc4-41db-a7c9-59f60bcd6a39" />
|
||||
<UnitTestResult executionId="ff70f809-ac28-457c-be21-957a7cb28a1e" testId="302e0510-ff7e-9bbc-0509-d2d321512ccd" testName="JobTrackerApi.Tests.Rd21JobPersistenceTests.Failed_job_transaction_cannot_acknowledge_or_leave_partial_data_for_a_later_save" computerName="CESNIMDA" duration="00:00:01.3461216" startTime="2026-11-03T09:58:26.2907075+01:00" endTime="2026-11-03T09:58:26.2907077+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="ff70f809-ac28-457c-be21-957a7cb28a1e" />
|
||||
<UnitTestResult executionId="b2fbd550-c60f-4b1a-9210-f29ebf0070a2" testId="fae8f2c2-b6a0-992e-6298-8a46cade54ce" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_casing_and_synonyms(input: "declined", expected: "Rejected")" computerName="CESNIMDA" duration="00:00:00.0000015" startTime="2026-11-03T09:58:24.9795098+01:00" endTime="2026-11-03T09:58:24.9795098+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b2fbd550-c60f-4b1a-9210-f29ebf0070a2" />
|
||||
<UnitTestResult executionId="41a5c39c-38a9-4519-8818-1b38adca8ce5" testId="dffc73da-e081-96a2-f069-ca32e29829dd" testName="JobTrackerApi.Tests.Rd21JobPersistenceTests.Related_text_save_cannot_silently_replace_a_newer_acknowledged_draft(coverLetter: False)" computerName="CESNIMDA" duration="00:00:00.1090351" startTime="2026-11-03T09:58:26.4000646+01:00" endTime="2026-11-03T09:58:26.4000650+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="41a5c39c-38a9-4519-8818-1b38adca8ce5" />
|
||||
<UnitTestResult executionId="e3a36284-b803-4b08-9b1f-1333bf94e830" testId="52749208-d674-a526-3a09-fbe999238c6e" testName="JobTrackerApi.Tests.JobApplicationsAuthorizationTests.Job_choices_searches_all_owned_rows_without_leaking_another_tenant" computerName="CESNIMDA" duration="00:00:00.0613266" startTime="2026-11-03T09:58:26.0744060+01:00" endTime="2026-11-03T09:58:26.0744061+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="e3a36284-b803-4b08-9b1f-1333bf94e830" />
|
||||
<UnitTestResult executionId="4e872c59-0ed2-4b89-8696-f39332d60d05" testId="4d2ee4af-ed68-f3cf-b09e-1e844b21d7e6" testName="JobTrackerApi.Tests.JobApplicationsAppliedDateHistoryTests.Withdrawing_keeps_the_applied_date" computerName="CESNIMDA" duration="00:00:00.0022187" startTime="2026-11-03T09:58:25.9485148+01:00" endTime="2026-11-03T09:58:25.9485149+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4e872c59-0ed2-4b89-8696-f39332d60d05" />
|
||||
<UnitTestResult executionId="ffbaaa99-f815-4d51-8449-716ea7675130" testId="e8f60c21-47e6-bcbc-dace-d55c71c5cfe5" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_casing_and_synonyms(input: "no response", expected: "Ghosted")" computerName="CESNIMDA" duration="00:00:00.0000025" startTime="2026-11-03T09:58:24.9795346+01:00" endTime="2026-11-03T09:58:24.9795347+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="ffbaaa99-f815-4d51-8449-716ea7675130" />
|
||||
<UnitTestResult executionId="6d7b0ccd-da2d-435e-a3fe-506e8e9acb9a" testId="7f3a3170-cb7c-f498-52ea-42a485bd7f4a" testName="JobTrackerApi.Tests.Rd21JobPersistenceTests.Structured_tailored_cv_snapshot_cannot_replace_a_newer_approved_document" computerName="CESNIMDA" duration="00:00:00.1393174" startTime="2026-11-03T09:58:27.0442738+01:00" endTime="2026-11-03T09:58:27.0442740+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="6d7b0ccd-da2d-435e-a3fe-506e8e9acb9a" />
|
||||
<UnitTestResult executionId="8e514a42-78eb-4f1e-b85d-61c80699c592" testId="49ff5b0d-33d2-6406-b869-37c0901cece5" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_preserves_unknown_custom_status" computerName="CESNIMDA" duration="00:00:00.0000443" startTime="2026-11-03T09:58:24.9809440+01:00" endTime="2026-11-03T09:58:24.9809440+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="8e514a42-78eb-4f1e-b85d-61c80699c592" />
|
||||
<UnitTestResult executionId="07c0f875-917e-4490-bbf6-f482be82d9b4" testId="f560e8f1-1886-feb5-979c-a0a10ab78e21" testName="JobTrackerApi.Tests.JobApplicationsAuthorizationTests.GetHistory_returns_not_found_for_other_users_job" computerName="CESNIMDA" duration="00:00:00.0080833" startTime="2026-11-03T09:58:26.0129937+01:00" endTime="2026-11-03T09:58:26.0129939+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="07c0f875-917e-4490-bbf6-f482be82d9b4" />
|
||||
<UnitTestResult executionId="35fdba6f-5e03-412d-bbc0-64605d0b8beb" testId="347211ec-a553-9c08-b520-5d138aabe092" testName="JobTrackerApi.Tests.ApplicationWorkspaceTests.Overview_counts_documents_and_ai_history" computerName="CESNIMDA" duration="00:00:01.1255449" startTime="2026-11-03T09:58:26.0702592+01:00" endTime="2026-11-03T09:58:26.0702593+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="35fdba6f-5e03-412d-bbc0-64605d0b8beb" />
|
||||
<UnitTestResult executionId="5eeaf2a3-b000-4fb8-9c74-ebfdbf426c22" testId="753b2f7f-66eb-121b-5cc2-5d92b1eeff00" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_empty_becomes_default(input: "")" computerName="CESNIMDA" duration="00:00:00.0000038" startTime="2026-11-03T09:58:24.9822398+01:00" endTime="2026-11-03T09:58:24.9822399+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="5eeaf2a3-b000-4fb8-9c74-ebfdbf426c22" />
|
||||
<UnitTestResult executionId="4b8ba082-f62e-471f-9f19-0654a74725d5" testId="841078a2-8b24-697e-877b-ad48c294434b" testName="JobTrackerApi.Tests.ApplicationWorkspaceTests.Another_users_application_is_not_visible" computerName="CESNIMDA" duration="00:00:00.0026775" startTime="2026-11-03T09:58:26.1848670+01:00" endTime="2026-11-03T09:58:26.1848671+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4b8ba082-f62e-471f-9f19-0654a74725d5" />
|
||||
<UnitTestResult executionId="f0e5a9a3-6cd3-4b26-867e-60ee18fa815b" testId="6b15f128-8f37-aebf-b047-770cc9683025" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_casing_and_synonyms(input: " Offer ", expected: "Offer")" computerName="CESNIMDA" duration="00:00:00.0000071" startTime="2026-11-03T09:58:24.9795907+01:00" endTime="2026-11-03T09:58:24.9795909+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="f0e5a9a3-6cd3-4b26-867e-60ee18fa815b" />
|
||||
<UnitTestResult executionId="8e4b7634-b696-4326-8dad-0744f8d1caa1" testId="e18ef2d2-eb0b-ae3e-a7d2-d55031661872" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_casing_and_synonyms(input: "applied", expected: "Applied")" computerName="CESNIMDA" duration="00:00:00.0001650" startTime="2026-11-03T09:58:24.9794623+01:00" endTime="2026-11-03T09:58:24.9794623+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="8e4b7634-b696-4326-8dad-0744f8d1caa1" />
|
||||
<UnitTestResult executionId="ad72de9c-1386-4da0-94c3-b8bedc5bada7" testId="da3ba433-d08c-949d-2407-9f181bfcd5be" testName="JobTrackerApi.Tests.JobPipelineTests.Offer_is_success_for_analytics_but_groups_under_active_for_the_board" computerName="CESNIMDA" duration="00:00:00.0033423" startTime="2026-11-03T09:58:24.9828249+01:00" endTime="2026-11-03T09:58:24.9828249+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="ad72de9c-1386-4da0-94c3-b8bedc5bada7" />
|
||||
<UnitTestResult executionId="3be6a4a0-df83-45d1-876f-541992c5bba7" testId="fa230569-7a1a-88d4-df2f-dcf0ac9a43c2" testName="JobTrackerApi.Tests.JobPipelineTests.IsProspect_false_for_post_application_stages(status: "Offer")" computerName="CESNIMDA" duration="00:00:00.0000015" startTime="2026-11-03T09:58:24.9815066+01:00" endTime="2026-11-03T09:58:24.9815066+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="3be6a4a0-df83-45d1-876f-541992c5bba7" />
|
||||
<UnitTestResult executionId="ae07b246-2d25-4640-9422-d84f303ec46b" testId="57096417-b25e-42cc-c6aa-1bf95fed407a" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "follow-up")" computerName="CESNIMDA" duration="00:00:00.1118232" startTime="2026-11-03T09:58:27.0744042+01:00" endTime="2026-11-03T09:58:27.0744044+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="ae07b246-2d25-4640-9422-d84f303ec46b" />
|
||||
<UnitTestResult executionId="0d90d7be-c7d0-4c5b-9bdb-e1806897b46f" testId="84f76a74-2082-ce72-9363-22dca54580d2" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "combined")" computerName="CESNIMDA" duration="00:00:00.1534295" startTime="2026-11-03T09:58:28.3528148+01:00" endTime="2026-11-03T09:58:28.3528150+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0d90d7be-c7d0-4c5b-9bdb-e1806897b46f" />
|
||||
<UnitTestResult executionId="b15224c2-c8d6-4348-9197-6c39bbfd141b" testId="bd4400e7-7088-b557-b0a5-1406b157fcdd" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_casing_and_synonyms(input: "interviews", expected: "Interview")" computerName="CESNIMDA" duration="00:00:00.0000013" startTime="2026-11-03T09:58:24.9795608+01:00" endTime="2026-11-03T09:58:24.9795609+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b15224c2-c8d6-4348-9197-6c39bbfd141b" />
|
||||
<UnitTestResult executionId="f98c8517-fa5b-4c5b-986b-9c7afaa89819" testId="7830b0d3-f336-e0a0-f0bf-68394ab80c34" testName="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_withdrawn_synonyms(input: "withdrew", expected: "Withdrawn")" computerName="CESNIMDA" duration="00:00:00.0000491" startTime="2026-11-03T09:58:24.9817361+01:00" endTime="2026-11-03T09:58:24.9817361+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="f98c8517-fa5b-4c5b-986b-9c7afaa89819" />
|
||||
<UnitTestResult executionId="f8d88fe4-605d-4154-91f3-d1bbebb85c8d" testId="ebd693de-f8c6-6887-7e1c-635cc17733a8" testName="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "all")" computerName="CESNIMDA" duration="00:00:00.1476757" startTime="2026-11-03T09:58:26.5973236+01:00" endTime="2026-11-03T09:58:26.5973237+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="f8d88fe4-605d-4154-91f3-d1bbebb85c8d" />
|
||||
</Results>
|
||||
<TestDefinitions>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_empty_becomes_default(input: "")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="753b2f7f-66eb-121b-5cc2-5d92b1eeff00">
|
||||
<Execution id="5eeaf2a3-b000-4fb8-9c74-ebfdbf426c22" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_empty_becomes_default" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Board_groups_match_the_agreed_layout" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="04d26b3d-0337-8e69-a468-9144eae6f23a">
|
||||
<Execution id="229d818c-f6d6-4270-945a-b6b985e19fcd" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Board_groups_match_the_agreed_layout" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobApplicationsAuthorizationTests.GetHistory_returns_not_found_for_other_users_job" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="f560e8f1-1886-feb5-979c-a0a10ab78e21">
|
||||
<Execution id="07c0f875-917e-4490-bbf6-f482be82d9b4" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobApplicationsAuthorizationTests" name="GetHistory_returns_not_found_for_other_users_job" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationWorkspaceTests.Next_step_reaches_interview_prep_once_preparation_is_done" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="83ef356d-f2e0-8bdf-a61e-0b4e60c6f28f">
|
||||
<Execution id="1d97f890-2656-4e50-a342-3775572104b3" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationWorkspaceTests" name="Next_step_reaches_interview_prep_once_preparation_is_done" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationWorkspaceTests.Next_step_walks_cv_then_cover_letter_then_documents" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="f03192f4-c647-0827-6154-dc73478169bc">
|
||||
<Execution id="56285312-8a84-43a8-a1b0-a9c3af990c92" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationWorkspaceTests" name="Next_step_walks_cv_then_cover_letter_then_documents" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "interview")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="243583b0-ea8a-0c2d-b704-f9c081502a8c">
|
||||
<Execution id="1f475ccb-5169-4cf7-948f-10f70c02505d" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.IsProspect_false_for_post_application_stages(status: "Offer")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="fa230569-7a1a-88d4-df2f-dcf0ac9a43c2">
|
||||
<Execution id="3be6a4a0-df83-45d1-876f-541992c5bba7" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="IsProspect_false_for_post_application_stages" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "notes")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="3cd2fef8-dfa7-1464-b6a9-026485c0bd9e">
|
||||
<Execution id="8434e059-c250-445e-ac3e-dd844fc52edf" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.Rd21JobPersistenceTests.Related_text_save_cannot_silently_replace_a_newer_acknowledged_draft(coverLetter: True)" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="5380f9af-24f7-74d6-741d-735898357f30">
|
||||
<Execution id="59ca53c2-ad52-44bd-863d-c73925b106cb" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.Rd21JobPersistenceTests" name="Related_text_save_cannot_silently_replace_a_newer_acknowledged_draft" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationWorkspaceTests.Overview_reports_checklist_progress" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="0ce1b3ae-aba6-2d59-4be9-377c6d0a68a6">
|
||||
<Execution id="7bde4546-deb4-4231-b557-1920fb3adf7b" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationWorkspaceTests" name="Overview_reports_checklist_progress" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "combined")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="84f76a74-2082-ce72-9363-22dca54580d2">
|
||||
<Execution id="0d90d7be-c7d0-4c5b-9bdb-e1806897b46f" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "deleted")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="a75c8efc-b4a8-b8b5-b751-6fee6831ebf4">
|
||||
<Execution id="2199fbe3-3100-426e-925b-004bcc2ab878" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.IsCanonical_only_true_for_known_stages" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="18c0a064-21ea-b6d7-669e-31fbbab278d0">
|
||||
<Execution id="6ff8321a-9383-49dc-8419-523322d3b0fd" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="IsCanonical_only_true_for_known_stages" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_withdrawn_synonyms(input: "cancelled", expected: "Withdrawn")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="e3216f8a-8510-078f-dd29-645ff395558d">
|
||||
<Execution id="f276ab6e-8f53-4f57-b69f-89cb8866aef1" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_withdrawn_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.IsProspect_false_for_post_application_stages(status: "Ghosted")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="b5fe2723-67af-5c72-78d9-28239b4d24c5">
|
||||
<Execution id="40f0f8ac-58ca-4a1c-b7af-6dd598f15c2c" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="IsProspect_false_for_post_application_stages" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "include-deleted")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="1ece7e57-e724-aa88-aaa8-6eccd169f3a6">
|
||||
<Execution id="fffe549f-449e-49f5-b8ee-78e31ece8480" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Withdrawn_is_closed_and_not_a_prospect" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="1fe222ac-3430-7778-716f-49f037f5db90">
|
||||
<Execution id="78033441-0d2a-4966-8453-6ffd5c2ec353" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Withdrawn_is_closed_and_not_a_prospect" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "search")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="63a1c947-a202-ef7f-514d-09b47ec75ee2">
|
||||
<Execution id="a62b456d-c46c-4416-b022-2de1690f7f31" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_empty_becomes_default(input: null)" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="233c4cb5-66c0-2385-528a-c96b5760f3a5">
|
||||
<Execution id="4b6108e1-3385-461a-aea9-c890115490ca" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_empty_becomes_default" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.SyncAppliedDate_clears_the_applied_date_for_a_prospect" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="24673f9c-c625-5907-c9fe-90e92f71c82b">
|
||||
<Execution id="fc61ca22-4bc4-41db-a7c9-59f60bcd6a39" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="SyncAppliedDate_clears_the_applied_date_for_a_prospect" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_prospect_synonyms(input: "shortlisted", expected: "Interested")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="7e6f3ff6-0104-2ed9-ebe7-cc914c075a14">
|
||||
<Execution id="59f599e3-a853-4ae9-95f8-5d9e2e6428ef" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_prospect_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_casing_and_synonyms(input: "no response", expected: "Ghosted")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="e8f60c21-47e6-bcbc-dace-d55c71c5cfe5">
|
||||
<Execution id="ffbaaa99-f815-4d51-8449-716ea7675130" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_casing_and_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_withdrawn_synonyms(input: "withdrew", expected: "Withdrawn")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="7830b0d3-f336-e0a0-f0bf-68394ab80c34">
|
||||
<Execution id="f98c8517-fa5b-4c5b-986b-9c7afaa89819" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_withdrawn_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationWorkspaceTests.Overview_surfaces_the_attached_cv_variant" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="4516ef4e-4e78-4ff4-67c2-32dede6ca0b5">
|
||||
<Execution id="682831ba-e2f0-4b3b-ab3a-ab4878822eba" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationWorkspaceTests" name="Overview_surfaces_the_attached_cv_variant" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationWorkspaceTests.Next_step_asks_for_the_advert_when_there_is_no_description" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="fd61245f-a8b2-f146-de3a-31d80c4004ff">
|
||||
<Execution id="382cb0f8-68cd-4bd5-8dfc-b49a64020ee2" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationWorkspaceTests" name="Next_step_asks_for_the_advert_when_there_is_no_description" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationWorkspaceTests.Overview_counts_documents_and_ai_history" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="347211ec-a553-9c08-b520-5d138aabe092">
|
||||
<Execution id="35fdba6f-5e03-412d-bbc0-64605d0b8beb" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationWorkspaceTests" name="Overview_counts_documents_and_ai_history" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.Rd21JobPersistenceTests.Related_text_save_cannot_silently_replace_a_newer_acknowledged_draft(coverLetter: False)" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="dffc73da-e081-96a2-f069-ca32e29829dd">
|
||||
<Execution id="41a5c39c-38a9-4519-8818-1b38adca8ce5" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.Rd21JobPersistenceTests" name="Related_text_save_cannot_silently_replace_a_newer_acknowledged_draft" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_casing_and_synonyms(input: "interviews", expected: "Interview")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="bd4400e7-7088-b557-b0a5-1406b157fcdd">
|
||||
<Execution id="b15224c2-c8d6-4348-9197-6c39bbfd141b" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_casing_and_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_empty_becomes_default(input: " ")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="807b4ecf-7901-9e43-fb43-71e8fb58731f">
|
||||
<Execution id="b1e757cb-3ad8-4705-9b96-d302a429a298" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_empty_becomes_default" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_prospect_synonyms(input: "drafting", expected: "Preparing")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="04b6a91e-07c1-4169-3675-8f74913a4edb">
|
||||
<Execution id="c4a15959-53d6-4855-a10d-2ecda79e6c72" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_prospect_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.IsProspect_false_for_post_application_stages(status: "Rejected")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="27fe3229-574e-f5a8-e0cf-4e97fdcbe501">
|
||||
<Execution id="17279912-eb85-4ec6-8913-f5e000f39691" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="IsProspect_false_for_post_application_stages" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_prospect_synonyms(input: "bookmarked", expected: "Saved")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="406bfb2f-20b7-15bd-2069-50eef30dff88">
|
||||
<Execution id="7bb788e6-0268-410f-8b2f-2c646f4fd423" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_prospect_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.IsProspect_false_for_post_application_stages(status: "Applied")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="efda68b9-0990-68aa-2731-c81591e14915">
|
||||
<Execution id="aa059a99-2ae4-4889-a1f0-c7dc903b2af8" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="IsProspect_false_for_post_application_stages" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobApplicationsAuthorizationTests.GetStatusSuggestion_returns_not_found_for_other_users_job" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="be3a9348-61af-0f21-1ace-cd3662be8c7d">
|
||||
<Execution id="eecb6789-b633-420a-990b-fee838855c12" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobApplicationsAuthorizationTests" name="GetStatusSuggestion_returns_not_found_for_other_users_job" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.Rd21JobPersistenceTests.Stale_or_unversioned_snapshot_cannot_erase_an_acknowledged_job_edit(omitRevision: False)" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="5f47dc74-c7bb-6b08-131d-55a4f7abbf36">
|
||||
<Execution id="04288250-5e7d-47ff-8c28-31c7d76ad0be" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.Rd21JobPersistenceTests" name="Stale_or_unversioned_snapshot_cannot_erase_an_acknowledged_job_edit" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Ghosted_and_waiting_are_still_canonical_stages" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="4bf5ede1-a4b1-f8e7-801c-ca499e8d57c9">
|
||||
<Execution id="1b422a5c-afbc-47e5-8085-f9b0b7d51a5a" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Ghosted_and_waiting_are_still_canonical_stages" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "correspondence")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="9ca882ec-2b75-a26b-1420-961f41c85538">
|
||||
<Execution id="32f51ce0-8242-46b5-9e72-c980a36a0897" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Prospect_stages_sort_before_applied" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="cb349326-9fd9-4626-f55a-28cbe213bda7">
|
||||
<Execution id="6a681a52-e5fe-4003-8fb6-11fab5725dd7" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Prospect_stages_sort_before_applied" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationWorkspaceTests.Overview_returns_recent_activity_newest_first" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="8828413a-f54a-42c7-8065-17e638ec72fc">
|
||||
<Execution id="218f6bec-56ab-42a3-bf21-a28325e98484" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationWorkspaceTests" name="Overview_returns_recent_activity_newest_first" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "custom")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="e4227296-3fbb-0af0-0d38-a3229e8a3931">
|
||||
<Execution id="8de28afd-87a1-4db8-be7f-35680fbcf918" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobApplicationsAppliedDateHistoryTests.Moving_between_post_application_stages_records_no_cleared_date_event" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="acfd6c10-a6e7-650f-fcfc-2184cb36ce6c">
|
||||
<Execution id="8ec26e8a-184a-42c5-9e8c-83c7be40b72e" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobApplicationsAppliedDateHistoryTests" name="Moving_between_post_application_stages_records_no_cleared_date_event" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.SyncAppliedDate_returns_the_cleared_date_so_callers_can_record_it" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="be18c4bc-808f-f2b0-96d7-e2ce8399ca93">
|
||||
<Execution id="844532d0-1f93-4630-a4c0-e224d3de655e" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="SyncAppliedDate_returns_the_cleared_date_so_callers_can_record_it" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobApplicationsAuthorizationTests.Job_choices_searches_all_owned_rows_without_leaking_another_tenant" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="52749208-d674-a526-3a09-fbe999238c6e">
|
||||
<Execution id="e3a36284-b803-4b08-9b1f-1333bf94e830" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobApplicationsAuthorizationTests" name="Job_choices_searches_all_owned_rows_without_leaking_another_tenant" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.Rd21JobPersistenceTests.Write_that_overlaps_a_delayed_save_wins_without_partial_events_or_opportunity_changes" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="6b825f2a-013f-92ef-ef09-fe9860925384">
|
||||
<Execution id="6f17a184-1b95-4608-9cfd-86ea96323afd" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.Rd21JobPersistenceTests" name="Write_that_overlaps_a_delayed_save_wins_without_partial_events_or_opportunity_changes" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationWorkspaceTests.Overview_aggregates_the_application_without_copying_career_data" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="57f0349f-4705-96e4-450d-2772916d82e0">
|
||||
<Execution id="3127c9b8-68c5-44be-88a8-9f2ed69e2784" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationWorkspaceTests" name="Overview_aggregates_the_application_without_copying_career_data" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobApplicationsAppliedDateHistoryTests.Re_applying_after_a_backwards_move_stamps_a_fresh_date_and_leaves_history_intact" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="8aa9763e-1d8b-1ccb-f8b0-86c9dacfaf8b">
|
||||
<Execution id="35f72966-5bcc-4b7d-aa4d-df5349171302" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobApplicationsAppliedDateHistoryTests" name="Re_applying_after_a_backwards_move_stamps_a_fresh_date_and_leaves_history_intact" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_casing_and_synonyms(input: "Interviewing", expected: "Interview")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="d9300062-418d-1ccf-2cc7-685be008ce42">
|
||||
<Execution id="21fe8a22-43b4-437d-ac0e-309086e8b52e" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_casing_and_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_prospect_synonyms(input: "to apply", expected: "Saved")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="d25a3ef0-b042-1446-83ff-7d94d249fe2f">
|
||||
<Execution id="48616e06-0dd1-4fa7-a937-0b9f92abfe21" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_prospect_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.SyncAppliedDate_returns_null_when_nothing_was_cleared" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="3774c215-01a0-fd17-ff44-158de1e6105c">
|
||||
<Execution id="03b927be-3840-4df0-9833-7a5e7845ca08" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="SyncAppliedDate_returns_null_when_nothing_was_cleared" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Offer_is_success_for_analytics_but_groups_under_active_for_the_board" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="da3ba433-d08c-949d-2407-9f181bfcd5be">
|
||||
<Execution id="ad72de9c-1386-4da0-94c3-b8bedc5bada7" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Offer_is_success_for_analytics_but_groups_under_active_for_the_board" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_casing_and_synonyms(input: "APPLIED", expected: "Applied")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="b7972ccc-92fa-2f26-8dd4-06b22977c9bb">
|
||||
<Execution id="a39b54d4-9415-4129-9946-7f3619fd7916" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_casing_and_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "standard")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="5b8ea46d-ee44-6470-1381-3f43ab773db6">
|
||||
<Execution id="6b1cbd7c-0e2d-4d42-8141-a72b7bc88fbd" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.Rd21JobPersistenceTests.Failed_job_transaction_cannot_acknowledge_or_leave_partial_data_for_a_later_save" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="302e0510-ff7e-9bbc-0509-d2d321512ccd">
|
||||
<Execution id="ff70f809-ac28-457c-be21-957a7cb28a1e" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.Rd21JobPersistenceTests" name="Failed_job_transaction_cannot_acknowledge_or_leave_partial_data_for_a_later_save" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobApplicationsAppliedDateHistoryTests.Withdrawing_keeps_the_applied_date" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="4d2ee4af-ed68-f3cf-b09e-1e844b21d7e6">
|
||||
<Execution id="4e872c59-0ed2-4b89-8696-f39332d60d05" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobApplicationsAppliedDateHistoryTests" name="Withdrawing_keeps_the_applied_date" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.IsProspect_true_for_pre_application_stages(status: "Saved")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="57a698a5-6de9-6958-20dc-c7755de3f68b">
|
||||
<Execution id="6a2a4747-82be-4335-9364-4e4193386cbf" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="IsProspect_true_for_pre_application_stages" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "location")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="ee747285-6574-0968-3d1b-5b4086b49e77">
|
||||
<Execution id="22279e58-5d23-4159-95c2-1ec20e36cd47" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_prospect_synonyms(input: "in preparation", expected: "Preparing")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="6ba5666c-74e4-b81b-103e-21d383c8c6e4">
|
||||
<Execution id="141e205c-c74d-4c32-be0e-54216ffe6766" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_prospect_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "company")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="a8aff3ef-f27a-a882-1aa1-ba9c663cf4ce">
|
||||
<Execution id="4f676192-2e82-49c7-8821-b22b5282d4ea" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_withdrawn_synonyms(input: "canceled", expected: "Withdrawn")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="694c474d-1ea7-4388-7133-bc8d0d30f684">
|
||||
<Execution id="26d4bf01-2abd-42eb-8e7f-3763f6de6b15" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_withdrawn_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Declined_stays_rejected_and_does_not_become_withdrawn" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="a4b61bd0-458f-a6f6-d0d7-20d06b4283af">
|
||||
<Execution id="2e84145d-d8dd-49e2-8d20-db22d0419b01" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Declined_stays_rejected_and_does_not_become_withdrawn" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationWorkspaceTests.Overview_separates_application_answers_from_human_notes" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="d4f830c4-a93f-761b-785c-6b1752a42000">
|
||||
<Execution id="98160d95-c0e6-404e-8aea-54975f544627" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationWorkspaceTests" name="Overview_separates_application_answers_from_human_notes" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.DaysSince_is_null_without_an_applied_date" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="c390dfba-f9a3-46a7-1677-20786cfc5d66">
|
||||
<Execution id="a1ee7d2c-4aa3-44e5-b21d-115d2b10f07d" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="DaysSince_is_null_without_an_applied_date" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.Rd21JobPersistenceTests.Stale_or_unversioned_snapshot_cannot_erase_an_acknowledged_job_edit(omitRevision: True)" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="f90c82d0-e11a-8b37-2b9a-b942922d486f">
|
||||
<Execution id="954cf521-e570-44f1-8515-58b4d6ad2a0b" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.Rd21JobPersistenceTests" name="Stale_or_unversioned_snapshot_cannot_erase_an_acknowledged_job_edit" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.IsProspect_false_for_custom_status" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="aa73dc7d-d5b2-0b2a-eb67-8d429c6009f9">
|
||||
<Execution id="d0036c48-3d2c-41cb-8811-3dc7be1a884b" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="IsProspect_false_for_custom_status" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "follow-up")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="57096417-b25e-42cc-c6aa-1bf95fed407a">
|
||||
<Execution id="ae07b246-2d25-4640-9422-d84f303ec46b" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.SyncAppliedDate_preserves_an_existing_applied_date" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="ee63d0f0-d333-caf4-fec2-d43f36690893">
|
||||
<Execution id="5864862d-4799-4fb7-8e41-f44e34a60ac3" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="SyncAppliedDate_preserves_an_existing_applied_date" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_casing_and_synonyms(input: "applied", expected: "Applied")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="e18ef2d2-eb0b-ae3e-a7d2-d55031661872">
|
||||
<Execution id="8e4b7634-b696-4326-8dad-0744f8d1caa1" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_casing_and_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.IsProspect_true_for_pre_application_stages(status: "Interested")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="039156c1-fc1d-b9d0-af77-bdb9f0cb7746">
|
||||
<Execution id="4373cb44-930f-47f0-a239-67de5f7cc70d" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="IsProspect_true_for_pre_application_stages" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.IsProspect_false_for_post_application_stages(status: "Waiting")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="d6b62877-6631-5087-d82d-12d5d5053ffd">
|
||||
<Execution id="4db9de59-fa05-4849-8161-8872dfb90319" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="IsProspect_false_for_post_application_stages" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_preserves_unknown_custom_status" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="49ff5b0d-33d2-6406-b869-37c0901cece5">
|
||||
<Execution id="8e514a42-78eb-4f1e-b85d-61c80699c592" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_preserves_unknown_custom_status" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_casing_and_synonyms(input: " Offer ", expected: "Offer")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="6b15f128-8f37-aebf-b047-770cc9683025">
|
||||
<Execution id="f0e5a9a3-6cd3-4b26-867e-60ee18fa815b" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_casing_and_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.Rd21JobPersistenceTests.Versioned_job_save_cannot_cross_tenant_job_or_company_ownership" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="8b810648-a924-89f8-3c7b-3c765ec3e6e1">
|
||||
<Execution id="c0dbc238-4362-40f4-83d2-779d39b79d0c" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.Rd21JobPersistenceTests" name="Versioned_job_save_cannot_cross_tenant_job_or_company_ownership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "all")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="ebd693de-f8c6-6887-7e1c-635cc17733a8">
|
||||
<Execution id="f8d88fe4-605d-4154-91f3-d1bbebb85c8d" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "foreign-company")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="4d9cb541-8911-0d74-cb02-8d7f6700dd1f">
|
||||
<Execution id="da8474ac-47ba-435f-868c-d0f8dbc09b45" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.IsProspect_false_for_post_application_stages(status: "Interview")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="85e1088b-f623-f992-2c76-6d49b55bec85">
|
||||
<Execution id="2c371481-70b8-4b13-908d-0a461418e2b6" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="IsProspect_false_for_post_application_stages" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobApplicationsAppliedDateHistoryTests.Moving_back_to_a_prospect_stage_clears_the_date_but_records_it_as_history" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="ad6db3d3-3274-632d-064b-de9627e5f5f7">
|
||||
<Execution id="6bbee017-ea26-4da6-8ebd-c94abc000df9" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobApplicationsAppliedDateHistoryTests" name="Moving_back_to_a_prospect_stage_clears_the_date_but_records_it_as_history" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.IsProspect_true_for_pre_application_stages(status: "bookmarked")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="8e7c3334-0c54-277b-8fb4-aafcd601b1d3">
|
||||
<Execution id="75362a5c-d1b4-4ca4-ae4f-d364aca30f10" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="IsProspect_true_for_pre_application_stages" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Every_stage_belongs_to_exactly_one_group" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="0405d09d-9d3a-bdfb-afc6-17200531890c">
|
||||
<Execution id="d89c2358-4477-4df9-8d6c-86dee59740f4" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Every_stage_belongs_to_exactly_one_group" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.Rd21JobPersistenceTests.Structured_tailored_cv_snapshot_cannot_replace_a_newer_approved_document" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="7f3a3170-cb7c-f498-52ea-42a485bd7f4a">
|
||||
<Execution id="6d7b0ccd-da2d-435e-a3fe-506e8e9acb9a" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.Rd21JobPersistenceTests" name="Structured_tailored_cv_snapshot_cannot_replace_a_newer_approved_document" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.IsProspect_true_for_pre_application_stages(status: "Preparing")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="43471150-bda8-0b87-4c8d-1cd20471638b">
|
||||
<Execution id="49e58d06-7807-40ca-8731-f960c544611d" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="IsProspect_true_for_pre_application_stages" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobApplicationsAuthorizationTests.GetMatchScore_returns_not_found_for_other_users_job" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="7c3a312b-f057-64f1-e4ba-93352b46df70">
|
||||
<Execution id="45edc57f-964e-4d7f-8a17-9a919c128bd8" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobApplicationsAuthorizationTests" name="GetMatchScore_returns_not_found_for_other_users_job" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.OrderOf_sorts_canonical_before_custom" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="5d8ca15f-c663-1d50-b932-cf2f0339c7c0">
|
||||
<Execution id="89989a79-8646-4786-98ff-2586a5df4dfd" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="OrderOf_sorts_canonical_before_custom" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "none")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="83cff8f8-d781-99e7-95b3-2a039270fd7a">
|
||||
<Execution id="e189c207-5b14-4d97-b959-4ada47262587" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.SyncAppliedDate_stamps_when_a_prospect_becomes_applied" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="dae734ee-2a33-1fc8-6a63-7903ea33ddd8">
|
||||
<Execution id="5e06269c-d594-4856-a288-059a77ec5c97" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="SyncAppliedDate_stamps_when_a_prospect_becomes_applied" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationWorkspaceTests.Another_users_application_is_not_visible" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="841078a2-8b24-697e-877b-ad48c294434b">
|
||||
<Execution id="4b8ba082-f62e-471f-9f19-0654a74725d5" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationWorkspaceTests" name="Another_users_application_is_not_visible" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Normalize_canonicalizes_casing_and_synonyms(input: "declined", expected: "Rejected")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="fae8f2c2-b6a0-992e-6298-8a46cade54ce">
|
||||
<Execution id="b2fbd550-c60f-4b1a-9210-f29ebf0070a2" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Normalize_canonicalizes_casing_and_synonyms" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobPipelineTests.Stages_are_ordered_and_unique" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="d5dc78bf-9b64-780c-e1a6-189228b35e67">
|
||||
<Execution id="cd020b9d-b4d5-4d4d-8595-bcc8bfc45720" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobPipelineTests" name="Stages_are_ordered_and_unique" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.JobQueryParityTests.Table_pages_and_board_have_identical_owned_membership(scenario: "needs-work")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="161dc999-3648-3d48-1d7b-99ab066de8f6">
|
||||
<Execution id="342880c8-7bba-44e0-b5cb-d51942e85e78" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.JobQueryParityTests" name="Table_pages_and_board_have_identical_owned_membership" />
|
||||
</UnitTest>
|
||||
</TestDefinitions>
|
||||
<TestEntries>
|
||||
<TestEntry testId="5f47dc74-c7bb-6b08-131d-55a4f7abbf36" executionId="04288250-5e7d-47ff-8c28-31c7d76ad0be" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="b5fe2723-67af-5c72-78d9-28239b4d24c5" executionId="40f0f8ac-58ca-4a1c-b7af-6dd598f15c2c" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="4d9cb541-8911-0d74-cb02-8d7f6700dd1f" executionId="da8474ac-47ba-435f-868c-d0f8dbc09b45" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="0405d09d-9d3a-bdfb-afc6-17200531890c" executionId="d89c2358-4477-4df9-8d6c-86dee59740f4" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="5b8ea46d-ee44-6470-1381-3f43ab773db6" executionId="6b1cbd7c-0e2d-4d42-8141-a72b7bc88fbd" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ee747285-6574-0968-3d1b-5b4086b49e77" executionId="22279e58-5d23-4159-95c2-1ec20e36cd47" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="43471150-bda8-0b87-4c8d-1cd20471638b" executionId="49e58d06-7807-40ca-8731-f960c544611d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="406bfb2f-20b7-15bd-2069-50eef30dff88" executionId="7bb788e6-0268-410f-8b2f-2c646f4fd423" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="9ca882ec-2b75-a26b-1420-961f41c85538" executionId="32f51ce0-8242-46b5-9e72-c980a36a0897" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="243583b0-ea8a-0c2d-b704-f9c081502a8c" executionId="1f475ccb-5169-4cf7-948f-10f70c02505d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="6ba5666c-74e4-b81b-103e-21d383c8c6e4" executionId="141e205c-c74d-4c32-be0e-54216ffe6766" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="d5dc78bf-9b64-780c-e1a6-189228b35e67" executionId="cd020b9d-b4d5-4d4d-8595-bcc8bfc45720" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="807b4ecf-7901-9e43-fb43-71e8fb58731f" executionId="b1e757cb-3ad8-4705-9b96-d302a429a298" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="e3216f8a-8510-078f-dd29-645ff395558d" executionId="f276ab6e-8f53-4f57-b69f-89cb8866aef1" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="b7972ccc-92fa-2f26-8dd4-06b22977c9bb" executionId="a39b54d4-9415-4129-9946-7f3619fd7916" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="e4227296-3fbb-0af0-0d38-a3229e8a3931" executionId="8de28afd-87a1-4db8-be7f-35680fbcf918" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="3774c215-01a0-fd17-ff44-158de1e6105c" executionId="03b927be-3840-4df0-9833-7a5e7845ca08" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="233c4cb5-66c0-2385-528a-c96b5760f3a5" executionId="4b6108e1-3385-461a-aea9-c890115490ca" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="83cff8f8-d781-99e7-95b3-2a039270fd7a" executionId="e189c207-5b14-4d97-b959-4ada47262587" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="1ece7e57-e724-aa88-aaa8-6eccd169f3a6" executionId="fffe549f-449e-49f5-b8ee-78e31ece8480" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="fd61245f-a8b2-f146-de3a-31d80c4004ff" executionId="382cb0f8-68cd-4bd5-8dfc-b49a64020ee2" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="c390dfba-f9a3-46a7-1677-20786cfc5d66" executionId="a1ee7d2c-4aa3-44e5-b21d-115d2b10f07d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="cb349326-9fd9-4626-f55a-28cbe213bda7" executionId="6a681a52-e5fe-4003-8fb6-11fab5725dd7" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="d4f830c4-a93f-761b-785c-6b1752a42000" executionId="98160d95-c0e6-404e-8aea-54975f544627" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="8aa9763e-1d8b-1ccb-f8b0-86c9dacfaf8b" executionId="35f72966-5bcc-4b7d-aa4d-df5349171302" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="27fe3229-574e-f5a8-e0cf-4e97fdcbe501" executionId="17279912-eb85-4ec6-8913-f5e000f39691" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="3cd2fef8-dfa7-1464-b6a9-026485c0bd9e" executionId="8434e059-c250-445e-ac3e-dd844fc52edf" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="85e1088b-f623-f992-2c76-6d49b55bec85" executionId="2c371481-70b8-4b13-908d-0a461418e2b6" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="d9300062-418d-1ccf-2cc7-685be008ce42" executionId="21fe8a22-43b4-437d-ac0e-309086e8b52e" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="161dc999-3648-3d48-1d7b-99ab066de8f6" executionId="342880c8-7bba-44e0-b5cb-d51942e85e78" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="0ce1b3ae-aba6-2d59-4be9-377c6d0a68a6" executionId="7bde4546-deb4-4231-b557-1920fb3adf7b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="d25a3ef0-b042-1446-83ff-7d94d249fe2f" executionId="48616e06-0dd1-4fa7-a937-0b9f92abfe21" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="57f0349f-4705-96e4-450d-2772916d82e0" executionId="3127c9b8-68c5-44be-88a8-9f2ed69e2784" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="7c3a312b-f057-64f1-e4ba-93352b46df70" executionId="45edc57f-964e-4d7f-8a17-9a919c128bd8" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="8e7c3334-0c54-277b-8fb4-aafcd601b1d3" executionId="75362a5c-d1b4-4ca4-ae4f-d364aca30f10" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="a8aff3ef-f27a-a882-1aa1-ba9c663cf4ce" executionId="4f676192-2e82-49c7-8821-b22b5282d4ea" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="6b825f2a-013f-92ef-ef09-fe9860925384" executionId="6f17a184-1b95-4608-9cfd-86ea96323afd" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="4bf5ede1-a4b1-f8e7-801c-ca499e8d57c9" executionId="1b422a5c-afbc-47e5-8085-f9b0b7d51a5a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="7e6f3ff6-0104-2ed9-ebe7-cc914c075a14" executionId="59f599e3-a853-4ae9-95f8-5d9e2e6428ef" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="04d26b3d-0337-8e69-a468-9144eae6f23a" executionId="229d818c-f6d6-4270-945a-b6b985e19fcd" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="8b810648-a924-89f8-3c7b-3c765ec3e6e1" executionId="c0dbc238-4362-40f4-83d2-779d39b79d0c" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="8828413a-f54a-42c7-8065-17e638ec72fc" executionId="218f6bec-56ab-42a3-bf21-a28325e98484" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="694c474d-1ea7-4388-7133-bc8d0d30f684" executionId="26d4bf01-2abd-42eb-8e7f-3763f6de6b15" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="5d8ca15f-c663-1d50-b932-cf2f0339c7c0" executionId="89989a79-8646-4786-98ff-2586a5df4dfd" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="d6b62877-6631-5087-d82d-12d5d5053ffd" executionId="4db9de59-fa05-4849-8161-8872dfb90319" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="a75c8efc-b4a8-b8b5-b751-6fee6831ebf4" executionId="2199fbe3-3100-426e-925b-004bcc2ab878" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="57a698a5-6de9-6958-20dc-c7755de3f68b" executionId="6a2a4747-82be-4335-9364-4e4193386cbf" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="aa73dc7d-d5b2-0b2a-eb67-8d429c6009f9" executionId="d0036c48-3d2c-41cb-8811-3dc7be1a884b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="63a1c947-a202-ef7f-514d-09b47ec75ee2" executionId="a62b456d-c46c-4416-b022-2de1690f7f31" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="a4b61bd0-458f-a6f6-d0d7-20d06b4283af" executionId="2e84145d-d8dd-49e2-8d20-db22d0419b01" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ad6db3d3-3274-632d-064b-de9627e5f5f7" executionId="6bbee017-ea26-4da6-8ebd-c94abc000df9" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="04b6a91e-07c1-4169-3675-8f74913a4edb" executionId="c4a15959-53d6-4855-a10d-2ecda79e6c72" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="f90c82d0-e11a-8b37-2b9a-b942922d486f" executionId="954cf521-e570-44f1-8515-58b4d6ad2a0b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="039156c1-fc1d-b9d0-af77-bdb9f0cb7746" executionId="4373cb44-930f-47f0-a239-67de5f7cc70d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="f03192f4-c647-0827-6154-dc73478169bc" executionId="56285312-8a84-43a8-a1b0-a9c3af990c92" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ee63d0f0-d333-caf4-fec2-d43f36690893" executionId="5864862d-4799-4fb7-8e41-f44e34a60ac3" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="18c0a064-21ea-b6d7-669e-31fbbab278d0" executionId="6ff8321a-9383-49dc-8419-523322d3b0fd" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="1fe222ac-3430-7778-716f-49f037f5db90" executionId="78033441-0d2a-4966-8453-6ffd5c2ec353" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="4516ef4e-4e78-4ff4-67c2-32dede6ca0b5" executionId="682831ba-e2f0-4b3b-ab3a-ab4878822eba" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="5380f9af-24f7-74d6-741d-735898357f30" executionId="59ca53c2-ad52-44bd-863d-c73925b106cb" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="acfd6c10-a6e7-650f-fcfc-2184cb36ce6c" executionId="8ec26e8a-184a-42c5-9e8c-83c7be40b72e" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="efda68b9-0990-68aa-2731-c81591e14915" executionId="aa059a99-2ae4-4889-a1f0-c7dc903b2af8" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="be3a9348-61af-0f21-1ace-cd3662be8c7d" executionId="eecb6789-b633-420a-990b-fee838855c12" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="be18c4bc-808f-f2b0-96d7-e2ce8399ca93" executionId="844532d0-1f93-4630-a4c0-e224d3de655e" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="83ef356d-f2e0-8bdf-a61e-0b4e60c6f28f" executionId="1d97f890-2656-4e50-a342-3775572104b3" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="dae734ee-2a33-1fc8-6a63-7903ea33ddd8" executionId="5e06269c-d594-4856-a288-059a77ec5c97" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="24673f9c-c625-5907-c9fe-90e92f71c82b" executionId="fc61ca22-4bc4-41db-a7c9-59f60bcd6a39" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="302e0510-ff7e-9bbc-0509-d2d321512ccd" executionId="ff70f809-ac28-457c-be21-957a7cb28a1e" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="fae8f2c2-b6a0-992e-6298-8a46cade54ce" executionId="b2fbd550-c60f-4b1a-9210-f29ebf0070a2" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="dffc73da-e081-96a2-f069-ca32e29829dd" executionId="41a5c39c-38a9-4519-8818-1b38adca8ce5" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="52749208-d674-a526-3a09-fbe999238c6e" executionId="e3a36284-b803-4b08-9b1f-1333bf94e830" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="4d2ee4af-ed68-f3cf-b09e-1e844b21d7e6" executionId="4e872c59-0ed2-4b89-8696-f39332d60d05" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="e8f60c21-47e6-bcbc-dace-d55c71c5cfe5" executionId="ffbaaa99-f815-4d51-8449-716ea7675130" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="7f3a3170-cb7c-f498-52ea-42a485bd7f4a" executionId="6d7b0ccd-da2d-435e-a3fe-506e8e9acb9a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="49ff5b0d-33d2-6406-b869-37c0901cece5" executionId="8e514a42-78eb-4f1e-b85d-61c80699c592" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="f560e8f1-1886-feb5-979c-a0a10ab78e21" executionId="07c0f875-917e-4490-bbf6-f482be82d9b4" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="347211ec-a553-9c08-b520-5d138aabe092" executionId="35fdba6f-5e03-412d-bbc0-64605d0b8beb" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="753b2f7f-66eb-121b-5cc2-5d92b1eeff00" executionId="5eeaf2a3-b000-4fb8-9c74-ebfdbf426c22" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="841078a2-8b24-697e-877b-ad48c294434b" executionId="4b8ba082-f62e-471f-9f19-0654a74725d5" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="6b15f128-8f37-aebf-b047-770cc9683025" executionId="f0e5a9a3-6cd3-4b26-867e-60ee18fa815b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="e18ef2d2-eb0b-ae3e-a7d2-d55031661872" executionId="8e4b7634-b696-4326-8dad-0744f8d1caa1" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="da3ba433-d08c-949d-2407-9f181bfcd5be" executionId="ad72de9c-1386-4da0-94c3-b8bedc5bada7" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="fa230569-7a1a-88d4-df2f-dcf0ac9a43c2" executionId="3be6a4a0-df83-45d1-876f-541992c5bba7" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="57096417-b25e-42cc-c6aa-1bf95fed407a" executionId="ae07b246-2d25-4640-9422-d84f303ec46b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="84f76a74-2082-ce72-9363-22dca54580d2" executionId="0d90d7be-c7d0-4c5b-9bdb-e1806897b46f" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="bd4400e7-7088-b557-b0a5-1406b157fcdd" executionId="b15224c2-c8d6-4348-9197-6c39bbfd141b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="7830b0d3-f336-e0a0-f0bf-68394ab80c34" executionId="f98c8517-fa5b-4c5b-986b-9c7afaa89819" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ebd693de-f8c6-6887-7e1c-635cc17733a8" executionId="f8d88fe4-605d-4154-91f3-d1bbebb85c8d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
</TestEntries>
|
||||
<TestLists>
|
||||
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
|
||||
</TestLists>
|
||||
<ResultSummary outcome="Completed">
|
||||
<Counters total="88" executed="88" passed="88" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
|
||||
<Output>
|
||||
<StdOut>[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 9.0.19)
|
||||
[xUnit.net 00:00:00.26] Discovering: JobTrackerApi.Tests
|
||||
[xUnit.net 00:00:00.42] Discovered: JobTrackerApi.Tests
|
||||
[xUnit.net 00:00:00.43] Starting: JobTrackerApi.Tests
|
||||
[xUnit.net 00:00:03.87] Finished: JobTrackerApi.Tests
|
||||
</StdOut>
|
||||
</Output>
|
||||
</ResultSummary>
|
||||
</TestRun>
|
||||
@@ -0,0 +1,562 @@
|
||||
{
|
||||
"screens": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "table",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "board",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "detail",
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"journeys": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"searchBoardPreciseStatusDetailContextReturn": "PASS"
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"unexpectedWrites": [],
|
||||
"mockedWrites": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"status": "Waiting"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"status": "Waiting"
|
||||
}
|
||||
],
|
||||
"unavailableReads": [],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com"
|
||||
],
|
||||
"limits": [
|
||||
"controlled fixtures, not real backend integration",
|
||||
"secondary service reads may return honest unavailable states",
|
||||
"no native device, provider, model, security or release qualification"
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 107 KiB |
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 107 KiB |
|
After Width: | Height: | Size: 113 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 114 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 89 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 90 KiB |
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 74 KiB |
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"recordedAtUtc": "2026-11-03T13:50:59.687157+00:00",
|
||||
"frontend": {
|
||||
"passed": 25,
|
||||
"failed": 0,
|
||||
"pending": 0,
|
||||
"suites": 4
|
||||
},
|
||||
"backend": {
|
||||
"passed": 10,
|
||||
"failed": 0,
|
||||
"skipped": 0,
|
||||
"provider": "InMemory and isolated SQLite, strict provider mocks"
|
||||
},
|
||||
"typecheck": {
|
||||
"exitCode": 0,
|
||||
"earlierFailure": "test ByRoleOptions and required ViewStateNotice title corrected; final production build type validation passed"
|
||||
},
|
||||
"lint": {
|
||||
"exitCode": 0
|
||||
},
|
||||
"build": {
|
||||
"exitCode": 0
|
||||
},
|
||||
"graphify": {
|
||||
"exitCode": 0,
|
||||
"limits": [
|
||||
"optional SQL parser missing",
|
||||
"144 symbol-less files; not semantic completeness"
|
||||
]
|
||||
},
|
||||
"backendRed": {
|
||||
"status": "FAILED compilation before endpoint/DTO existed",
|
||||
"executedTests": 0,
|
||||
"nativeTrx": "NOT GENERATED"
|
||||
},
|
||||
"browser": {
|
||||
"configurations": 16,
|
||||
"scans": 48,
|
||||
"violations": 0,
|
||||
"writes": 0,
|
||||
"liveBackend": false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
{
|
||||
"base": "7e410e795dd3f2e8c07091e9d276ce05bb418866",
|
||||
"recordedAtUtc": "2026-11-03T13:50:59.687157+00:00",
|
||||
"policy": "Text LF-normalised SHA256; PNG/export raw bytes",
|
||||
"sources": {
|
||||
"JobTrackerApi.Tests/ApplicationCalendarControllerTests.cs": "cb0b9e34142a3604041b6696a5b52490f86dffd1a895de6075a750eb7efde498",
|
||||
"JobTrackerApi/Controllers/ApplicationCalendarController.cs": "137ff5b81f0249d29e790e1b89c75e0a426cbaecdf5dd51c62b11e43a694d13f",
|
||||
"docs/ui-modernisation/CALENDAR_VALIDATION.md": "91092f4b24713025830db28cc928d71287ad3c6172f83ec1514d8f2b7998d2a9",
|
||||
"docs/ui-modernisation/UI-07.md": "135a44fe24b71606982cf0e4b7bafed2813e0f0f91d6e2fef6e90ae462277837",
|
||||
"job-tracker-ui/package-lock.json": "bf31e90d7af03e8af059db2aaf893925b9e8881a30a1688034ed88ef45d4fcab",
|
||||
"job-tracker-ui/package.json": "3745394e406cefa40d30a87e840bccb359be147bac6ffba736e2ae90898a8626",
|
||||
"job-tracker-ui/scripts/verify-a3-calendar.mjs": "e3fd86fee1efffbf2a3326c99bc93c9d6ffe19af31d8ea347fb084111222065b",
|
||||
"job-tracker-ui/src/App.tsx": "a176e52d81c4b6ded63c5f38cb27e853aa09312f2cc45fc7e5b5e44573e0fef3",
|
||||
"job-tracker-ui/src/application-calendar.test.tsx": "d82d87ccd456ada0797fa32e1d437224cae1edf62e40c05e1cb87f233a0eb40e",
|
||||
"job-tracker-ui/src/auth.ts": "1cbdd59f73c5a961613b2569679f96630cded407974876a4ca8abccf28780b0e",
|
||||
"job-tracker-ui/src/calendar-agenda.test.tsx": "c9726ab21c6623a0cdfc992e8412f3aecb7b06c587ccb1a9b6e085c55d9d9298",
|
||||
"job-tracker-ui/src/components/CalendarAgenda.tsx": "383eba95ea8b5b9594f2f9f79a481dff4b7468091a3d757868825257dead2680",
|
||||
"job-tracker-ui/src/components/RemindersView.tsx": "e550e76cb28cb4236100bb1a35158a329e4ecd3a12be56f6cdaf28fb75fa0091",
|
||||
"job-tracker-ui/src/hooks/useViewResource.ts": "5912131c525ba85ae6994efc38306a10ec2e673cc0082686226b59f00df5da99",
|
||||
"job-tracker-ui/src/i18n/translations.ts": "1dd55d184eec8e43ba5aaa4d71b60a66615791b87b712bdc6c50be0aa4cfbbeb",
|
||||
"job-tracker-ui/src/reminders-presentation.test.tsx": "700594101a38593e950ee10340fa0d22bafbd18f928912bf4af58172642ace9e",
|
||||
"job-tracker-ui/src/views/CalendarPage.tsx": "45c827d8268bc6be93735508dd45c464a3c40246a7e530555a0ff90bcd03359e"
|
||||
},
|
||||
"evidence": {
|
||||
"backend/a3-calendar-final.trx": "4c3e091d637cb32700ccf2531b56434b48ac4a7756611ac188cf874d40fd01a9",
|
||||
"backend/a3-calendar-green.trx": "356e5cee5ae69ac0f318836d3d7e09eefb925e7a6b916283820f1f0c33a5fba4",
|
||||
"browser/agenda-en-dark-1440.png": "4c2cdba871ce4c7fb13a9cead97fa8775057a54cbf01ea9d5c9d6ae2d78300bf",
|
||||
"browser/agenda-en-dark-320.png": "bbd32e62b13d7919a191b0990aef5d0c5f26a9c0532187b40de1329ae1a0c9aa",
|
||||
"browser/agenda-en-dark-390.png": "7e6cdb2d60b76475234247400499e4f5e1ecd8eda9d57dc4539ec507e3ef572d",
|
||||
"browser/agenda-en-dark-768.png": "1b8e4fefc6d0389b08c23ff43193875a7248177c717baf25f800f4a9afabc6ac",
|
||||
"browser/agenda-en-light-1440.png": "f6be3cf29572729e5923698a8d237db4ee72783b85b56a66d707e69b57359752",
|
||||
"browser/agenda-en-light-320.png": "1a0d543c73bce4e1f28b0e13bb93d7956f28b9438e60be4315abb22947086662",
|
||||
"browser/agenda-en-light-390.png": "7c7d74d4f07ce16fd7f555d659f2b60657465f3c0a5be08e328b908746052946",
|
||||
"browser/agenda-en-light-768.png": "3fc0bb5601992c24f2fb77323a8c5e798431c225bd518ec22bacd006f70e54e3",
|
||||
"browser/agenda-nb-dark-1440.png": "f1ff22897c671115ddc87f55f0097d60e4bac6c891d6388a0a6b5d7e4b683c1e",
|
||||
"browser/agenda-nb-dark-320.png": "a22e8585a331a53164a3c154d7f6d3436bc2b4fc7e230a353990e8f86b13ef8a",
|
||||
"browser/agenda-nb-dark-390.png": "fbea15f1fa3840370f07bf05aba704c49c6fcc3193dd8e5d95bbd9cd6a290766",
|
||||
"browser/agenda-nb-dark-768.png": "d436706161b8ff353ed3828c28067a2daf6ade88643529b2f2388660c006124e",
|
||||
"browser/agenda-nb-light-1440.png": "ec12f39aa16094bb43c8f46d494a049082e99ed3a27a56071fde3b221f20d2e1",
|
||||
"browser/agenda-nb-light-320.png": "ca093b4581be0fbb1545d7cec9c62c3381ef4c7091eb9808fc7a8e4da7433efa",
|
||||
"browser/agenda-nb-light-390.png": "10ec8e205314ec6e0cc0deabbb565e635eb7a1b63da36704255ede9d07230185",
|
||||
"browser/agenda-nb-light-768.png": "d35711ff5c7ce81d03ab7351479e167ec58fb57ca17383106a95b91d891b364a",
|
||||
"browser/BROWSER.json": "dc24786edeb8afa886c5033e5d7928962c87c325141cad319ddc1c9b6e8d8765",
|
||||
"browser/linked-application-en-dark-1440.png": "f1064f2f79853d48b8d15919b51db03a5dea800fa60b607d7cf8271411903304",
|
||||
"browser/linked-application-en-dark-320.png": "ce1f364624b5ccb3d7f2a5abbbc268ef05e3d19c8ed799b2586a05fa12850673",
|
||||
"browser/linked-application-en-dark-390.png": "5617dce472c4f7a117259b89f6a702eff90c2e8e82ae58f65df5bafc1527346b",
|
||||
"browser/linked-application-en-dark-768.png": "d31e67b030d3dea61df81e1c38a314143d74455cbe80e6f2175752e1332b532b",
|
||||
"browser/linked-application-en-light-1440.png": "58523ce12f40975a8966a17e00ec2546e460c0e0ef37120ae850e70fb956a0cb",
|
||||
"browser/linked-application-en-light-320.png": "441b76a051aeb553e203e1bc1fe46ee45e4bb4b0b4d17e883ed572ee9a8d1ed3",
|
||||
"browser/linked-application-en-light-390.png": "26122d43c985f71306e7707fb11352665fa51b75cf421586e257cb314d33c82e",
|
||||
"browser/linked-application-en-light-768.png": "b94555fbd0d2a7d7581de9f2f25aacb10c7b194cf6ef2b5604ea258759bdbeef",
|
||||
"browser/linked-application-nb-dark-1440.png": "da3d806e4f4f931ef037d498409be38e0e07fbcb7efe6110bfd754359f1b020d",
|
||||
"browser/linked-application-nb-dark-320.png": "acfa5c1152af3d8f3b97377da94b0bf9ba4bcf2dba62a1842b6e6206a18cb91f",
|
||||
"browser/linked-application-nb-dark-390.png": "b9c21a5cfd07c56b2dc4ee59b00f6bcd102fe931e73f3ac28826f3ee726e8043",
|
||||
"browser/linked-application-nb-dark-768.png": "fadf9ed9cec6172e5d0500564c56de33e8ce6eaa05cc924d905c0e28ebae0f4a",
|
||||
"browser/linked-application-nb-light-1440.png": "a76cabe6225ec6864d8a71edec5c91803d4ba85bddd0e887089030b78d8a80b7",
|
||||
"browser/linked-application-nb-light-320.png": "75ce3778f211b2ce53c67ace7cda310848ffa2d32bdecbb3403d3b59bc057498",
|
||||
"browser/linked-application-nb-light-390.png": "08efcd767ca130e0aff0cff212ced33190c3236cfd2f2b54b0f0bbd471b65809",
|
||||
"browser/linked-application-nb-light-768.png": "c3059ddaae94da9f205d928156ab5e9056021f8659faa3c2220f97601e3113b7",
|
||||
"browser/month-en-dark-1440.png": "fe71b1bdf88857cee9198dca37e3cd9dd7b0f7519515106197adbcd44b354d40",
|
||||
"browser/month-en-dark-320.png": "84f6e6a7f2d3bcbb8d0bbb96d24376dec7920af540effd278146fafc13f8eb95",
|
||||
"browser/month-en-dark-390.png": "8c6103e95bef123fc67ba8e5dbb342c828b695be2975b0e351c6c3a9023119be",
|
||||
"browser/month-en-dark-768.png": "23032481b2426b3644dfd34f5bf000aba04027d3db490638afd98da092b2a308",
|
||||
"browser/month-en-light-1440.png": "a6cb881e9fd85531a28375dc8128a7d68526d1ed20d959f07cd89a80749caeac",
|
||||
"browser/month-en-light-320.png": "2dc90a543b38e251ad39f764df01bdf1a131630b9cc0ec5262b30f3dcef1661b",
|
||||
"browser/month-en-light-390.png": "2eab1e18a90c567167825497a89eddf5eebc064b02e59b2036ea595c56cebb53",
|
||||
"browser/month-en-light-768.png": "8d6feb49163d539c73297be0aaa3d35391e01faceb84fd79236ac7edf176fb89",
|
||||
"browser/month-nb-dark-1440.png": "44d59e386c2b4f49f7a466f40fa78e4d134c938bace90b8e2085bcb9c4e97a6b",
|
||||
"browser/month-nb-dark-320.png": "fb70fe794d2a8a10a4f2a6dd58c5fa23cd4e8123189e83ccf44fd49bde8dbace",
|
||||
"browser/month-nb-dark-390.png": "da5ec5924038880c9444b00f085d36daa439da7a3824caf43564f26729131f9a",
|
||||
"browser/month-nb-dark-768.png": "ae19af78a6a156e8225c3fd193464447ec12283ee902effbd07cc12ff5816e2f",
|
||||
"browser/month-nb-light-1440.png": "508c85bf253e32a4d1d2515cc9220227021db3a3f706ac5197f58adc7d27fb5e",
|
||||
"browser/month-nb-light-320.png": "0bdffca7386e00f84294cee52a68a97049a3f089737190ee88db1ae537d45e68",
|
||||
"browser/month-nb-light-390.png": "2fa7f775b6c5c6bea1ff92b0e4d81176c886a64385000e23655188fb49a5af9e",
|
||||
"browser/month-nb-light-768.png": "bb21a2bf2752e2641e18dad30c285cecc596468f0359c58dee2b95178693f711",
|
||||
"browser/PILOT.json": "d692a8540bc2e412327c34c5eb7787ddd7ffb0da0dafc595c8d63186bfe6c33f",
|
||||
"browser/PRE-UPCOMING-ORDER.json": "dc24786edeb8afa886c5033e5d7928962c87c325141cad319ddc1c9b6e8d8765",
|
||||
"CHECKS.json": "b452adef2c74d513ae8a8ac0e0fa00d47353be2abe58b0cef908ee5c8413acff",
|
||||
"frontend/a3-calendar-ui-final.json": "5029c7b8afd5a1bf5ef6fe9f506795548f60b337d2f9613a5415197f9b50893d",
|
||||
"frontend/a3-calendar-ui-green.json": "c9c9f7c38d8eff473226364f96957715c63e106d27b1a61e74adfa766ead6f88",
|
||||
"frontend/a3-calendar-ui-qualified-final.json": "8365d6913c7dc7bac0b38f1f99ff1b57eecad8d2276974d7e46d7a75d535b159",
|
||||
"frontend/a3-calendar-ui-qualified.json": "2bf0b2ab0d2e0c573eaca07f67242f691fd5b673ba2c4119f05338cbd5b1c996",
|
||||
"frontend/a3-calendar-ui-red.json": "278d7fde84ae5f678e5004448b53d758b7cf336436e0a0c033c6d01eb6c5c4ca",
|
||||
"frontend/a3-calendar-ui-reviewed.json": "87d031d4ba08acd1dbecf601b8f4d0fcfc9a831d18e2ffdc07e96aa116cc494d",
|
||||
"frontend/a3-workspace-baseline.json": "9fc273f5f2e0a77b9271b8b1985a5b9dcab781a023accafd8b00d3a64d1fc38c"
|
||||
},
|
||||
"export": {
|
||||
"404.html": "a9116ceba97e13b799aeddfc5acb9ac49b920f2e741d228c081ed21ce5ec38b2",
|
||||
"__next.__PAGE__.txt": "e15dff657a85232f110c89d5617633e0e9858ea8f64627cd01f4766a0d5753e4",
|
||||
"__next._full.txt": "030eb6a898b15f225c0e642e757f41c76546ac0c08bef77dd2eb4a866099043f",
|
||||
"__next._tree.txt": "553ed7e7f8ae324983bce4a56cb39f819d7ea03ca3291627f0e782b59c735f5c",
|
||||
"_next/static/chunks/0-_aq6ipzcshj.js": "39f90c215bf52aef6274ed3dcc0f8af32e21a37fe8845b3bca0d6ea60da6a8c2",
|
||||
"_next/static/chunks/0ah1fzqmie05a.js": "5c65505a7dcbac63ac71d254e619a4c800943bfb4fa16cd40c10cdbe7e9b6e31",
|
||||
"_next/static/chunks/0bdt7ln111t48.js": "6184b1a61f22e2a640c17941634fdc75678ce93d142848d9f07f163e0d1fd201",
|
||||
"_next/static/chunks/0bwvt3mysnclc.js": "7705667a1b75812b7833d9c9dff47fe023015e58e382c40f4507d9948c973af4",
|
||||
"_next/static/chunks/0cz1d0mv5g_q7.js": "0973c1d64c88adc8e3c950410cb58b288f72118d5965b78049438deb8f2f9683",
|
||||
"_next/static/chunks/0h_-smu-bk788.js": "970ef0fa47ce6dfff261c624e08054841b6969b4afc5b0ebfad89126d7543bbc",
|
||||
"_next/static/chunks/0jcvc3qm6-lyk.js": "7c27e1fe373b822adc68c63096a5bf38444ad605b9743f0920271652989c56f1",
|
||||
"_next/static/chunks/0lmxsmlypasq-.js": "695c697c2e38fea85325dc210c9d3ff38fe5d4295e386041c7f187322f0f537b",
|
||||
"_next/static/chunks/0q20g9o8x-k8z.js": "3d4d9086985419aa8866b032158196c774acb8bf318f3c8245508c8daa9c5148",
|
||||
"_next/static/chunks/0q_pwu9jxv4-d.js": "42a43b3d7245a413c7c29b4cbe87823037a6dbc637e2e282c92405470e0f575d",
|
||||
"_next/static/chunks/0s7d19phl1gc6.js": "270ac30d2cfd8392d59853086c1cf59e91ade44fc569151f14806f6684643ef0",
|
||||
"_next/static/chunks/0yg1x7i96lj87.js": "2aad3c0f9e8b7b5a5123a2a439970c49db0be353236e22f9b6eafaaf01328c15",
|
||||
"_next/static/chunks/11-48p8kygxgp.js": "57eb9059599b5a5a30598d0a334912d58af571c0ffe28448ca76ad77c8ea8df9",
|
||||
"_next/static/chunks/14-lfugawba2w.js": "6a5780ca3c84d7f130f3c0a14431c85c7a1e799e2645b8c171161dab40a64360",
|
||||
"_next/static/chunks/1435in_k_-dhc.js": "4757476512d5c4dd25f9264a18b304ed4824b23aff1c09e134fcbff21d9c36b6",
|
||||
"_next/static/chunks/145oicobmjvm7.js": "d6bbbdeed1381652dc7412e5ce673a077579ecd5cee8934cb6b533c814098764",
|
||||
"_next/static/chunks/14e7ovj0s3elm.js": "070567dd4d23fb9fa0b9ba132185a697af6578045d43b2b1c7bbb2a1594d935d",
|
||||
"_next/static/chunks/16lfece6cnlln.js": "716363ba044f30b0e70440756b4e5eafa2d25f2e1628e855e3bc4ab9eabee3d3",
|
||||
"_next/static/chunks/19fpz66d6-1lv.js": "591aa30f32b95af8a55173c0da5ef146996c6161405261102cb2abea8a12bad5",
|
||||
"_next/static/chunks/1d0xrdyyzw7qc.js": "c11668ff1e152008e0d7b4454af12eb36c97df46a5860938e2eb5d8429b374a8",
|
||||
"_next/static/chunks/1fvwm-pcm8rrv.js": "1027c6b5c28e184a75ede28980fcf6e32e8cfde7da39191911b171668c76d888",
|
||||
"_next/static/chunks/1ke8pzecwofrg.css": "32e9ab963ebadebcbe2c68dffb24cfbfc8cc24255ad91b48b7941fc777bf7439",
|
||||
"_next/static/chunks/1p3h755jnx-jb.js": "81db4740766fddca1b4f31a1a686e35a3f18ee078ed74561b5d2daee5fd01bc0",
|
||||
"_next/static/chunks/1req80b9jj38r.js": "eee4d2e3789e1215195dba99ad0f09d34f8c83da848322b76054722233e9dae3",
|
||||
"_next/static/chunks/1w3q8yrcjn2jk.js": "365200e241ee9290e93d7c2fdba169f2b0a8e774541e3cbf3f6f2781110fa644",
|
||||
"_next/static/chunks/1xn023_28rgzj.js": "4f7f2108d030a48d039930736c92a55710975dddf419fe673f84d92899b1f575",
|
||||
"_next/static/chunks/1xwc-b795syag.css": "f73c002233f931ca14d0ae58815c47ca9f2659f25b1547a6d1fdca12a2a00b3f",
|
||||
"_next/static/chunks/1zi8i6dnxiac_.js": "8aea28bbe6a138e5d4b619429ca71570883a7aee974b86d5a4a746d90f704dbc",
|
||||
"_next/static/chunks/22wx8--1b9tnq.js": "3f7d8e762371262c6a740b4dac21725b424847319afac46055e97074a99ff5f5",
|
||||
"_next/static/chunks/27n3w-k3wc2if.js": "941c18edde0feb228b8aa5d3ec0e636bcb4dc2901134c2ad63224420a34eb5b1",
|
||||
"_next/static/chunks/280cq9ekejv1f.js": "01de8c1c3555cdd8d711763065ea9d8aec2968c3053f61254e43e26c999027bf",
|
||||
"_next/static/chunks/2br3ad_-bc7k9.js": "80fa55f7a32db4d743fda36747c36994fde00a0f53f2eb25b2a6d07c6fb97cd7",
|
||||
"_next/static/chunks/2gd9s_n-0nl1p.js": "31e2811be51a3c4d0ff2d1e3cea756e7fd8d57ef89141b5de69f638c1301d039",
|
||||
"_next/static/chunks/2ghgf2s9b2iou.js": "23d8ff31e2128d0541c1887785fb75885323fea7c5d4f35826513b75c12c2ae3",
|
||||
"_next/static/chunks/2itnratrnd9c5.js": "8be0b191c2d54f7233ebf2f1e169b3bfef680fa93da21c08d8c43b05c3ec174f",
|
||||
"_next/static/chunks/2kpcazmi6n6mk.js": "bea0de681fceff50056bfeccc5d035aff54d20918288051cb64bb259edd250c7",
|
||||
"_next/static/chunks/2rz71hs6q-h-c.js": "822e01feeeccf06e5634ebb76a5deeda6ba27c5d9f6575047eb203dd8af18f91",
|
||||
"_next/static/chunks/2s2gjr6ro25dj.js": "7489e2ac285a05b563c2bcb4eaf9274bf930f2a7385f17d6d5e6850064b88b10",
|
||||
"_next/static/chunks/2u5qve004opku.js": "be388d9a6aa423082bafb4584c3facc65ddfed71bcfa5c1d06b097b408c5ff97",
|
||||
"_next/static/chunks/2xlg4_1fj8fxh.js": "8ab4ba521db0167f3dbf684787ebf643cbc66fa7ffff7cdc65a8d8076a926155",
|
||||
"_next/static/chunks/2z42el0b2mp8_.js": "86ff990ef32c90c4839583e4f1d1bcbddb165dad3141b9fcd2ecec67f4ff24b8",
|
||||
"_next/static/chunks/2z9e_b61gtc22.js": "b9d717dad26828438d4ff56cabca41a8055f5eaa54420fd0aeb6b4ba7d5baa0d",
|
||||
"_next/static/chunks/32_ah983ce851.js": "0c3cd0d2a5ad789e31226a9ea0506c50016804311a58548c7784b7b45aaecd14",
|
||||
"_next/static/chunks/334vtqp3-g1j6.js": "c33d42da97f3af7388e29273297e9f42c67f54b7f5ec77a5d0637e2da06d7f7e",
|
||||
"_next/static/chunks/357yqeklh7414.js": "0192ab7198ebbe299d34a934c504dd4b562d1cccebb6e9d4c5163930c881b14c",
|
||||
"_next/static/chunks/3720519r84mh6.js": "54358db392a13914e3363046d594e824b1a3ef987913d95002bf48267dded4aa",
|
||||
"_next/static/chunks/3721l8sfm8icl.js": "06b67611b3a93515a375b803b54fe7063c049824f1ebf5c7f7db8701b5091e7c",
|
||||
"_next/static/chunks/3bqn9b34na0b9.js": "f1b8ebcc1b22251c33c9f3a5d11c1f893cad2da2e8744a441e790f7347aa9e73",
|
||||
"_next/static/chunks/3ckk_j5ril9ag.js": "87f631dae7b648d32171e9e05a3e000753ecb54f8d3b86a4401c0e4ab4d73553",
|
||||
"_next/static/chunks/3gkylew_qn7cw.js": "7e6c74c81be0c41ab433e36d65b914f62c48f332922e27f7cc953476f4dd78cb",
|
||||
"_next/static/chunks/3la4obitihzpv.js": "9a5a57b46db389b98f1fd5baa86eba1a360300dae9d1ff3ffeae7bc3378135b9",
|
||||
"_next/static/chunks/3q4v10rrqy40n.js": "d87ff7b7a0f07d0d92eab3876481eb686a12d9c43d8b92cbe406aefa227a11c1",
|
||||
"_next/static/chunks/3u61o8t7m_jza.js": "86231c12e0f8cacc8638bed0bc4b34f645fc35e60de342dc154d3cce0c9a5afa",
|
||||
"_next/static/chunks/40y_aqqilokr2.js": "1f5a5260316134d6bffe949400752ee6b42addf908ae714ef4ae4ebde916dddd",
|
||||
"_next/static/chunks/43b5x8qjjh3ax.js": "6ee7261cf9a63e0e6ea181bbb09125e09948588b6e10b5c02727c686a6062a3a",
|
||||
"_next/static/chunks/442d7ylb3po0z.js": "d95cedfbdcd00c674fd718cbbf391ec01c0728018b0db2461a06df7074049132",
|
||||
"_next/static/chunks/turbopack-25fzg9ay_1ss-.js": "c40f39e993a30c96d6247bb3a7b581538bb046efe8ef8ec07bea3ba32291750f",
|
||||
"_next/static/UaBN5JCH6ak16uUfBqNLe/_buildManifest.js": "9476e0afd3f9da68a64e6ec58631191fd3eaca62c9f5a377e7517fe9a89e59ea",
|
||||
"_next/static/UaBN5JCH6ak16uUfBqNLe/_clientMiddlewareManifest.js": "5483e3295dc35dfe29ea932efc85341c916f10ff78ff5b0e965e003710893a4a",
|
||||
"_next/static/UaBN5JCH6ak16uUfBqNLe/_ssgManifest.js": "678f6ce2cb80b1fe72fc67e7412be6e2ab6ada083111b64f7c40d35e3cba5e00",
|
||||
"_not-found/__next._full.txt": "91df8a13d382182604ebcb64955f1c3c3061039a77baf2dc3cf7b538f697b714",
|
||||
"_not-found/__next._not-found/__PAGE__.txt": "df1add43ba5b477152317ef94c947cbd4ee0ed710d3637e251470ae6bb324e7c",
|
||||
"_not-found/__next._tree.txt": "6d813cb1846cf7239fa4707821197719a9f1360022c9b7c4c5e3d69ca5769954",
|
||||
"_not-found.html": "a9116ceba97e13b799aeddfc5acb9ac49b920f2e741d228c081ed21ce5ec38b2",
|
||||
"_not-found.txt": "91df8a13d382182604ebcb64955f1c3c3061039a77baf2dc3cf7b538f697b714",
|
||||
"favicon.ico": "8d4923e2c487805ea9f852a685b2cf0fb10512ded8290d2a5c37d1cc8fd0702a",
|
||||
"favicon.svg": "63ecf8f37f8bb146ecfae3917187c6b692d4e801641e8a314486a4007912f3a3",
|
||||
"index.html": "8f6c7594f4b55f3a61b938d2876a3e23fbdd31cbba38c637a4e4eecfb5517a78",
|
||||
"index.txt": "030eb6a898b15f225c0e642e757f41c76546ac0c08bef77dd2eb4a866099043f",
|
||||
"logo192.png": "bc652031597fabd19b9f14e22a71f809490d218037521b3b64d013418c1390b4",
|
||||
"logo512.png": "5129e9bc1ba812b711fd9a646d3a38a906d365a26ee685df183b8752458944d4",
|
||||
"manifest.json": "2667ce63c2e0835b7007239816a5597639321d333da396a78638dfa9e8a7c935",
|
||||
"mockups/dashboard.svg": "318be3adb1324c26eb30f05572a29528a3e38331c6a604652eef75b54f8c29dc",
|
||||
"mockups/pipeline.svg": "db2ef41faabeb90e7ce85413e168581686c54535d970fc7d8deda3888a479de4",
|
||||
"mockups/workspace.svg": "9bbab22349147c7b01d6e18c93c622a6f8aed6dedaf23715189ab54d60e1ddbd",
|
||||
"robots.txt": "e5ab0d231eeb01b4a982d1c79a6729cac9797ad15a69247e4f28ba6afc149b4c"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TestRun id="c6ad76e3-d07a-4e95-84f1-8201c477c250" name="Connor@CESNIMDA 2026-11-03 14:40:57" runUser="Cesnimda\Connor" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
|
||||
<Times creation="2026-11-03T14:40:57.7513720+01:00" queuing="2026-11-03T14:40:57.7513725+01:00" start="2026-11-03T14:40:55.8598206+01:00" finish="2026-11-03T14:40:58.2352268+01:00" />
|
||||
<TestSettings name="default" id="921fe1f1-ad07-4f81-8df6-f63d61c2294a">
|
||||
<Deployment runDeploymentRoot="Connor_CESNIMDA_2026-11-03_14_40_57" />
|
||||
</TestSettings>
|
||||
<Results>
|
||||
<UnitTestResult executionId="b5eb4e0b-1b8c-46b1-8524-afe8d4b6cec8" testId="ee88b8e2-383e-d7d0-52bc-8593a0cd45b2" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_rejects_unbounded_or_invalid_ranges(from: "9999-12-01", to: "9999-12-31")" computerName="CESNIMDA" duration="00:00:00.0000991" startTime="2026-11-03T14:40:58.1421003+01:00" endTime="2026-11-03T14:40:58.1421003+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b5eb4e0b-1b8c-46b1-8524-afe8d4b6cec8" />
|
||||
<UnitTestResult executionId="58a6c510-92ad-442b-bf3f-5fe9e4e7cd78" testId="1d2f56b0-6892-bc4c-992f-c512e097577a" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_excludes_other_owners_deleted_and_out_of_range_dates" computerName="CESNIMDA" duration="00:00:00.8013487" startTime="2026-11-03T14:40:57.3507438+01:00" endTime="2026-11-03T14:40:57.3507574+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="58a6c510-92ad-442b-bf3f-5fe9e4e7cd78" />
|
||||
<UnitTestResult executionId="2df853ed-716c-4e59-85cd-d364716ae697" testId="6f507120-70ec-fc23-9a9c-b5662af9e900" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Creates_follow_up_in_selected_connected_calendar_with_stable_job_context" computerName="CESNIMDA" duration="00:00:00.0052834" startTime="2026-11-03T14:40:58.1684891+01:00" endTime="2026-11-03T14:40:58.1684899+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="2df853ed-716c-4e59-85cd-d364716ae697" />
|
||||
<UnitTestResult executionId="3a4dcb1e-181a-4117-8abe-cf4af1d6913d" testId="c247d002-0f3a-f835-2525-f73d9d342dc3" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Status_distinguishes_connection_from_calendar_consent" computerName="CESNIMDA" duration="00:00:00.0089181" startTime="2026-11-03T14:40:58.1631128+01:00" endTime="2026-11-03T14:40:58.1631130+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="3a4dcb1e-181a-4117-8abe-cf4af1d6913d" />
|
||||
<UnitTestResult executionId="c2891fbc-3ca6-4e8f-a5c5-9bd8eb334d2a" testId="b2951d7e-9ec2-af59-3389-f50ca75dc688" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_rejects_unbounded_or_invalid_ranges(from: "2026-01-01", to: "2026-12-31")" computerName="CESNIMDA" duration="00:00:00.0010424" startTime="2026-11-03T14:40:58.1416769+01:00" endTime="2026-11-03T14:40:58.1416770+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="c2891fbc-3ca6-4e8f-a5c5-9bd8eb334d2a" />
|
||||
<UnitTestResult executionId="d3e5b5b9-45ef-4c93-9592-6db43c99c165" testId="e5a658bc-a9ee-f8a6-00da-31a875195d4a" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_date_window_translates_on_sqlite_and_keeps_legacy_wall_clock_date" computerName="CESNIMDA" duration="00:00:00.7251395" startTime="2026-11-03T14:40:58.1405682+01:00" endTime="2026-11-03T14:40:58.1405685+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="d3e5b5b9-45ef-4c93-9592-6db43c99c165" />
|
||||
<UnitTestResult executionId="080e3f1b-745c-4cbe-8b90-096acefc8fa1" testId="2d738780-0c7e-809d-7a36-e22b11e017c3" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Rejects_another_owners_job_without_calling_provider" computerName="CESNIMDA" duration="00:00:00.0119656" startTime="2026-11-03T14:40:58.1541316+01:00" endTime="2026-11-03T14:40:58.1541318+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="080e3f1b-745c-4cbe-8b90-096acefc8fa1" />
|
||||
<UnitTestResult executionId="19e7f73f-27fc-47f6-b9e1-2ab0fdf9cd7c" testId="8ee9db5a-f803-b7e2-3c34-baac5edb34c8" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_includes_saved_deadlines_and_preserves_recorded_dates_without_provider_access" computerName="CESNIMDA" duration="00:00:00.0045499" startTime="2026-11-03T14:40:58.1732635+01:00" endTime="2026-11-03T14:40:58.1732640+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="19e7f73f-27fc-47f6-b9e1-2ab0fdf9cd7c" />
|
||||
<UnitTestResult executionId="86f83094-115f-4d7c-a248-a55368e48916" testId="eb7a20fa-63ab-b655-d3f0-046e269b171c" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_rejects_unbounded_or_invalid_ranges(from: "2026-09-30", to: "2026-09-01")" computerName="CESNIMDA" duration="00:00:00.0003042" startTime="2026-11-03T14:40:58.1419843+01:00" endTime="2026-11-03T14:40:58.1419844+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="86f83094-115f-4d7c-a248-a55368e48916" />
|
||||
<UnitTestResult executionId="f78f2327-4b2b-4997-871f-6f13f6b0e308" testId="9634ef4e-56ca-8e7e-717e-86049cac7b6b" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Downloads_portable_all_day_deadline_event_without_provider_credentials" computerName="CESNIMDA" duration="00:00:00.0650920" startTime="2026-11-03T14:40:57.4153592+01:00" endTime="2026-11-03T14:40:57.4153594+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="f78f2327-4b2b-4997-871f-6f13f6b0e308" />
|
||||
</Results>
|
||||
<TestDefinitions>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_rejects_unbounded_or_invalid_ranges(from: "9999-12-01", to: "9999-12-31")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="ee88b8e2-383e-d7d0-52bc-8593a0cd45b2">
|
||||
<Execution id="b5eb4e0b-1b8c-46b1-8524-afe8d4b6cec8" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Agenda_rejects_unbounded_or_invalid_ranges" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_date_window_translates_on_sqlite_and_keeps_legacy_wall_clock_date" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="e5a658bc-a9ee-f8a6-00da-31a875195d4a">
|
||||
<Execution id="d3e5b5b9-45ef-4c93-9592-6db43c99c165" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Agenda_date_window_translates_on_sqlite_and_keeps_legacy_wall_clock_date" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_rejects_unbounded_or_invalid_ranges(from: "2026-01-01", to: "2026-12-31")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="b2951d7e-9ec2-af59-3389-f50ca75dc688">
|
||||
<Execution id="c2891fbc-3ca6-4e8f-a5c5-9bd8eb334d2a" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Agenda_rejects_unbounded_or_invalid_ranges" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_rejects_unbounded_or_invalid_ranges(from: "2026-09-30", to: "2026-09-01")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="eb7a20fa-63ab-b655-d3f0-046e269b171c">
|
||||
<Execution id="86f83094-115f-4d7c-a248-a55368e48916" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Agenda_rejects_unbounded_or_invalid_ranges" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_includes_saved_deadlines_and_preserves_recorded_dates_without_provider_access" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="8ee9db5a-f803-b7e2-3c34-baac5edb34c8">
|
||||
<Execution id="19e7f73f-27fc-47f6-b9e1-2ab0fdf9cd7c" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Agenda_includes_saved_deadlines_and_preserves_recorded_dates_without_provider_access" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_excludes_other_owners_deleted_and_out_of_range_dates" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="1d2f56b0-6892-bc4c-992f-c512e097577a">
|
||||
<Execution id="58a6c510-92ad-442b-bf3f-5fe9e4e7cd78" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Agenda_excludes_other_owners_deleted_and_out_of_range_dates" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Status_distinguishes_connection_from_calendar_consent" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="c247d002-0f3a-f835-2525-f73d9d342dc3">
|
||||
<Execution id="3a4dcb1e-181a-4117-8abe-cf4af1d6913d" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Status_distinguishes_connection_from_calendar_consent" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Rejects_another_owners_job_without_calling_provider" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="2d738780-0c7e-809d-7a36-e22b11e017c3">
|
||||
<Execution id="080e3f1b-745c-4cbe-8b90-096acefc8fa1" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Rejects_another_owners_job_without_calling_provider" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Downloads_portable_all_day_deadline_event_without_provider_credentials" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="9634ef4e-56ca-8e7e-717e-86049cac7b6b">
|
||||
<Execution id="f78f2327-4b2b-4997-871f-6f13f6b0e308" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Downloads_portable_all_day_deadline_event_without_provider_credentials" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Creates_follow_up_in_selected_connected_calendar_with_stable_job_context" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="6f507120-70ec-fc23-9a9c-b5662af9e900">
|
||||
<Execution id="2df853ed-716c-4e59-85cd-d364716ae697" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Creates_follow_up_in_selected_connected_calendar_with_stable_job_context" />
|
||||
</UnitTest>
|
||||
</TestDefinitions>
|
||||
<TestEntries>
|
||||
<TestEntry testId="ee88b8e2-383e-d7d0-52bc-8593a0cd45b2" executionId="b5eb4e0b-1b8c-46b1-8524-afe8d4b6cec8" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="1d2f56b0-6892-bc4c-992f-c512e097577a" executionId="58a6c510-92ad-442b-bf3f-5fe9e4e7cd78" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="6f507120-70ec-fc23-9a9c-b5662af9e900" executionId="2df853ed-716c-4e59-85cd-d364716ae697" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="c247d002-0f3a-f835-2525-f73d9d342dc3" executionId="3a4dcb1e-181a-4117-8abe-cf4af1d6913d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="b2951d7e-9ec2-af59-3389-f50ca75dc688" executionId="c2891fbc-3ca6-4e8f-a5c5-9bd8eb334d2a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="e5a658bc-a9ee-f8a6-00da-31a875195d4a" executionId="d3e5b5b9-45ef-4c93-9592-6db43c99c165" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="2d738780-0c7e-809d-7a36-e22b11e017c3" executionId="080e3f1b-745c-4cbe-8b90-096acefc8fa1" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="8ee9db5a-f803-b7e2-3c34-baac5edb34c8" executionId="19e7f73f-27fc-47f6-b9e1-2ab0fdf9cd7c" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="eb7a20fa-63ab-b655-d3f0-046e269b171c" executionId="86f83094-115f-4d7c-a248-a55368e48916" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="9634ef4e-56ca-8e7e-717e-86049cac7b6b" executionId="f78f2327-4b2b-4997-871f-6f13f6b0e308" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
</TestEntries>
|
||||
<TestLists>
|
||||
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
|
||||
</TestLists>
|
||||
<ResultSummary outcome="Completed">
|
||||
<Counters total="10" executed="10" passed="10" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
|
||||
<Output>
|
||||
<StdOut>[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 9.0.19)
|
||||
[xUnit.net 00:00:00.11] Discovering: JobTrackerApi.Tests
|
||||
[xUnit.net 00:00:00.25] Discovered: JobTrackerApi.Tests
|
||||
[xUnit.net 00:00:00.26] Starting: JobTrackerApi.Tests
|
||||
[xUnit.net 00:00:01.91] Finished: JobTrackerApi.Tests
|
||||
</StdOut>
|
||||
</Output>
|
||||
</ResultSummary>
|
||||
</TestRun>
|
||||
@@ -0,0 +1,82 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TestRun id="5bc8bb0e-2dec-433b-8614-fd0ccf61fdbe" name="Connor@CESNIMDA 2026-11-03 14:36:12" runUser="Cesnimda\Connor" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
|
||||
<Times creation="2026-11-03T14:36:12.3036010+01:00" queuing="2026-11-03T14:36:12.3036015+01:00" start="2026-11-03T14:36:10.4039542+01:00" finish="2026-11-03T14:36:12.3085085+01:00" />
|
||||
<TestSettings name="default" id="61d12bcf-a26c-4eca-8d09-e8874ed941ed">
|
||||
<Deployment runDeploymentRoot="Connor_CESNIMDA_2026-11-03_14_36_12" />
|
||||
</TestSettings>
|
||||
<Results>
|
||||
<UnitTestResult executionId="b50dfe03-2dee-4d1f-85df-52da3b414b32" testId="6f507120-70ec-fc23-9a9c-b5662af9e900" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Creates_follow_up_in_selected_connected_calendar_with_stable_job_context" computerName="CESNIMDA" duration="00:00:00.0081693" startTime="2026-11-03T14:36:12.2007274+01:00" endTime="2026-11-03T14:36:12.2007277+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b50dfe03-2dee-4d1f-85df-52da3b414b32" />
|
||||
<UnitTestResult executionId="157a7632-4d6b-4a8b-9149-43b5fdd95f98" testId="ee88b8e2-383e-d7d0-52bc-8593a0cd45b2" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_rejects_unbounded_or_invalid_ranges(from: "9999-12-01", to: "9999-12-31")" computerName="CESNIMDA" duration="00:00:00.0001114" startTime="2026-11-03T14:36:12.1681996+01:00" endTime="2026-11-03T14:36:12.1681996+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="157a7632-4d6b-4a8b-9149-43b5fdd95f98" />
|
||||
<UnitTestResult executionId="b394ddec-a2a9-4b5f-a671-a27fae8f0b19" testId="b2951d7e-9ec2-af59-3389-f50ca75dc688" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_rejects_unbounded_or_invalid_ranges(from: "2026-01-01", to: "2026-12-31")" computerName="CESNIMDA" duration="00:00:00.0023969" startTime="2026-11-03T14:36:12.1677078+01:00" endTime="2026-11-03T14:36:12.1677080+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b394ddec-a2a9-4b5f-a671-a27fae8f0b19" />
|
||||
<UnitTestResult executionId="f8126446-c1e2-4f89-95c9-42e7d02dc212" testId="eb7a20fa-63ab-b655-d3f0-046e269b171c" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_rejects_unbounded_or_invalid_ranges(from: "2026-09-30", to: "2026-09-01")" computerName="CESNIMDA" duration="00:00:00.0003188" startTime="2026-11-03T14:36:12.1680680+01:00" endTime="2026-11-03T14:36:12.1680681+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="f8126446-c1e2-4f89-95c9-42e7d02dc212" />
|
||||
<UnitTestResult executionId="9d2037f3-ddd0-43d8-bfd0-6c44bf6ba03a" testId="2d738780-0c7e-809d-7a36-e22b11e017c3" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Rejects_another_owners_job_without_calling_provider" computerName="CESNIMDA" duration="00:00:00.0129511" startTime="2026-11-03T14:36:12.1812804+01:00" endTime="2026-11-03T14:36:12.1812808+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="9d2037f3-ddd0-43d8-bfd0-6c44bf6ba03a" />
|
||||
<UnitTestResult executionId="044d72d0-a735-4dcb-951f-969798bb8a1d" testId="1d2f56b0-6892-bc4c-992f-c512e097577a" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_excludes_other_owners_deleted_and_out_of_range_dates" computerName="CESNIMDA" duration="00:00:00.8939070" startTime="2026-11-03T14:36:12.0960908+01:00" endTime="2026-11-03T14:36:12.0961049+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="044d72d0-a735-4dcb-951f-969798bb8a1d" />
|
||||
<UnitTestResult executionId="b2db1936-c80d-4fe3-9455-3c2d44aa6ae0" testId="8ee9db5a-f803-b7e2-3c34-baac5edb34c8" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_includes_saved_deadlines_and_preserves_recorded_dates_without_provider_access" computerName="CESNIMDA" duration="00:00:00.0050369" startTime="2026-11-03T14:36:12.2058658+01:00" endTime="2026-11-03T14:36:12.2058662+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b2db1936-c80d-4fe3-9455-3c2d44aa6ae0" />
|
||||
<UnitTestResult executionId="0469dd82-825d-41ee-87cc-a6563d51eadb" testId="c247d002-0f3a-f835-2525-f73d9d342dc3" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Status_distinguishes_connection_from_calendar_consent" computerName="CESNIMDA" duration="00:00:00.0110850" startTime="2026-11-03T14:36:12.1924420+01:00" endTime="2026-11-03T14:36:12.1924423+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0469dd82-825d-41ee-87cc-a6563d51eadb" />
|
||||
<UnitTestResult executionId="c3608f3f-5e66-45f1-8ebf-389f25bfb23d" testId="9634ef4e-56ca-8e7e-717e-86049cac7b6b" testName="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Downloads_portable_all_day_deadline_event_without_provider_credentials" computerName="CESNIMDA" duration="00:00:00.0693692" startTime="2026-11-03T14:36:12.1653066+01:00" endTime="2026-11-03T14:36:12.1653068+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="c3608f3f-5e66-45f1-8ebf-389f25bfb23d" />
|
||||
</Results>
|
||||
<TestDefinitions>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_rejects_unbounded_or_invalid_ranges(from: "9999-12-01", to: "9999-12-31")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="ee88b8e2-383e-d7d0-52bc-8593a0cd45b2">
|
||||
<Execution id="157a7632-4d6b-4a8b-9149-43b5fdd95f98" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Agenda_rejects_unbounded_or_invalid_ranges" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_rejects_unbounded_or_invalid_ranges(from: "2026-01-01", to: "2026-12-31")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="b2951d7e-9ec2-af59-3389-f50ca75dc688">
|
||||
<Execution id="b394ddec-a2a9-4b5f-a671-a27fae8f0b19" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Agenda_rejects_unbounded_or_invalid_ranges" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_rejects_unbounded_or_invalid_ranges(from: "2026-09-30", to: "2026-09-01")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="eb7a20fa-63ab-b655-d3f0-046e269b171c">
|
||||
<Execution id="f8126446-c1e2-4f89-95c9-42e7d02dc212" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Agenda_rejects_unbounded_or_invalid_ranges" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_includes_saved_deadlines_and_preserves_recorded_dates_without_provider_access" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="8ee9db5a-f803-b7e2-3c34-baac5edb34c8">
|
||||
<Execution id="b2db1936-c80d-4fe3-9455-3c2d44aa6ae0" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Agenda_includes_saved_deadlines_and_preserves_recorded_dates_without_provider_access" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Agenda_excludes_other_owners_deleted_and_out_of_range_dates" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="1d2f56b0-6892-bc4c-992f-c512e097577a">
|
||||
<Execution id="044d72d0-a735-4dcb-951f-969798bb8a1d" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Agenda_excludes_other_owners_deleted_and_out_of_range_dates" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Status_distinguishes_connection_from_calendar_consent" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="c247d002-0f3a-f835-2525-f73d9d342dc3">
|
||||
<Execution id="0469dd82-825d-41ee-87cc-a6563d51eadb" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Status_distinguishes_connection_from_calendar_consent" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Rejects_another_owners_job_without_calling_provider" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="2d738780-0c7e-809d-7a36-e22b11e017c3">
|
||||
<Execution id="9d2037f3-ddd0-43d8-bfd0-6c44bf6ba03a" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Rejects_another_owners_job_without_calling_provider" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Downloads_portable_all_day_deadline_event_without_provider_credentials" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="9634ef4e-56ca-8e7e-717e-86049cac7b6b">
|
||||
<Execution id="c3608f3f-5e66-45f1-8ebf-389f25bfb23d" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Downloads_portable_all_day_deadline_event_without_provider_credentials" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.ApplicationCalendarControllerTests.Creates_follow_up_in_selected_connected_calendar_with_stable_job_context" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="6f507120-70ec-fc23-9a9c-b5662af9e900">
|
||||
<Execution id="b50dfe03-2dee-4d1f-85df-52da3b414b32" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.ApplicationCalendarControllerTests" name="Creates_follow_up_in_selected_connected_calendar_with_stable_job_context" />
|
||||
</UnitTest>
|
||||
</TestDefinitions>
|
||||
<TestEntries>
|
||||
<TestEntry testId="6f507120-70ec-fc23-9a9c-b5662af9e900" executionId="b50dfe03-2dee-4d1f-85df-52da3b414b32" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ee88b8e2-383e-d7d0-52bc-8593a0cd45b2" executionId="157a7632-4d6b-4a8b-9149-43b5fdd95f98" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="b2951d7e-9ec2-af59-3389-f50ca75dc688" executionId="b394ddec-a2a9-4b5f-a671-a27fae8f0b19" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="eb7a20fa-63ab-b655-d3f0-046e269b171c" executionId="f8126446-c1e2-4f89-95c9-42e7d02dc212" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="2d738780-0c7e-809d-7a36-e22b11e017c3" executionId="9d2037f3-ddd0-43d8-bfd0-6c44bf6ba03a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="1d2f56b0-6892-bc4c-992f-c512e097577a" executionId="044d72d0-a735-4dcb-951f-969798bb8a1d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="8ee9db5a-f803-b7e2-3c34-baac5edb34c8" executionId="b2db1936-c80d-4fe3-9455-3c2d44aa6ae0" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="c247d002-0f3a-f835-2525-f73d9d342dc3" executionId="0469dd82-825d-41ee-87cc-a6563d51eadb" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="9634ef4e-56ca-8e7e-717e-86049cac7b6b" executionId="c3608f3f-5e66-45f1-8ebf-389f25bfb23d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
</TestEntries>
|
||||
<TestLists>
|
||||
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
|
||||
</TestLists>
|
||||
<ResultSummary outcome="Completed">
|
||||
<Counters total="9" executed="9" passed="9" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
|
||||
<Output>
|
||||
<StdOut>[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 9.0.19)
|
||||
[xUnit.net 00:00:00.19] Discovering: JobTrackerApi.Tests
|
||||
[xUnit.net 00:00:00.35] Discovered: JobTrackerApi.Tests
|
||||
[xUnit.net 00:00:00.35] Starting: JobTrackerApi.Tests
|
||||
[xUnit.net 00:00:01.39] Finished: JobTrackerApi.Tests
|
||||
</StdOut>
|
||||
</Output>
|
||||
</ResultSummary>
|
||||
</TestRun>
|
||||
@@ -0,0 +1,929 @@
|
||||
{
|
||||
"screens": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"journeys": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"unexpectedWrites": [],
|
||||
"reads": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
}
|
||||
],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com"
|
||||
],
|
||||
"limits": [
|
||||
"Controlled API fixtures, not a live backend/provider or reminder delivery.",
|
||||
"Date-level recorded deadline/follow-up display; no fabricated interview appointments or source timezone reconstruction.",
|
||||
"No native-device, physical rendering, final security or release qualification."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"screens": [],
|
||||
"journeys": [],
|
||||
"errors": [],
|
||||
"unexpectedWrites": [],
|
||||
"reads": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
}
|
||||
],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com"
|
||||
],
|
||||
"limits": [
|
||||
"Controlled API fixtures, not a live backend/provider or reminder delivery.",
|
||||
"Date-level recorded deadline/follow-up display; no fabricated interview appointments or source timezone reconstruction.",
|
||||
"No native-device, physical rendering, final security or release qualification."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"screens": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"journeys": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"unexpectedWrites": [],
|
||||
"reads": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
}
|
||||
],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com"
|
||||
],
|
||||
"limits": [
|
||||
"Controlled API fixtures, not a live backend/provider or reminder delivery.",
|
||||
"Date-level recorded deadline/follow-up display; no fabricated interview appointments or source timezone reconstruction.",
|
||||
"No native-device, physical rendering, final security or release qualification."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,929 @@
|
||||
{
|
||||
"screens": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "agenda",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "month",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"state": "linked-application",
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"journeys": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"agendaMonthSelectionPersistedPreferenceBoundedMonthNavigationLinkedDeadline": "PASS"
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"unexpectedWrites": [],
|
||||
"reads": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-12-01",
|
||||
"to": "2026-12-31"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
}
|
||||
],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com"
|
||||
],
|
||||
"limits": [
|
||||
"Controlled API fixtures, not a live backend/provider or reminder delivery.",
|
||||
"Date-level recorded deadline/follow-up display; no fabricated interview appointments or source timezone reconstruction.",
|
||||
"No native-device, physical rendering, final security or release qualification."
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 92 KiB |
|
After Width: | Height: | Size: 60 KiB |