feat(ui): migrate company relationships and save recovery

This commit is contained in:
cesnimda
2026-10-13 08:59:02 +02:00
parent 34a4d6dc6b
commit a8aba85299
14 changed files with 5717 additions and 62 deletions
@@ -0,0 +1,140 @@
{
"checkpoint": "P7-05",
"slice": "Companies",
"recordedUtc": "2026-10-12T22:51:43.208402+00:00",
"entry": "CONDITIONAL_GO",
"previousDiscoveryPush": {
"observedUtc": "2026-10-12T22:49:31.085724+00:00",
"branch": "codex/ui-redesign-phase4",
"head": "34a4d6dc6b4bbe546ef01be91e98bd922b99444f",
"originDevelopment": "34a4d6dc6b4bbe546ef01be91e98bd922b99444f",
"liveDevelopment": "34a4d6dc6b4bbe546ef01be91e98bd922b99444f",
"main": "27657f31131cd95d42f0e1290853ec9c9b3959a4",
"originMain": "27657f31131cd95d42f0e1290853ec9c9b3959a4",
"liveMain": "27657f31131cd95d42f0e1290853ec9c9b3959a4",
"workingTreeClean": true,
"pendingPaths": [],
"commands": [
{
"command": [
"rtk",
"proxy",
"git",
"branch",
"--show-current"
],
"exitCode": 0,
"stdout": "codex/ui-redesign-phase4\n",
"stderr": "[rtk] /!\\ No hook installed \u2014 run `rtk init -g` for automatic token savings\n"
},
{
"command": [
"rtk",
"proxy",
"git",
"rev-parse",
"HEAD"
],
"exitCode": 0,
"stdout": "34a4d6dc6b4bbe546ef01be91e98bd922b99444f\n",
"stderr": "[rtk] /!\\ No hook installed \u2014 run `rtk init -g` for automatic token savings\n"
},
{
"command": [
"rtk",
"proxy",
"git",
"rev-parse",
"origin/codex/ui-redesign-phase4"
],
"exitCode": 0,
"stdout": "34a4d6dc6b4bbe546ef01be91e98bd922b99444f\n",
"stderr": "[rtk] /!\\ No hook installed \u2014 run `rtk init -g` for automatic token savings\n"
},
{
"command": [
"rtk",
"proxy",
"git",
"rev-parse",
"main"
],
"exitCode": 0,
"stdout": "27657f31131cd95d42f0e1290853ec9c9b3959a4\n",
"stderr": "[rtk] /!\\ No hook installed \u2014 run `rtk init -g` for automatic token savings\n"
},
{
"command": [
"rtk",
"proxy",
"git",
"rev-parse",
"origin/main"
],
"exitCode": 0,
"stdout": "27657f31131cd95d42f0e1290853ec9c9b3959a4\n",
"stderr": "[rtk] /!\\ No hook installed \u2014 run `rtk init -g` for automatic token savings\n"
},
{
"command": [
"rtk",
"proxy",
"git",
"ls-remote",
"origin",
"refs/heads/codex/ui-redesign-phase4",
"refs/heads/main"
],
"exitCode": 0,
"stdout": "34a4d6dc6b4bbe546ef01be91e98bd922b99444f\trefs/heads/codex/ui-redesign-phase4\n27657f31131cd95d42f0e1290853ec9c9b3959a4\trefs/heads/main\n",
"stderr": "[rtk] /!\\ No hook installed \u2014 run `rtk init -g` for automatic token savings\n"
},
{
"command": [
"rtk",
"proxy",
"git",
"status",
"--porcelain=v1"
],
"exitCode": 0,
"stdout": "",
"stderr": "[rtk] /!\\ No hook installed \u2014 run `rtk init -g` for automatic token savings\n"
}
]
},
"baselineSources": [
{
"path": "job-tracker-ui/src/components/CompaniesTable.tsx",
"gitBlobSha256": "f95c5a8aff51cf5d75ae40227c1d07e3277cfdf5eabab3cb6d386cfc3425c72b",
"bytes": 16512
},
{
"path": "job-tracker-ui/src/companies-relationship.test.tsx",
"gitBlobSha256": "df2e0f95ea289c38e0aca47e3c043753397ef764d95962084b24b61872388d1b",
"bytes": 4471
},
{
"path": "job-tracker-ui/src/locale-fetch-stability.test.tsx",
"gitBlobSha256": "9bb7d13ca31e135d5d5324a9778fb923ab8498494c727193711b8b507d837627",
"bytes": 1536
},
{
"path": "job-tracker-ui/src/hooks/useCompanies.ts",
"gitBlobSha256": "a48e2ec2abf50c89b9a983bed93bc3c8b91fc537af6673eb9245cc4bdd5fac10",
"bytes": 2344
},
{
"path": "JobTrackerApi/Controllers/CompaniesController.cs",
"gitBlobSha256": "c7be79cc92ad781a7d5fbf52e32dfe24db8915e591fa694a1ffdd6c56861feca",
"bytes": 8464
},
{
"path": "JobTrackerApi.Tests/CompanyRelationshipTests.cs",
"gitBlobSha256": "9f4ebce5eca006ed363a613b5fd4492f47ee60fe5ab942cfd3e9329dae233239",
"bytes": 3006
}
],
"baseline": "Affected6/2 frontendPASS; company relation backend2PASS. Wholefrontend573/89 inherited;682/93 and257browser derived only. Existing useCompanies consumers unchanged.",
"scope": "Existing nine-field PUT, company edit query/hash/state, owned relationship projections/latest20 contacts, no standalone company-create UI. No backend/schema/production/Phase8/AI change."
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,104 @@
{
"schemaVersion": 1,
"checkpoint": "p7-05",
"status": "PASS",
"checkedUtc": "2026-10-13T06:58:05.578020+00:00",
"commands": [
{
"name": "secret-scan",
"command": [
"rtk",
"proxy",
"C:\\Users\\Connor\\AppData\\Local\\Programs\\Python\\Python312\\python.exe",
"-X",
"utf8",
"scripts/supply-chain.py",
"scan-secrets"
],
"startedUtc": "2026-10-13T06:58:01.949800+00:00",
"finishedUtc": "2026-10-13T06:58:04.861383+00:00",
"exitCode": 0,
"log": ".artifacts/phase7/current/static/20261013T065801Z/secret-scan.log",
"logSha256Raw": "c5a88d5ebdc042adba125c1eaacbe44f9f4a5c19898c0f195573c00d511aa28d"
},
{
"name": "working-whitespace",
"command": [
"rtk",
"proxy",
"git",
"diff",
"--check"
],
"startedUtc": "2026-10-13T06:58:04.861383+00:00",
"finishedUtc": "2026-10-13T06:58:04.963155+00:00",
"exitCode": 0,
"log": ".artifacts/phase7/current/static/20261013T065801Z/working-whitespace.log",
"logSha256Raw": "4011fa7ef9791e39a64f9327c032b5969eac6512908f788160860f86dbac7a49"
},
{
"name": "staged-whitespace",
"command": [
"rtk",
"proxy",
"git",
"diff",
"--cached",
"--check"
],
"startedUtc": "2026-10-13T06:58:04.963655+00:00",
"finishedUtc": "2026-10-13T06:58:05.040920+00:00",
"exitCode": 0,
"log": ".artifacts/phase7/current/static/20261013T065801Z/staged-whitespace.log",
"logSha256Raw": "d2993bc68ad9a63f711c8f5473155e2ba00fdcd461220cc3849185f2f9ad93e6"
},
{
"name": "phase7-whitespace",
"command": [
"rtk",
"proxy",
"git",
"diff",
"--check",
"b5319981ad3d1bd635daff861453d23c0de5320b"
],
"startedUtc": "2026-10-13T06:58:05.040920+00:00",
"finishedUtc": "2026-10-13T06:58:05.184972+00:00",
"exitCode": 0,
"log": ".artifacts/phase7/current/static/20261013T065801Z/phase7-whitespace.log",
"logSha256Raw": "0e46215e1541a31f97ddf4225979cdea0a745fce18958c41cc8dc307e6b16bfe"
}
],
"untrackedSecretScan": {
"files": 3,
"findings": 0
},
"documentation": {
"files": 12,
"relativeLinks": 425,
"errors": []
},
"preservation": {
"groups": 57,
"statuses": {
"PARTIAL": 56,
"PASS": 0,
"FAIL": 0,
"DEFERRED": 1
},
"originalRoutesPreserved": true,
"currentConcreteRoutes": 32
},
"production": {
"main": "27657f31131cd95d42f0e1290853ec9c9b3959a4",
"originMain": "27657f31131cd95d42f0e1290853ec9c9b3959a4",
"status": "NO-GO",
"qualification": "Local fetched refs; direct push observation recorded separately."
},
"hashPolicy": "Portable JSON UTF8 LF; raw log hashes measure exact saved bytes.",
"limits": [
"Pattern scanner skips binary and files over2MiB; not historical Git/production secrets.",
"Local links check target existence, not URL/heading anchors.",
"Static evidence is not runtime/manual/device/provider/production acceptance."
]
}
@@ -3,7 +3,7 @@
"checkpoint": "P7-05",
"slice": "Discovery",
"recordedUtc": "2026-10-12T22:47:47.672750+00:00",
"acceptance": "DISCOVERY_IMPLEMENTED_SCOPE_CONDITIONAL_GO_HYGIENE_PASS_NORMAL_PUSH_PENDING_OTHER_DOMAINS_PENDING",
"acceptance": "DISCOVERY_IMPLEMENTED_SCOPE_CONDITIONAL_GO_NORMAL_PUSH_VERIFIED_OTHER_DOMAINS_PENDING",
"entryReceipt": {
"checkpoint": "P7-05",
"entry": "CONDITIONAL GO; approved four domain boundaries pending",
@@ -2739,5 +2739,105 @@
"bytes": 3166,
"hashPolicy": "Exact raw bytes",
"qualification": "Four commands0,12docs420links0errors,57groups32routes; final staged recheck follows metadata."
},
"normalPushReceipt": {
"observedUtc": "2026-10-12T22:49:31.085724+00:00",
"branch": "codex/ui-redesign-phase4",
"head": "34a4d6dc6b4bbe546ef01be91e98bd922b99444f",
"originDevelopment": "34a4d6dc6b4bbe546ef01be91e98bd922b99444f",
"liveDevelopment": "34a4d6dc6b4bbe546ef01be91e98bd922b99444f",
"main": "27657f31131cd95d42f0e1290853ec9c9b3959a4",
"originMain": "27657f31131cd95d42f0e1290853ec9c9b3959a4",
"liveMain": "27657f31131cd95d42f0e1290853ec9c9b3959a4",
"workingTreeClean": true,
"pendingPaths": [],
"commands": [
{
"command": [
"rtk",
"proxy",
"git",
"branch",
"--show-current"
],
"exitCode": 0,
"stdout": "codex/ui-redesign-phase4\n",
"stderr": "[rtk] /!\\ No hook installed — run `rtk init -g` for automatic token savings\n"
},
{
"command": [
"rtk",
"proxy",
"git",
"rev-parse",
"HEAD"
],
"exitCode": 0,
"stdout": "34a4d6dc6b4bbe546ef01be91e98bd922b99444f\n",
"stderr": "[rtk] /!\\ No hook installed — run `rtk init -g` for automatic token savings\n"
},
{
"command": [
"rtk",
"proxy",
"git",
"rev-parse",
"origin/codex/ui-redesign-phase4"
],
"exitCode": 0,
"stdout": "34a4d6dc6b4bbe546ef01be91e98bd922b99444f\n",
"stderr": "[rtk] /!\\ No hook installed — run `rtk init -g` for automatic token savings\n"
},
{
"command": [
"rtk",
"proxy",
"git",
"rev-parse",
"main"
],
"exitCode": 0,
"stdout": "27657f31131cd95d42f0e1290853ec9c9b3959a4\n",
"stderr": "[rtk] /!\\ No hook installed — run `rtk init -g` for automatic token savings\n"
},
{
"command": [
"rtk",
"proxy",
"git",
"rev-parse",
"origin/main"
],
"exitCode": 0,
"stdout": "27657f31131cd95d42f0e1290853ec9c9b3959a4\n",
"stderr": "[rtk] /!\\ No hook installed — run `rtk init -g` for automatic token savings\n"
},
{
"command": [
"rtk",
"proxy",
"git",
"ls-remote",
"origin",
"refs/heads/codex/ui-redesign-phase4",
"refs/heads/main"
],
"exitCode": 0,
"stdout": "34a4d6dc6b4bbe546ef01be91e98bd922b99444f\trefs/heads/codex/ui-redesign-phase4\n27657f31131cd95d42f0e1290853ec9c9b3959a4\trefs/heads/main\n",
"stderr": "[rtk] /!\\ No hook installed — run `rtk init -g` for automatic token savings\n"
},
{
"command": [
"rtk",
"proxy",
"git",
"status",
"--porcelain=v1"
],
"exitCode": 0,
"stdout": "",
"stderr": "[rtk] /!\\ No hook installed — run `rtk init -g` for automatic token savings\n"
}
]
}
}