@popoverai/dotrequirements 0.27.2 → 0.27.4

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.
@@ -135,6 +135,7 @@ async function runNonInteractiveLink(options) {
135
135
  projectName: match.projectName,
136
136
  renamed: false,
137
137
  settingsPath,
138
+ signedInAs: oauthResult.email,
138
139
  ...artifacts,
139
140
  });
140
141
  return;
@@ -189,6 +190,7 @@ async function runNonInteractiveLink(options) {
189
190
  projectName: name,
190
191
  renamed: false,
191
192
  settingsPath,
193
+ signedInAs: oauthResult.email,
192
194
  ...artifacts,
193
195
  });
194
196
  return;
@@ -227,6 +229,7 @@ async function runNonInteractiveLink(options) {
227
229
  projectName,
228
230
  renamed,
229
231
  settingsPath,
232
+ signedInAs: oauthResult.email,
230
233
  ...artifacts,
231
234
  });
232
235
  }
@@ -20,6 +20,11 @@ const REQUIREMENTS_IGNORE_PATTERNS = [
20
20
  "**/__tests__/**",
21
21
  "**/fixtures/**",
22
22
  "**/.fixtures/**",
23
+ // Claude Code worktrees hold other sessions' checkouts of the repo, whose
24
+ // stale .requirements copies must not fail this workspace's validation.
25
+ // Nothing else here excludes them: a checkout's requirements live beside
26
+ // its .git, not inside it, so "**/.git/**" above never matches them.
27
+ "**/.claude/worktrees/**",
23
28
  ];
24
29
  /**
25
30
  * Find all *.requirements.md files in the workspace.
@@ -8,6 +8,8 @@ export interface OAuthResult {
8
8
  accessToken: string;
9
9
  refreshToken: string;
10
10
  expiresAt: number;
11
+ /** Email of the authenticated account (LINK-14 / INIT-20). */
12
+ email: string;
11
13
  }
12
14
  /**
13
15
  * Execute the full OAuth flow:
@@ -66,12 +66,19 @@ export async function executeOAuthFlow() {
66
66
  if (!result.success) {
67
67
  throw new Error(`Token exchange failed: ${result.error}`);
68
68
  }
69
- const { accessToken, refreshToken, expiresAt } = result;
69
+ const { accessToken, refreshToken, expiresAt, email } = result;
70
70
  console.log("✓ Authentication complete!");
71
+ // LINK-14 / INIT-20: name the account we signed in as. The browser session
72
+ // decides which identity authenticates; surfacing it here (one site shared by
73
+ // link, init, and the invite flow) makes a wrong-account login visible before
74
+ // anything is saved. In JSON mode the callers route console.log to stderr, so
75
+ // this line never corrupts a machine-readable result.
76
+ console.log(`Signed in as ${email}`);
71
77
  return {
72
78
  accessToken,
73
79
  refreshToken,
74
80
  expiresAt,
81
+ email,
75
82
  };
76
83
  }
77
84
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@popoverai/dotrequirements",
3
- "version": "0.27.2",
3
+ "version": "0.27.4",
4
4
  "description": "Requirements tracking CLI and test harness",
5
5
  "type": "module",
6
6
  "bin": {