feat(config): add Gittensory repo focus manifest#389
Conversation
JSONbored
left a comment
There was a problem hiding this comment.
@kiannidev the manifest/parser/API shape is useful, but I cannot merge this policy as written.
A few notes:
- The main blocker is
.gittensory.ymltreatingapps/gittensory-ui/as a blocked path. - That would classify legitimate focused control-panel work as blocked, which conflicts with how this repo currently accepts UI work tied to operator analytics, safety, and release workflows.
- The API/OpenAPI direction is fine, but the policy semantics need to match the repo.
Required changes:
- Rework the focus manifest so UI work is discouraged/conditional where appropriate, not categorically blocked.
- Update tests to cover allowed focused UI changes and genuinely blocked surfaces separately.
- Keep the manifest language aligned with CONTRIBUTING instead of creating a stricter hidden policy.
Validation expected:
- Rerun the focused manifest/parser/API tests and any OpenAPI check touched by this PR.
|
Note Gittensory Gate skippedPR closed before full evaluation. No late first comment was created.
Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers. |
2c90386 to
a094551
Compare
a094551 to
6aa08d0
Compare
|
@JSONbored Thanks for the review — reworked the manifest policy and merged latest Policy changes
Tests
Merge
Ready for another look. |
JSONbored
left a comment
There was a problem hiding this comment.
@kiannidev some merge conflicts to fix before I can accurately review this, please.
JSONbored
left a comment
There was a problem hiding this comment.
Requesting changes. The branch is still unmergeable against current main, and there is also a concrete API behavior issue in the focus-manifest PUT handler. No merge or close action taken.
…red#389 SignalSnapshotRecord.payload is typed as Record<string, JsonValue>; cast the array fixture through unknown so the cache regression test still exercises non-object persisted payloads without failing tsc. Co-authored-by: Cursor <cursoragent@cursor.com>
812cee0 to
2beda48
Compare
|
@JSONbored Thanks — rebased onto current main and resolved the conflicts on my side. Rebase
Session access tests preserved
Validation
Manifest policy semantics unchanged. Ready for another look. |
|
HI, @JSONbored Thanks |
JSONbored
left a comment
There was a problem hiding this comment.
@kiannidev this is now in good shape.
A few notes:
- The manifest policy no longer blocks legitimate focused UI work.
- GET/PUT focus-manifest routes now apply repo-scoped session access.
- The malformed JSON and OpenAPI/generated artifact concerns are addressed.
- Local merge-tree against current
mainis clean. - No code changes requested.
Before I can merge this, please fix failing CI.
Add .gittensory.yml with wanted/blocked paths aligned to CONTRIBUTING,
YAML manifest parsing with bundled self-repo fallback, and maintainer
GET/PUT /v1/repos/{owner}/{repo}/focus-manifest routes with repo-scoped
session access, malformed JSON rejection, OpenAPI updates, and tests.
Co-authored-by: Cursor <cursoragent@cursor.com>
3c17920 to
29a0221
Compare
|
HI, @JSONbored I fixed the CI error and resolved conflicts.. Thanks |
JSONbored
left a comment
There was a problem hiding this comment.
@kiannidev this is good to land.
A few notes:
- The focus manifest now has the repo-scoped session guard on GET and PUT.
- The self-repo fallback, YAML parsing, OpenAPI registration, and policy compilation are covered by focused tests.
- The manifest keeps maintainer notes out of public guidance and keeps retired surfaces blocked.
- Superagent is neutral, not a blocker here, and the non-Gittensory checks are green.
No code changes requested.
After merging main, the self-repo (JSONbored/gittensory) now carries a bundled focus manifest (JSONbored#389), changing its generated draft, so the declined-draft generation test no longer matched its hardcoded policy fingerprint. Use a non-self repo (other-owner/other-repo) -- as the sibling duplicate-draft test does -- so the focus_policy_missing candidate is deterministic.
* feat(issues): respect declined contributor-issue drafts generateContributorIssueDrafts re-proposed (and in create mode re-created) drafts a maintainer had already closed, since dedup only considered open issues. Add a bounded closed-marked-issue lister and findDeclinedContributorDraft: a closed issue carrying a draft's stable marker suppresses re-proposal (skipped_declined) -- indefinitely for wontfix-style labels, otherwise within a 30-day cooldown so genuine regressions can resurface. * test(issues): cover declined-draft cooldown fallback for the coverage gate Mark the defensive declinedIssues [] fallback (unreachable via loadContributorIssueDraftContext) with v8 ignore, and add a findDeclinedContributorDraft case for a missing close timestamp, restoring branch coverage above the 97% gate. * test(issues): use non-self repo for declined-draft generation test After merging main, the self-repo (JSONbored/gittensory) now carries a bundled focus manifest (#389), changing its generated draft, so the declined-draft generation test no longer matched its hardcoded policy fingerprint. Use a non-self repo (other-owner/other-repo) -- as the sibling duplicate-draft test does -- so the focus_policy_missing candidate is deterministic. --------- Co-authored-by: galuis116 <galuis116@users.noreply.github.com> Co-authored-by: ghost <49853598+JSONbored@users.noreply.github.com>
Fixes #118
Summary
.gittensory.yml(wanted backend/MCP paths, blocked website/lovable areas, test expectations, public vs private notes)..gittensory.ymlfirst, then JSON candidates) with safe malformed-manifest warnings.src/config/gittensory-repo-focus-manifest.ts) so decision packs, preflight, and maintainer APIs work before the file is onmain.GET/PUT/v1/repos/{owner}/{repo}/focus-manifestreturning manifest + compiled policy.Scope
CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Validation
git diff --checknpm run actionlintnpm run typechecknpm run test:coveragelocally; global coverage stays at or above 97% for lines, statements, functions, and branches (aim for 98%+ branch coverage locally so CI variance does not fail near the threshold)npm run test:workersnpm run build:mcpnpm run test:mcp-packnpm run ui:openapi:checknpm run ui:lintnpm run ui:typechecknpm run ui:buildnpm audit --audit-level=moderateIf any required check was skipped, explain why:
New / updated tests:
test/unit/gittensory-focus-manifest.test.ts,test/unit/focus-manifest.test.ts,test/unit/focus-manifest-loader.test.ts.Safety
Notes
GITTENSORY_DRIFT_ISSUE_REPOwhen set; otherwiseJSONbored/gittensory.GITTENSORY_REPO_FOCUS_MANIFEST_YAMLmust stay in sync with.gittensory.yml(enforced by unit test).