axgram 0.1.3 → 0.2.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.
package/README.md
CHANGED
|
@@ -123,12 +123,17 @@ node dist/bin/axgram.js --help
|
|
|
123
123
|
|
|
124
124
|
## Releasing
|
|
125
125
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
4. CI (`cli-publish.yml`) runs typecheck → test → build → `npm publish` via OIDC Trusted Publishing.
|
|
126
|
+
The CLI is versioned in lock-step with the rest of Axgram from the repo-root
|
|
127
|
+
`/VERSION` file — see ADR `docs/decisions/0007-unified-versioning.md`. Do **not**
|
|
128
|
+
hand-edit `cli/package.json`; the unified `v*` tag drives the release.
|
|
130
129
|
|
|
131
|
-
|
|
130
|
+
1. `scripts/set-version.sh X.Y.Z` — bumps `/VERSION` + every `package.json`.
|
|
131
|
+
2. Commit (`chore(release): vX.Y.Z`), merge to `main`.
|
|
132
|
+
3. `git tag vX.Y.Z && git push origin vX.Y.Z`.
|
|
133
|
+
4. CI (`cli-publish.yml`) runs **only if `cli/` changed** since the previous `v*`
|
|
134
|
+
tag, then typecheck → test → build → `npm publish` via OIDC Trusted Publishing.
|
|
135
|
+
|
|
136
|
+
No `NPM_TOKEN` is required. The workflow exchanges a GitHub OIDC token for short-lived npm credentials against the `axgram` Trusted Publisher registered at npmjs.com. See `docs/ops/cloud-runbook.md` → "Cut a release" for the full stack release flow.
|
|
132
137
|
|
|
133
138
|
## License
|
|
134
139
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hookSessionStartCommand = hookSessionStartCommand;
|
|
4
|
+
exports.defaultProjectIsAccessible = defaultProjectIsAccessible;
|
|
4
5
|
const project_resolver_1 = require("../lib/project-resolver");
|
|
5
6
|
const supabase_client_1 = require("../lib/supabase-client");
|
|
6
7
|
/**
|
|
@@ -28,6 +29,25 @@ async function hookSessionStartCommand(opts = {}, deps = {}) {
|
|
|
28
29
|
...(opts.cwd ? { cwd: opts.cwd } : {}),
|
|
29
30
|
});
|
|
30
31
|
if (resolved.projectId) {
|
|
32
|
+
const accessible = deps.projectIsAccessible
|
|
33
|
+
? await deps.projectIsAccessible(resolved.projectId)
|
|
34
|
+
: await defaultProjectIsAccessible(resolved.projectId);
|
|
35
|
+
if (accessible === false) {
|
|
36
|
+
log([
|
|
37
|
+
`<axgram>`,
|
|
38
|
+
`The linked Axgram project (${resolved.projectId}, via ${resolved.source}) isn't reachable`,
|
|
39
|
+
`with your current login. You may be signed in to a different org/account than the one`,
|
|
40
|
+
`that owns it, or the project may have been removed. Ask the user one of:`,
|
|
41
|
+
` - "Switch accounts? (axgram login)"`,
|
|
42
|
+
` - "Re-link this repo to a project you can access? (axgram projects link)"`,
|
|
43
|
+
` - "Create a new project and save memories there? (axgram projects create <name> && axgram projects link <id>)"`,
|
|
44
|
+
`Run \`axgram projects ls\` to see projects you can access.`,
|
|
45
|
+
`</axgram>`,
|
|
46
|
+
].join("\n"));
|
|
47
|
+
return 0;
|
|
48
|
+
}
|
|
49
|
+
// accessible === true OR null (couldn't determine) → optimistic briefing.
|
|
50
|
+
// Fail-safe: a network/timeout/no-creds probe never blocks or cries wolf.
|
|
31
51
|
log([
|
|
32
52
|
`<axgram>`,
|
|
33
53
|
`You are working in Axgram project ${resolved.projectId} (resolved via ${resolved.source}).`,
|
|
@@ -82,4 +102,27 @@ async function defaultPendingInvitationsCount() {
|
|
|
82
102
|
return 0;
|
|
83
103
|
return count ?? 0;
|
|
84
104
|
}
|
|
105
|
+
const PROJECT_PROBE_TIMEOUT_MS = 1500;
|
|
106
|
+
async function defaultProjectIsAccessible(projectId, getSupabase = supabase_client_1.authenticatedSupabase) {
|
|
107
|
+
const probe = (async () => {
|
|
108
|
+
try {
|
|
109
|
+
const s = await getSupabase();
|
|
110
|
+
const { data, error } = await s
|
|
111
|
+
.from("projects")
|
|
112
|
+
.select("id")
|
|
113
|
+
.eq("id", projectId)
|
|
114
|
+
.maybeSingle();
|
|
115
|
+
if (error)
|
|
116
|
+
return null; // couldn't determine — fail safe
|
|
117
|
+
return data !== null; // true = reachable, false = authed but not visible
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return null; // no creds / network error — fail safe
|
|
121
|
+
}
|
|
122
|
+
})();
|
|
123
|
+
const timeout = new Promise((res) => {
|
|
124
|
+
setTimeout(() => res(null), PROJECT_PROBE_TIMEOUT_MS).unref();
|
|
125
|
+
});
|
|
126
|
+
return Promise.race([probe, timeout]);
|
|
127
|
+
}
|
|
85
128
|
//# sourceMappingURL=hook-session-start.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-session-start.js","sourceRoot":"","sources":["../../src/commands/hook-session-start.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"hook-session-start.js","sourceRoot":"","sources":["../../src/commands/hook-session-start.ts"],"names":[],"mappings":"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"}
|