Skip to content

chore: Phase 6 maintenance — tooling, deps, lint cleanup#38

Merged
ZachDreamZ merged 1 commit into
mainfrom
chore/maintenance-tooling-v1.1
Jun 26, 2026
Merged

chore: Phase 6 maintenance — tooling, deps, lint cleanup#38
ZachDreamZ merged 1 commit into
mainfrom
chore/maintenance-tooling-v1.1

Conversation

@ZachDreamZ

@ZachDreamZ ZachDreamZ commented Jun 26, 2026

Copy link
Copy Markdown
Owner

Summary

Phase 6 of the ROADMAP: Maintenance & Developer Tooling. Five of six tasks completed.

Changes

  • lint/format scripts: Now run eslint and prettier instead of echo stubs
  • CHANGELOG cleanup: Removed orphan duplicate entries at file bottom
  • Deps updated: @earendil-works/pi-* 0.79.3 → 0.80.2, typescript 5.4.0 → 5.9.3
  • npm audit resolved: 4 high-sev vulns fixed (0 remaining)
  • .npmignore added: Excludes tests/coverage/config from published package
  • Lint warnings: Fixed 7 unused-variable warnings across source and tests
  • Version bumped: 1.0.0 → 1.1.0
  • ROADMAP: Added Phase 6 with progress summary

Quality Gates

  • ✅ 337/337 tests pass
  • ✅ npm run lint — 0 errors, 25 warnings (pre-existing any-types only)
  • ✅ npm run format — clean
  • ✅ npm audit — 0 vulnerabilities

Remaining (6.6)

Bump version to 1.1.0 — done in this PR.


Open in Devin Review

@ZachDreamZ
ZachDreamZ merged commit 91c0611 into main Jun 26, 2026
4 of 5 checks passed
- Fix lint/format scripts to use eslint/prettier (was echo stubs)
- Remove orphan CHANGELOG entries (duplicate 0.8.1/0.9.2)
- Update devDeps: @pi-* 0.79.3->0.80.2, typescript 5.4.0->5.9.3
- Resolve npm audit (0 vulns remaining)
- Add .npmignore for clean package publishing
- Fix 7 unused-variable lint warnings
- Add ROADMAP Phase 6: Maintenance & Developer Tooling
- Bump version to 1.1.0

Closes: ROADMAP 6.1-6.5

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 5 potential issues.

Open in Devin Review

Comment thread extensions/engine.ts

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚩 shouldCompact Gate 2 (hardWatermark) is unreachable

In extensions/engine.ts:436-449, shouldCompact() has two gates: Gate 1 fires at contextWindow * 0.6 (60%), and Gate 2 fires at contextWindow * hardWatermark (default 0.5, so 50%). Since 60% > 50%, Gate 1 will always trigger first for any token count that would trigger Gate 2. Gate 2 is dead code unless hardWatermark is configured above 0.6, which contradicts the name 'hard watermark' (typically a higher, not lower, threshold). This is a pre-existing issue not introduced by this PR, but it's worth noting since the JSDoc says 'whichever hits first' implying they serve different purposes.

(Refers to lines 436-449)

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread CHANGELOG.md
- 0 errors, 25 warnings (all pre-existing `any` type hints)
- Prettier formatting clean across all source

l).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Stray garbage text appears in the published changelog

A truncated fragment l). is left on its own line in the changelog (CHANGELOG.md:34), between the Quality Gates section and the 1.0.0 heading, so users and npm package viewers see nonsensical text.

Impact: The published CHANGELOG visible on npm and GitHub contains corrupted/nonsensical text.

Appears to be a copy-paste artifact

Line 34 of CHANGELOG.md contains just l). which looks like the tail end of a sentence that was accidentally left behind when editing. It sits right after the "Quality Gates" bullet list for v1.1.0 and before the ## [1.0.0] heading. Since CHANGELOG.md is listed in the package.json:files array (package.json:57), this garbage text will ship in the npm package.

Suggested change
l).
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread extensions/engine.ts
protected: protectedMsgs,
compressible,
discardable: _discardable,
// discardable: _discardable,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Commented-out code left in production source violates repo rules

A destructured variable is commented out rather than removed (// discardable: _discardable, at extensions/engine.ts:475), instead of simply omitting it from the destructuring, so commented-out code ships in production source.

Impact: Violates the repository's explicit "no commented-out code in commits" rule.

CONTRIBUTING.md rule violation detail

CONTRIBUTING.md states: "No debug logs, commented-out code, or TODOs in commits". The previous code destructured discardable: _discardable from classifyMessages(). The fix should simply omit the property from the destructuring pattern entirely, since the return value is unused.

Suggested change
// discardable: _discardable,
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

];
// Budget allows user message but not the full tool output
const totalTokens = engine.estimateTokens(msgs);
// const totalTokens = engine.estimateTokens(msgs);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Commented-out code left in test file violates repo rules

An unused variable assignment is commented out rather than deleted (// const totalTokens = ... at tests/engine-coverage.test.ts:937), instead of removing the line, so commented-out code remains in the codebase.

Impact: Violates the repository's explicit "no commented-out code in commits" rule.

CONTRIBUTING.md rule violation detail

CONTRIBUTING.md states: "No debug logs, commented-out code, or TODOs in commits". The variable totalTokens was unused, so the correct fix is to delete the line entirely rather than commenting it out.

Suggested change
// const totalTokens = engine.estimateTokens(msgs);
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread extensions/index.ts
},
};
} catch (error) {
} catch {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚩 Catch clause drops error context for diagnostics

The change from catch (error) to catch at extensions/index.ts:244 is valid since the error variable was indeed unused in the catch block body. However, this means any diagnostic information from the thrown error (e.g., from extensions/index.ts:225 where an explicit new Error('Empty summary...') is thrown, or from failures inside engine.generateSummary) is silently discarded. The notification at line 249 only reports the failure count, not the root cause. For a production extension, capturing and logging the error message would aid debugging compaction failures.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant