opencode-sonarqube 0.2.9 → 0.2.10

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 (2) hide show
  1. package/dist/index.js +42 -13
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -20099,15 +20099,47 @@ try {
20099
20099
  appendFileSync4("/tmp/sonarqube-plugin-debug.log", `${new Date().toISOString()} [LOAD] Module loaded! id=${moduleLoadId} cwd=${process.cwd()} import.meta.url=${import.meta.url}
20100
20100
  `);
20101
20101
  } catch {}
20102
- var sessionToDirectory = new Map;
20103
- var _lastInitializedDirectory = null;
20104
- var allRegisteredDirectories = new Set;
20102
+ var SHARED_STATE_FILE = "/tmp/sonarqube-plugin-shared-state.json";
20105
20103
  var globalSafeLog = (msg) => {
20106
20104
  try {
20107
20105
  appendFileSync4("/tmp/sonarqube-plugin-debug.log", `${new Date().toISOString()} [GLOBAL] ${msg}
20108
20106
  `);
20109
20107
  } catch {}
20110
20108
  };
20109
+ var readSharedState = () => {
20110
+ try {
20111
+ const content = __require("fs").readFileSync(SHARED_STATE_FILE, "utf-8");
20112
+ return JSON.parse(content);
20113
+ } catch {
20114
+ return { sessionToDirectory: {}, registeredDirectories: [], lastUpdated: "" };
20115
+ }
20116
+ };
20117
+ var writeSharedState = (state) => {
20118
+ try {
20119
+ state.lastUpdated = new Date().toISOString();
20120
+ __require("fs").writeFileSync(SHARED_STATE_FILE, JSON.stringify(state, null, 2));
20121
+ } catch (e) {
20122
+ globalSafeLog(`Failed to write shared state: ${e}`);
20123
+ }
20124
+ };
20125
+ var mapSessionToDirectory = (sessionId, directory) => {
20126
+ const state = readSharedState();
20127
+ state.sessionToDirectory[sessionId] = directory;
20128
+ writeSharedState(state);
20129
+ globalSafeLog(`Mapped session ${sessionId} to ${directory}`);
20130
+ };
20131
+ var getDirectoryForSession = (sessionId) => {
20132
+ const state = readSharedState();
20133
+ return state.sessionToDirectory[sessionId];
20134
+ };
20135
+ var registerDirectory = (directory) => {
20136
+ const state = readSharedState();
20137
+ if (!state.registeredDirectories.includes(directory)) {
20138
+ state.registeredDirectories.push(directory);
20139
+ writeSharedState(state);
20140
+ }
20141
+ globalSafeLog(`Registered directory: ${directory}, total: ${state.registeredDirectories.length}`);
20142
+ };
20111
20143
  var IGNORED_FILE_PATTERNS2 = [
20112
20144
  /node_modules/,
20113
20145
  /\.git/,
@@ -20175,9 +20207,7 @@ var SonarQubePlugin = async ({ client, directory, worktree }) => {
20175
20207
  };
20176
20208
  const effectiveDirectory = resolveValidDirectory();
20177
20209
  safeLog(`FINAL effectiveDirectory=${effectiveDirectory}`);
20178
- allRegisteredDirectories.add(effectiveDirectory);
20179
- _lastInitializedDirectory = effectiveDirectory;
20180
- globalSafeLog(`Registered directory: ${effectiveDirectory}, total registered: ${allRegisteredDirectories.size}`);
20210
+ registerDirectory(effectiveDirectory);
20181
20211
  try {
20182
20212
  await client.app.log({
20183
20213
  body: {
@@ -20345,9 +20375,7 @@ After fixing, I will re-run the analysis to verify.`;
20345
20375
  if (payload?.id) {
20346
20376
  currentSessionId = payload.id;
20347
20377
  if (event.type === "session.created") {
20348
- sessionToDirectory.set(payload.id, effectiveDirectory);
20349
- globalSafeLog(`Session ${payload.id} mapped to directory: ${effectiveDirectory}`);
20350
- globalSafeLog(`Total sessions tracked: ${sessionToDirectory.size}`);
20378
+ mapSessionToDirectory(payload.id, effectiveDirectory);
20351
20379
  }
20352
20380
  }
20353
20381
  };
@@ -20603,10 +20631,11 @@ Git operation completed with changes. Consider running:
20603
20631
  const inputAny = _input;
20604
20632
  const sessionID = inputAny?.sessionID;
20605
20633
  safeLog(` sessionID: "${sessionID}"`);
20606
- safeLog(` sessionToDirectory size: ${sessionToDirectory.size}`);
20607
- safeLog(` sessionToDirectory entries: ${JSON.stringify([...sessionToDirectory.entries()])}`);
20608
- const sessionDir = sessionID ? sessionToDirectory.get(sessionID) : undefined;
20609
- safeLog(` sessionDir from map: "${sessionDir}"`);
20634
+ const sharedState = readSharedState();
20635
+ safeLog(` sharedState sessions: ${JSON.stringify(sharedState.sessionToDirectory)}`);
20636
+ safeLog(` sharedState directories: ${JSON.stringify(sharedState.registeredDirectories)}`);
20637
+ const sessionDir = sessionID ? getDirectoryForSession(sessionID) : undefined;
20638
+ safeLog(` sessionDir from shared state: "${sessionDir}"`);
20610
20639
  safeLog(` effectiveDirectory (fallback): "${effectiveDirectory}"`);
20611
20640
  const dir = sessionDir || effectiveDirectory;
20612
20641
  safeLog(` FINAL dir used: "${dir}"`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-sonarqube",
3
- "version": "0.2.9",
3
+ "version": "0.2.10",
4
4
  "description": "OpenCode Plugin for SonarQube integration - Enterprise-level code quality from the start",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -38,7 +38,7 @@
38
38
  "homepage": "https://github.com/mguttmann/opencode-sonarqube#readme",
39
39
  "dependencies": {
40
40
  "@opencode-ai/plugin": "^1.1.34",
41
- "opencode-sonarqube": "0.2.8",
41
+ "opencode-sonarqube": "0.2.9",
42
42
  "zod": "^3.24.0"
43
43
  },
44
44
  "devDependencies": {