@knpkv/codecommit-core 0.18.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/AwsClient/AwsClientGated.d.ts.map +1 -1
  2. package/dist/AwsClient/AwsClientGated.js +0 -2
  3. package/dist/AwsClient/AwsClientGated.js.map +1 -1
  4. package/dist/AwsClient/approvalRuleContent.d.ts +2 -1
  5. package/dist/AwsClient/approvalRuleContent.d.ts.map +1 -1
  6. package/dist/AwsClient/approvalRuleContent.js +25 -18
  7. package/dist/AwsClient/approvalRuleContent.js.map +1 -1
  8. package/dist/AwsClient/getCallerIdentity.d.ts +2 -0
  9. package/dist/AwsClient/getCallerIdentity.d.ts.map +1 -1
  10. package/dist/AwsClient/getCallerIdentity.js +8 -4
  11. package/dist/AwsClient/getCallerIdentity.js.map +1 -1
  12. package/dist/AwsClient/getPullRequest.d.ts.map +1 -1
  13. package/dist/AwsClient/getPullRequest.js +19 -10
  14. package/dist/AwsClient/getPullRequest.js.map +1 -1
  15. package/dist/AwsClient/getPullRequests.d.ts +30 -23
  16. package/dist/AwsClient/getPullRequests.d.ts.map +1 -1
  17. package/dist/AwsClient/getPullRequests.js +47 -32
  18. package/dist/AwsClient/getPullRequests.js.map +1 -1
  19. package/dist/AwsClient/index.d.ts +1 -10
  20. package/dist/AwsClient/index.d.ts.map +1 -1
  21. package/dist/AwsClient/index.js +0 -1
  22. package/dist/AwsClient/index.js.map +1 -1
  23. package/dist/AwsClient/internal.d.ts +11 -1
  24. package/dist/AwsClient/internal.d.ts.map +1 -1
  25. package/dist/AwsClient/internal.js +7 -0
  26. package/dist/AwsClient/internal.js.map +1 -1
  27. package/dist/AwsClientConfig/internal/ProfileCredentialProvider.d.ts +2 -17
  28. package/dist/AwsClientConfig/internal/ProfileCredentialProvider.d.ts.map +1 -1
  29. package/dist/AwsClientConfig/internal/ProfileCredentialProvider.js +2 -6
  30. package/dist/AwsClientConfig/internal/ProfileCredentialProvider.js.map +1 -1
  31. package/dist/AwsClientConfig.js +1 -1
  32. package/dist/AwsClientConfig.js.map +1 -1
  33. package/dist/AwsCredentialErrors.d.ts +8 -0
  34. package/dist/AwsCredentialErrors.d.ts.map +1 -0
  35. package/dist/AwsCredentialErrors.js +40 -0
  36. package/dist/AwsCredentialErrors.js.map +1 -0
  37. package/dist/AwsProfileCredentials.d.ts +23 -0
  38. package/dist/AwsProfileCredentials.d.ts.map +1 -0
  39. package/dist/AwsProfileCredentials.js +29 -0
  40. package/dist/AwsProfileCredentials.js.map +1 -0
  41. package/dist/CacheService/Database.d.ts +1 -1
  42. package/dist/CacheService/Database.d.ts.map +1 -1
  43. package/dist/CacheService/Database.js +6 -2
  44. package/dist/CacheService/Database.js.map +1 -1
  45. package/dist/CacheService/diff.d.ts +10 -0
  46. package/dist/CacheService/diff.d.ts.map +1 -1
  47. package/dist/CacheService/diff.js +12 -1
  48. package/dist/CacheService/diff.js.map +1 -1
  49. package/dist/CacheService/migrations/0022_pull_request_approval_unknown.d.ts +9 -0
  50. package/dist/CacheService/migrations/0022_pull_request_approval_unknown.d.ts.map +1 -0
  51. package/dist/CacheService/migrations/0022_pull_request_approval_unknown.js +8 -0
  52. package/dist/CacheService/migrations/0022_pull_request_approval_unknown.js.map +1 -0
  53. package/dist/CacheService/migrations/0023_pull_request_row_versions.d.ts +17 -0
  54. package/dist/CacheService/migrations/0023_pull_request_row_versions.d.ts.map +1 -0
  55. package/dist/CacheService/migrations/0023_pull_request_row_versions.js +37 -0
  56. package/dist/CacheService/migrations/0023_pull_request_row_versions.js.map +1 -0
  57. package/dist/CacheService/repos/PullRequestRepo/index.d.ts +34 -8
  58. package/dist/CacheService/repos/PullRequestRepo/index.d.ts.map +1 -1
  59. package/dist/CacheService/repos/PullRequestRepo/index.js +1 -1
  60. package/dist/CacheService/repos/PullRequestRepo/index.js.map +1 -1
  61. package/dist/CacheService/repos/PullRequestRepo/internal.d.ts +69 -2
  62. package/dist/CacheService/repos/PullRequestRepo/internal.d.ts.map +1 -1
  63. package/dist/CacheService/repos/PullRequestRepo/internal.js +73 -2
  64. package/dist/CacheService/repos/PullRequestRepo/internal.js.map +1 -1
  65. package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts +39 -16
  66. package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts.map +1 -1
  67. package/dist/CacheService/repos/PullRequestRepo/mutations.js +61 -92
  68. package/dist/CacheService/repos/PullRequestRepo/mutations.js.map +1 -1
  69. package/dist/CacheService/repos/PullRequestRepo/queries.d.ts +24 -0
  70. package/dist/CacheService/repos/PullRequestRepo/queries.d.ts.map +1 -1
  71. package/dist/CacheService/repos/PullRequestRepo/queries.js +10 -3
  72. package/dist/CacheService/repos/PullRequestRepo/queries.js.map +1 -1
  73. package/dist/CacheService/repos/PullRequestRepo/rowWrites.d.ts +131 -0
  74. package/dist/CacheService/repos/PullRequestRepo/rowWrites.d.ts.map +1 -0
  75. package/dist/CacheService/repos/PullRequestRepo/rowWrites.js +214 -0
  76. package/dist/CacheService/repos/PullRequestRepo/rowWrites.js.map +1 -0
  77. package/dist/CacheService/repos/StatsRepo/internal.d.ts +0 -1
  78. package/dist/CacheService/repos/StatsRepo/internal.d.ts.map +1 -1
  79. package/dist/CacheService/repos/StatsRepo/internal.js.map +1 -1
  80. package/dist/CacheService/repos/StatsRepo/queries.d.ts.map +1 -1
  81. package/dist/CacheService/repos/StatsRepo/queries.js +2 -1
  82. package/dist/CacheService/repos/StatsRepo/queries.js.map +1 -1
  83. package/dist/CacheService/repos/StatsRepo/reviewerData.d.ts.map +1 -1
  84. package/dist/CacheService/repos/StatsRepo/reviewerData.js +1 -2
  85. package/dist/CacheService/repos/StatsRepo/reviewerData.js.map +1 -1
  86. package/dist/Domain.d.ts +153 -7
  87. package/dist/Domain.d.ts.map +1 -1
  88. package/dist/Domain.js +107 -1
  89. package/dist/Domain.js.map +1 -1
  90. package/dist/HealthScore.d.ts +1 -1
  91. package/dist/HealthScore.d.ts.map +1 -1
  92. package/dist/HealthScore.js +20 -5
  93. package/dist/HealthScore.js.map +1 -1
  94. package/dist/IdentityLifecycle.d.ts +288 -0
  95. package/dist/IdentityLifecycle.d.ts.map +1 -0
  96. package/dist/IdentityLifecycle.js +125 -0
  97. package/dist/IdentityLifecycle.js.map +1 -0
  98. package/dist/PRService/internal.d.ts +17 -1
  99. package/dist/PRService/internal.d.ts.map +1 -1
  100. package/dist/PRService/internal.js +8 -0
  101. package/dist/PRService/internal.js.map +1 -1
  102. package/dist/PRService/refresh.d.ts.map +1 -1
  103. package/dist/PRService/refresh.js +2 -1
  104. package/dist/PRService/refresh.js.map +1 -1
  105. package/dist/PRService/refreshDiffs.d.ts.map +1 -1
  106. package/dist/PRService/refreshDiffs.js +8 -5
  107. package/dist/PRService/refreshDiffs.js.map +1 -1
  108. package/dist/PRService/refreshEnrich.d.ts.map +1 -1
  109. package/dist/PRService/refreshEnrich.js +26 -45
  110. package/dist/PRService/refreshEnrich.js.map +1 -1
  111. package/dist/PRService/refreshFetch.d.ts +3 -1
  112. package/dist/PRService/refreshFetch.d.ts.map +1 -1
  113. package/dist/PRService/refreshFetch.js +108 -74
  114. package/dist/PRService/refreshFetch.js.map +1 -1
  115. package/dist/PRService/refreshHistory.d.ts.map +1 -1
  116. package/dist/PRService/refreshHistory.js +19 -11
  117. package/dist/PRService/refreshHistory.js.map +1 -1
  118. package/dist/PRService/refreshResolve.d.ts +10 -0
  119. package/dist/PRService/refreshResolve.d.ts.map +1 -1
  120. package/dist/PRService/refreshResolve.js +43 -28
  121. package/dist/PRService/refreshResolve.js.map +1 -1
  122. package/dist/PRService/refreshScore.d.ts.map +1 -1
  123. package/dist/PRService/refreshScore.js +4 -2
  124. package/dist/PRService/refreshScore.js.map +1 -1
  125. package/dist/PRService/refreshSinglePR.d.ts.map +1 -1
  126. package/dist/PRService/refreshSinglePR.js +44 -25
  127. package/dist/PRService/refreshSinglePR.js.map +1 -1
  128. package/package.json +1 -1
@@ -8,47 +8,49 @@
8
8
  */
9
9
  import { Array as Arr, Cause, Effect, Option, Predicate, Ref, Stream, SubscriptionRef } from "effect";
10
10
  import { AwsClient } from "../AwsClient/index.js";
11
- import { diffApprovalPools, diffPR } from "../CacheService/diff.js";
11
+ import { isCredentialInvalidCause } from "../AwsCredentialErrors.js";
12
+ import { diffApprovalPools, diffPR, notificationsFor } from "../CacheService/diff.js";
12
13
  import { NotificationRepo } from "../CacheService/repos/NotificationRepo.js";
13
14
  import { PullRequestRepo } from "../CacheService/repos/PullRequestRepo/index.js";
14
15
  import { SubscriptionRepo } from "../CacheService/repos/SubscriptionRepo.js";
16
+ import { approvalUnknownReasonText } from "../Domain.js";
17
+ import { applyIdentityEvent, IdentityEvent } from "../IdentityLifecycle.js";
15
18
  import { prToUpsertInput } from "./internal.js";
16
19
  import { isSubscribedForCoordinates, subscriptionKey } from "./refreshResolve.js";
17
- /** A pull-request read that failed only because its approval rules could not be evaluated. */
18
- const failedOnlyOnApprovalEvaluation = (error) => error._tag === "AwsApiError" && Predicate.isTagged(error.cause, "ApprovalEvaluationError");
19
- /** The evaluation failure's own message, which names the operation and the provider's reason. */
20
- const approvalFailureMessage = (error) => Predicate.hasProperty(error, "cause") && Predicate.hasProperty(error.cause, "message") &&
21
- Predicate.isString(error.cause.message)
22
- ? error.cause.message
23
- : "EvaluatePullRequestApprovalRules failed";
24
- /** Resolve a stale cached PR: retain contradictory OPEN evidence, update a definitive merged/closed status. */
25
- const resolveStaleStatus = (prRepo, detail, awsAccountId, id, repositoryName, accountRegion) => detail.status === "OPEN"
26
- ? Effect.void
27
- : prRepo.updateStatusAndClosedAt(awsAccountId, id, detail.status, detail.lastActivityDate.toISOString(), detail.mergedBy, detail.approvedBy, { repositoryName, accountRegion });
20
+ /** Whether a read failed because the provider says the pull request doesn't exist. */
21
+ const isPullRequestGone = (error) => error._tag === "AwsApiError" && Predicate.isTagged(error.cause, "PullRequestDoesNotExistException");
22
+ /**
23
+ * Whether a refresh failure means the account's credentials no longer work, decided from its type: a
24
+ * credential failure, or a provider error saying so, directly or inside a failed approval evaluation.
25
+ */
26
+ const isAuthFailure = (error) => error._tag === "AwsCredentialError" ||
27
+ (error._tag === "AwsApiError" && (isCredentialInvalidCause(error.cause) ||
28
+ (Predicate.isTagged(error.cause, "ApprovalEvaluationError") && Predicate.hasProperty(error.cause, "cause") &&
29
+ isCredentialInvalidCause(error.cause.cause))));
28
30
  const accountRegionKey = (profile, region) => `${profile}\0${region}`;
29
31
  export const fetchAndUpsertPRs = (params) => Effect.gen(function* () {
30
32
  const awsClient = yield* AwsClient;
31
33
  const prRepo = yield* PullRequestRepo;
32
34
  const notificationRepo = yield* NotificationRepo;
33
35
  const subscriptionRepo = yield* SubscriptionRepo;
34
- const { accountIdMap, currentUser, enabledAccounts, staleThreshold, state, subscribedRef } = params;
36
+ const { accountIdMap, currentUser, enabledAccounts, identityGeneration, staleThreshold, state, subscribedRef } = params;
35
37
  // Stale rows are safe to reconcile only when their owning list operation
36
38
  // completed successfully. A failed account stream says nothing about which
37
39
  // cached PRs remain open and must never turn into cache deletion.
38
40
  const successfullyFetchedScopes = yield* Ref.make(new Set(enabledAccounts.flatMap((account) => accountIdMap.has(account.profile)
39
41
  ? (account.regions ?? []).map((region) => accountRegionKey(account.profile, region))
40
42
  : [])));
41
- // A scope whose listing completed but where some pull requests could not be re-evaluated: its stale
42
- // rows still reconcile (the listing is complete), but the refresh does not count as successful.
43
+ // A scope whose listing completed but where some pull requests' approval is unknown: its stale rows
44
+ // still reconcile (the listing is complete), but the refresh does not count as successful.
43
45
  const partialScopes = yield* Ref.make(new Set());
44
- // Pull requests the listing returned whose evaluation failed: known to be open, so not stale.
45
- const evaluationFailedPullRequests = yield* Ref.make(new Set());
46
- const pullRequestKey = (profile, region, id, repositoryName) => `${accountRegionKey(profile, region)}\0${id}\0${repositoryName}`;
47
46
  const withholdScopeSuccess = (profile, region) => Ref.update(successfullyFetchedScopes, (scopes) => {
48
47
  const next = new Set(scopes);
49
48
  next.delete(accountRegionKey(profile, region));
50
49
  return next;
51
50
  });
51
+ // The account's credentials stopped working during this refresh: an identity event of this
52
+ // refresh's generation, so it does nothing once a newer refresh, login or logout has happened.
53
+ const markAuthFailed = (profile) => SubscriptionRef.update(state, (s) => applyIdentityEvent(s, IdentityEvent.RefreshAuthFailed({ generation: identityGeneration, profile })));
52
54
  const accountLabels = enabledAccounts.flatMap((a) => (a.regions ?? []).map((r) => `${a.profile}(${r})`));
53
55
  yield* SubscriptionRef.update(state, (s) => ({
54
56
  ...s,
@@ -57,7 +59,9 @@ export const fetchAndUpsertPRs = (params) => Effect.gen(function* () {
57
59
  const streams = enabledAccounts.flatMap((account) => (account.regions ?? []).map((region) => {
58
60
  const label = `${account.profile} (${region})`;
59
61
  const awsAccountId = accountIdMap.get(account.profile) ?? "";
60
- return awsClient.getPullRequestRefresh({ profile: account.profile, region }).pipe(Stream.map((item) => ({ awsAccountId, item, label, profile: account.profile, region })), Stream.catch((error) => {
62
+ // One observation for the whole listing, taken before it starts: a read that began later, of
63
+ // the same revision, wins over it in the cache.
64
+ return Stream.unwrap(prRepo.observe().pipe(Effect.map((observation) => awsClient.getPullRequests({ profile: account.profile, region }).pipe(Stream.map((pr) => ({ awsAccountId, label, observation, pr, profile: account.profile, region })), Stream.catch((error) => {
61
65
  const causeStr = (Predicate.isError(error)
62
66
  ? error.name !== "Error" ? error.name : error.message
63
67
  : String(error)) || "Unknown error";
@@ -67,7 +71,8 @@ export const fetchAndUpsertPRs = (params) => Effect.gen(function* () {
67
71
  region,
68
72
  cause: causeStr
69
73
  });
70
- const isAuthError = /ExpiredToken|Unauthorized|AuthFailure|credentials/i.test(causeStr);
74
+ const isAuthError = isAuthFailure(error) ||
75
+ /ExpiredToken|Unauthorized|AuthFailure|credentials/i.test(causeStr);
71
76
  return Stream.fromEffectDrain(Effect.gen(function* () {
72
77
  yield* Ref.update(successfullyFetchedScopes, (scopes) => {
73
78
  const next = new Set(scopes);
@@ -81,57 +86,79 @@ export const fetchAndUpsertPRs = (params) => Effect.gen(function* () {
81
86
  profile: account.profile,
82
87
  deduplicate: true
83
88
  }).pipe(Effect.catch(() => Effect.void));
84
- if (isAuthError) {
85
- yield* SubscriptionRef.update(state, ({ currentUser: _, ...rest }) => rest);
86
- }
89
+ // Typed first (credential failure, or a provider auth error), with the older text match as fallback.
90
+ if (isAuthError)
91
+ yield* markAuthFailed(account.profile);
87
92
  }));
88
- }));
93
+ }))), Effect.catch((error) =>
94
+ // Without an observation number the listing's writes couldn't be ordered: skip this scope.
95
+ Effect.logWarning(`${label}: no observation number, listing skipped`, error).pipe(Effect.andThen(withholdScopeSuccess(account.profile, region)), Effect.as(Stream.empty)))));
89
96
  }));
90
97
  const unevaluated = yield* Ref.make([]);
91
- // A stale row is reconciled only for an enabled account's scope, which supplies its profile and region.
92
- const recordStaleUnevaluated = (pr, message) => Effect.forEach(enabledAccounts.filter((account) => account.profile === pr.accountProfile), (account) => Effect.forEach((account.regions ?? []).filter((region) => region === pr.accountRegion), (region) => Ref.update(unevaluated, (all) => [...all, {
93
- profile: account.profile,
94
- region,
95
- pullRequestId: pr.id,
96
- repositoryName: pr.repositoryName,
97
- message
98
- }]), { discard: true }), { discard: true });
99
- yield* Stream.mergeAll(streams, { concurrency: 2 }).pipe(Stream.runForEach(({ awsAccountId, item, label, profile, region }) => Effect.gen(function* () {
100
- if (item._tag === "EvaluationFailed") {
101
- // Only this pull request is unknown: its cached row stays as it was, the account's other
102
- // pull requests carry on, and the account's refresh counts as partial rather than successful.
103
- yield* Ref.update(unevaluated, (all) => [...all, {
104
- profile,
105
- region,
106
- pullRequestId: item.pullRequestId,
107
- repositoryName: item.repositoryName,
108
- message: item.error.message
109
- }]);
110
- yield* Ref.update(partialScopes, (scopes) => new Set(scopes).add(accountRegionKey(profile, region)));
111
- yield* Ref.update(evaluationFailedPullRequests, (keys) => new Set(keys).add(pullRequestKey(profile, region, item.pullRequestId, item.repositoryName)));
98
+ // A stale row's re-read writes back everything it read: a closed or merged status, the details,
99
+ // and the evaluation (a successful one replaces the last known approval; an unknown one marks the
100
+ // row, lists it as unevaluated, and counts its scope as partial, as for a listed pull request).
101
+ const recordStaleRead = (pr, detail, observation) => Effect.gen(function* () {
102
+ const coordinates = { repositoryName: pr.repositoryName, accountRegion: pr.accountRegion };
103
+ // The whole read, each group unless the cache holds a newer one: status, details, approval.
104
+ const written = yield* prRepo.writeRead(pr.awsAccountId, pr.id, detail, observation, coordinates);
105
+ const reason = detail.approvalUnknown;
106
+ // An approval group not written was older than the cache: its unknown approval isn't current.
107
+ if (!written.approval || reason === undefined) {
112
108
  return;
113
109
  }
114
- const pr = item.pullRequest;
115
- // Diff subscribed PRs against cache
116
- const subscribed = yield* Ref.get(subscribedRef);
117
- if (awsAccountId !== "" &&
118
- (yield* isSubscribedForCoordinates(prRepo, subscribed, awsAccountId, pr.id, pr.repositoryName, pr.account.region))) {
119
- const cached = yield* prRepo.findByCoordinates(awsAccountId, pr.id, pr.repositoryName, pr.account.region).pipe(Effect.catch(() => Effect.succeed(Option.none())));
120
- if (Option.isSome(cached)) {
121
- const notifications = diffPR(cached.value, prToUpsertInput(pr, awsAccountId), awsAccountId);
122
- const poolNotifications = diffApprovalPools(cached.value.approvalRules ?? [], pr.approvalRules, currentUser, pr.id, awsAccountId, pr.title, pr.account.profile, pr.repositoryName, pr.account.region);
123
- yield* Effect.forEach([...notifications, ...poolNotifications], (n) => notificationRepo.add(n), {
124
- discard: true
125
- }).pipe(Effect.catch(() => Effect.void));
110
+ yield* Ref.update(partialScopes, (scopes) => new Set(scopes).add(accountRegionKey(pr.accountProfile, pr.accountRegion)));
111
+ // A stale row is reconciled only for an enabled account's scope, which supplies its typed profile and region.
112
+ for (const account of enabledAccounts.filter((a) => a.profile === pr.accountProfile)) {
113
+ for (const region of (account.regions ?? []).filter((r) => r === pr.accountRegion)) {
114
+ yield* Ref.update(unevaluated, (all) => [...all, {
115
+ profile: account.profile,
116
+ region,
117
+ pullRequestId: pr.id,
118
+ repositoryName: pr.repositoryName,
119
+ message: approvalUnknownReasonText(reason)
120
+ }]);
126
121
  }
127
122
  }
123
+ });
124
+ yield* Stream.mergeAll(streams, { concurrency: 2 }).pipe(Stream.runForEach(({ awsAccountId, label, observation, pr, profile, region }) => Effect.gen(function* () {
125
+ // Subscribed pull requests announce what changed: diffed after the write, against the row it
126
+ // replaced, and only for the groups it wrote. A snapshot read earlier could be one another
127
+ // write has changed since.
128
+ const subscribed = awsAccountId !== "" && (yield* isSubscribedForCoordinates(prRepo, yield* Ref.get(subscribedRef), awsAccountId, pr.id, pr.repositoryName, pr.account.region));
129
+ const transitions = (replaced) => [
130
+ ...diffPR(replaced, prToUpsertInput(pr, awsAccountId), awsAccountId),
131
+ // While approval is unknown the cache keeps its last known rules, so comparing them with the
132
+ // fresh ones would repeat the same notification every refresh; membership is compared once
133
+ // evaluation recovers.
134
+ ...(pr.approvalUnknown !== undefined ? [] : diffApprovalPools(replaced.approvalRules ?? [], pr.approvalRules, currentUser, pr.id, awsAccountId, pr.title, pr.account.profile, pr.repositoryName, pr.account.region))
135
+ ];
128
136
  // Upsert to cache + auto-subscribe current user's PRs
129
137
  if (awsAccountId !== "") {
130
- yield* prRepo.upsert(prToUpsertInput(pr, awsAccountId)).pipe(Effect.tapError((e) => Effect.logWarning("cache upsert error", e)), Effect.catch(() => withholdScopeSuccess(pr.account.profile, pr.account.region)));
138
+ const written = yield* prRepo.upsert(prToUpsertInput(pr, awsAccountId), observation).pipe(Effect.tapError((e) => Effect.logWarning("cache upsert error", e)), Effect.catch(() => withholdScopeSuccess(pr.account.profile, pr.account.region).pipe(Effect.as({ row: false, approval: false, replaced: Option.none() }))));
139
+ // Everything below acts on what this read saw, so only for the groups the cache took: a
140
+ // group not written was older than the cache, and what this read saw of it isn't current.
141
+ const unknownReason = pr.approvalUnknown;
142
+ if (written.approval && unknownReason !== undefined) {
143
+ // Upserted with its last known approval; the account's other pull requests carry on, and
144
+ // its refresh counts as partial rather than successful.
145
+ yield* Ref.update(unevaluated, (all) => [...all, {
146
+ profile,
147
+ region,
148
+ pullRequestId: pr.id,
149
+ repositoryName: pr.repositoryName,
150
+ message: approvalUnknownReasonText(unknownReason)
151
+ }]);
152
+ yield* Ref.update(partialScopes, (scopes) => new Set(scopes).add(accountRegionKey(profile, region)));
153
+ }
154
+ const pending = subscribed ? Option.match(written.replaced, { onNone: () => [], onSome: transitions }) : [];
155
+ yield* Effect.forEach(notificationsFor(pending, written), (n) => notificationRepo.add(n), {
156
+ discard: true
157
+ }).pipe(Effect.catch(() => Effect.void));
131
158
  const isAuthor = currentUser !== undefined && currentUser !== "" && pr.author === currentUser;
132
159
  const isApprover = currentUser !== undefined && currentUser !== "" &&
133
160
  pr.approvalRules.some((r) => r.poolMembers.includes(currentUser));
134
- if (isAuthor || isApprover) {
161
+ if ((written.row && isAuthor) || (written.approval && isApprover)) {
135
162
  yield* subscriptionRepo.subscribe(awsAccountId, pr.id, {
136
163
  repositoryName: pr.repositoryName,
137
164
  accountRegion: pr.account.region
@@ -149,25 +176,32 @@ export const fetchAndUpsertPRs = (params) => Effect.gen(function* () {
149
176
  })));
150
177
  // Transition stale OPEN PRs: re-fetch to discover if they were merged/closed
151
178
  const successfulScopes = yield* Ref.get(successfullyFetchedScopes);
152
- const listedButUnevaluated = yield* Ref.get(evaluationFailedPullRequests);
153
179
  yield* prRepo.findStaleOpen(staleThreshold).pipe(Effect.flatMap((stalePRs) => Effect.forEach(stalePRs.filter((pr) => accountIdMap.get(pr.accountProfile) === pr.awsAccountId &&
154
- successfulScopes.has(accountRegionKey(pr.accountProfile, pr.accountRegion)) &&
155
- !listedButUnevaluated.has(pullRequestKey(pr.accountProfile, pr.accountRegion, pr.id, pr.repositoryName))), (pr) => awsClient
180
+ successfulScopes.has(accountRegionKey(pr.accountProfile, pr.accountRegion))), (pr) =>
181
+ // The observation is taken before the read, so a read that began later wins in the cache.
182
+ prRepo.observe().pipe(Effect.flatMap((observation) => awsClient
156
183
  .getPullRequest({
157
184
  account: { profile: pr.accountProfile, region: pr.accountRegion },
158
185
  pullRequestId: pr.id
159
186
  })
160
- .pipe(Effect.flatMap((detail) => detail.repositoryName === pr.repositoryName
161
- ? resolveStaleStatus(prRepo, detail, pr.awsAccountId, pr.id, pr.repositoryName, pr.accountRegion)
162
- : Effect.void), Effect.catch((error) => withholdScopeSuccess(pr.accountProfile, pr.accountRegion).pipe(Effect.andThen(
163
- // The pull request was read; only its approval enrichment failed. That is not
164
- // evidence it is gone, so the row stays for the next refresh to settle.
165
- failedOnlyOnApprovalEvaluation(error)
166
- ? recordStaleUnevaluated(pr, approvalFailureMessage(error))
167
- : prRepo.deleteOne(pr.awsAccountId, pr.id, {
168
- repositoryName: pr.repositoryName,
169
- accountRegion: pr.accountRegion
170
- }).pipe(Effect.catch(() => Effect.void)))))), { concurrency: 5, discard: true })), Effect.catch(() => Ref.set(successfullyFetchedScopes, new Set())));
187
+ .pipe(Effect.matchEffect({
188
+ // Only the provider saying the pull request doesn't exist deletes its row (and leaves a
189
+ // tombstone). Credentials that stopped working mark the account; any other failure is
190
+ // no evidence it is gone, so the row stays for the next refresh.
191
+ onFailure: (error) => withholdScopeSuccess(pr.accountProfile, pr.accountRegion).pipe(Effect.andThen(isAuthFailure(error)
192
+ ? markAuthFailed(pr.accountProfile)
193
+ : isPullRequestGone(error)
194
+ ? prRepo.deleteOne(pr.awsAccountId, pr.id, observation, {
195
+ repositoryName: pr.repositoryName,
196
+ accountRegion: pr.accountRegion
197
+ }).pipe(Effect.catch(() => Effect.void))
198
+ : Effect.logWarning(`stale pull request #${pr.id} could not be re-read; its row is kept`, error))),
199
+ // The provider proved it exists, so a failed cache write keeps the row and only withholds
200
+ // the scope's success.
201
+ onSuccess: (detail) => detail.repositoryName === pr.repositoryName
202
+ ? recordStaleRead(pr, detail, observation).pipe(Effect.catch((error) => Effect.logWarning("stale pull request write failed", error).pipe(Effect.andThen(withholdScopeSuccess(pr.accountProfile, pr.accountRegion)))))
203
+ : Effect.void
204
+ }))), Effect.catchTag("CacheError", (error) => Effect.logWarning(`stale pull request #${pr.id}: no observation number, not re-read`, error).pipe(Effect.andThen(withholdScopeSuccess(pr.accountProfile, pr.accountRegion))))), { concurrency: 5, discard: true })), Effect.catch(() => Ref.set(successfullyFetchedScopes, new Set())));
171
205
  // Every refresh replaces the list, so a pull request that evaluates again drops off it. One
172
206
  // notification per profile, because system notifications deduplicate by profile.
173
207
  const unevaluatedPullRequests = yield* Ref.get(unevaluated);
@@ -178,7 +212,7 @@ export const fetchAndUpsertPRs = (params) => Effect.gen(function* () {
178
212
  return notificationRepo.addSystem({
179
213
  type: "error",
180
214
  title: `${first.profile}: approval evaluation`,
181
- message: `${failures.length} pull request${failures.length === 1 ? "" : "s"} in ${regions} couldn't be re-evaluated and kept their cached approval state: ${first.message}`,
215
+ message: `${failures.length} pull request${failures.length === 1 ? "" : "s"} in ${regions} couldn't be re-evaluated, so their approval is unknown: ${first.message}`,
182
216
  profile: first.profile,
183
217
  replaceUnread: true
184
218
  }).pipe(Effect.catch(() => Effect.void));
@@ -1 +1 @@
1
- {"version":3,"file":"refreshFetch.js","sourceRoot":"","sources":["../../src/PRService/refreshFetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refreshFetch.js","sourceRoot":"","sources":["../../src/PRService/refreshFetch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"refreshHistory.d.ts","sourceRoot":"","sources":["../../src/PRService/refreshHistory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAwC,MAAM,QAAQ,CAAA;AACrE,OAAO,EAAE,SAAS,EAAuB,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAGzD,OAAO,EAAkB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAA;AAc7E,eAAO,MAAM,QAAQ,yMAuLpB,CAAA"}
1
+ {"version":3,"file":"refreshHistory.d.ts","sourceRoot":"","sources":["../../src/PRService/refreshHistory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAwC,MAAM,QAAQ,CAAA;AACrE,OAAO,EAAE,SAAS,EAAuB,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAGzD,OAAO,EAAkB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAA;AAe7E,eAAO,MAAM,QAAQ,yMAgMpB,CAAA"}
@@ -22,7 +22,8 @@ const idleStatus = "idle";
22
22
  const errorStatus = "error";
23
23
  const fallbackIdentity = (accountId) => ({
24
24
  accountId,
25
- username: ""
25
+ username: "",
26
+ arn: ""
26
27
  });
27
28
  export const syncWeek = Effect.fn("syncWeek")(function* (state, week) {
28
29
  yield* Effect.gen(function* () {
@@ -59,9 +60,11 @@ export const syncWeek = Effect.fn("syncWeek")(function* (state, week) {
59
60
  .getCallerIdentity({ profile: account.profile, region })
60
61
  .pipe(Effect.catchIf(() => true, () => Effect.succeed(fallbackIdentity(account.profile))));
61
62
  const awsAccountId = identity.accountId;
63
+ // One observation for the listing, before it starts: a later read of the same revision wins.
64
+ const observation = yield* prRepo.observe();
62
65
  yield* awsClient
63
66
  .getPullRequests({ profile: account.profile, region })
64
- .pipe(Stream.runForEach((pr) => prRepo.upsert(prToUpsertInput(pr, awsAccountId)).pipe(Effect.tap(() => Ref.updateAndGet(fetchedRef, (n) => n + 1).pipe(Effect.flatMap((n) => SubscriptionRef.update(state, (s) => ({
67
+ .pipe(Stream.runForEach((pr) => prRepo.upsert(prToUpsertInput(pr, awsAccountId), observation).pipe(Effect.tap(() => Ref.updateAndGet(fetchedRef, (n) => n + 1).pipe(Effect.flatMap((n) => SubscriptionRef.update(state, (s) => ({
65
68
  ...s,
66
69
  statusDetail: `syncing ${week} — ${label} (${n} PRs)`
67
70
  }))))), Effect.catchIf(() => true, () => Effect.void))), Effect.catchIf(() => true, (e) => Effect.logWarning("sync fetch error", e)));
@@ -75,7 +78,9 @@ export const syncWeek = Effect.fn("syncWeek")(function* (state, week) {
75
78
  }));
76
79
  const openPRs = yield* prRepo.findStaleOpen("9999-12-31T23:59:59Z").pipe(Effect.catchIf(() => true, () => Effect.succeed([])));
77
80
  const transitionedRef = yield* Ref.make(0);
78
- yield* Effect.forEach(openPRs, (pr) => awsClient
81
+ yield* Effect.forEach(openPRs, (pr) =>
82
+ // The observation is taken before the read, so a read that began later wins in the cache.
83
+ prRepo.observe().pipe(Effect.flatMap((observation) => awsClient
79
84
  .getPullRequest({
80
85
  account: { profile: pr.accountProfile, region: pr.accountRegion },
81
86
  pullRequestId: pr.id
@@ -83,16 +88,19 @@ export const syncWeek = Effect.fn("syncWeek")(function* (state, week) {
83
88
  .pipe(Effect.flatMap((detail) => {
84
89
  if (detail.repositoryName !== pr.repositoryName)
85
90
  return Effect.void;
86
- if (detail.status !== "OPEN") {
87
- return prRepo
88
- .updateStatusAndClosedAt(pr.awsAccountId, pr.id, detail.status, detail.lastActivityDate.toISOString(), detail.mergedBy, detail.approvedBy, { repositoryName: pr.repositoryName, accountRegion: pr.accountRegion })
89
- .pipe(Effect.tap(() => Ref.updateAndGet(transitionedRef, (n) => n + 1).pipe(Effect.flatMap((n) => SubscriptionRef.update(state, (s) => ({
91
+ const coordinates = { repositoryName: pr.repositoryName, accountRegion: pr.accountRegion };
92
+ // The whole re-read reaches the cache, like the refresh's stale pass: status, details and
93
+ // evaluation, each group unless the cache holds a newer one.
94
+ return prRepo.writeRead(pr.awsAccountId, pr.id, detail, observation, coordinates).pipe(Effect.tap((written) => written.row && detail.status !== "OPEN"
95
+ ? Ref.updateAndGet(transitionedRef, (n) => n + 1).pipe(Effect.flatMap((n) => SubscriptionRef.update(state, (s) => ({
90
96
  ...s,
91
97
  statusDetail: `syncing ${week} — ${n} status updates`
92
- }))))));
93
- }
94
- return Effect.void;
95
- }), Effect.catchIf(() => true, () => Effect.void)), { concurrency: 5, discard: true });
98
+ }))))
99
+ : Effect.void));
100
+ }),
101
+ // One pull request's failure doesn't stop the sync, but it is logged: a lost approval write
102
+ // leaves the cached approval republished as known.
103
+ Effect.catch((error) => Effect.logWarning(`syncWeek ${week}: status check of #${pr.id} (${pr.repositoryName}, ${pr.accountProfile} ${pr.accountRegion}) failed; the cached row is kept`, error)))), Effect.catch((error) => Effect.logWarning(`syncWeek ${week}: #${pr.id} not checked, no observation number`, error))), { concurrency: 5, discard: true });
96
104
  const transitioned = yield* Ref.get(transitionedRef);
97
105
  yield* Effect.logInfo(`syncWeek ${week}: Phase 2 done — ${openPRs.length} checked, ${transitioned} transitioned`);
98
106
  // Phase 3: Compute commented_by from pr_comments
@@ -1 +1 @@
1
- {"version":3,"file":"refreshHistory.js","sourceRoot":"","sources":["../../src/PRService/refreshHistory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refreshHistory.js","sourceRoot":"","sources":["../../src/PRService/refreshHistory.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ import { PullRequestRepo, type PullRequestRepoContract } from "../CacheService/r
9
9
  import { SubscriptionRepo } from "../CacheService/repos/SubscriptionRepo.js";
10
10
  import { ConfigService } from "../ConfigService/index.js";
11
11
  import type { AccountConfig } from "../ConfigService/internal.js";
12
+ import type { AwsClientError } from "../Errors.js";
13
+ import { type LookupFailureReason } from "../IdentityLifecycle.js";
12
14
  import { type PRState } from "./internal.js";
13
15
  export declare const subscriptionKey: (awsAccountId: string, pullRequestId: string, repositoryName?: string | null, accountRegion?: string | null) => string;
14
16
  /** Resolve a legacy subscription only when the account/PR pair identifies one exact cached row. */
@@ -18,7 +20,14 @@ export interface ResolvedAccounts {
18
20
  readonly accountIdMap: Map<string, string>;
19
21
  readonly subscribedRef: Ref.Ref<Set<string>>;
20
22
  readonly currentUser: string | undefined;
23
+ /** This refresh's identity generation; every identity event it produces carries it. */
24
+ readonly identityGeneration: number;
21
25
  }
26
+ /**
27
+ * Why an identity lookup failed, decided by the error's type alone. Every AWS client error has a
28
+ * reason and there is no default branch, so a new error type fails to compile until it gets one.
29
+ */
30
+ export declare const unresolvedReasonOf: (error: AwsClientError) => LookupFailureReason;
22
31
  export declare const resolveAccounts: (state: PRState) => Effect.Effect<{
23
32
  accountIdMap: Map<string, string>;
24
33
  currentUser: string | undefined;
@@ -27,6 +36,7 @@ export declare const resolveAccounts: (state: PRState) => Effect.Effect<{
27
36
  readonly regions: readonly (string & import("effect/Brand").Brand<"AwsRegion">)[];
28
37
  readonly enabled: boolean;
29
38
  }[];
39
+ identityGeneration: number;
30
40
  subscribedRef: Ref.Ref<Set<string>>;
31
41
  } | undefined, unknown, AwsClient | ConfigService | NotificationRepo | PullRequestRepo | SubscriptionRepo>;
32
42
  //# sourceMappingURL=refreshResolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"refreshResolve.d.ts","sourceRoot":"","sources":["../../src/PRService/refreshResolve.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAmB,MAAM,EAAU,GAAG,EAA2B,MAAM,QAAQ,CAAA;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,KAAK,uBAAuB,EAAE,MAAM,gDAAgD,CAAA;AAC9G,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEjE,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAA;AAG5D,eAAO,MAAM,eAAe,iBACZ,MAAM,iBACL,MAAM,mBACJ,MAAM,GAAG,IAAI,kBACd,MAAM,GAAG,IAAI,KAC5B,MAA2F,CAAA;AAE9F,mGAAmG;AACnG,eAAO,MAAM,0BAA0B,WAC7B,IAAI,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,cAC/C,WAAW,CAAC,MAAM,CAAC,gBACjB,MAAM,iBACL,MAAM,kBACL,MAAM,iBACP,MAAM,KACpB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAY9B,CAAA;AAaD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACtD,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC;AAqCD,eAAO,MAAM,eAAe,UAAW,OAAO;;;;;;;;;0GA4F1C,CAAA"}
1
+ {"version":3,"file":"refreshResolve.d.ts","sourceRoot":"","sources":["../../src/PRService/refreshResolve.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAmB,MAAM,EAAiB,GAAG,EAAmC,MAAM,QAAQ,CAAA;AACrG,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,KAAK,uBAAuB,EAAE,MAAM,gDAAgD,CAAA;AAC9G,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAqC,KAAK,mBAAmB,EAAgB,MAAM,yBAAyB,CAAA;AACnH,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAA;AAG5D,eAAO,MAAM,eAAe,iBACZ,MAAM,iBACL,MAAM,mBACJ,MAAM,GAAG,IAAI,kBACd,MAAM,GAAG,IAAI,KAC5B,MAA2F,CAAA;AAE9F,mGAAmG;AACnG,eAAO,MAAM,0BAA0B,WAC7B,IAAI,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,cAC/C,WAAW,CAAC,MAAM,CAAC,gBACjB,MAAM,iBACL,MAAM,kBACL,MAAM,iBACP,MAAM,KACpB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAY9B,CAAA;AAaD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACtD,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,uFAAuF;IACvF,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;CACpC;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,UAAW,cAAc,KAAG,mBAOvD,CAAA;AA2CJ,eAAO,MAAM,eAAe,UAAW,OAAO;;;;;;;;;;0GA8F1C,CAAA"}