Hermes 284313f908
Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

419 lines
51 KiB
Markdown

# Scratchpad — Alga PSA n8n Ticket Node CRUD
- Plan slug: `n8n-ticket-node-crud`
- Created: `2026-02-16`
## What This Is
Working notes for the n8n ticket-node plan. This captures scope decisions made in brainstorming and concrete API constraints discovered in the repo.
## Decisions
- (2026-02-16) Use a single node approach: one `Alga PSA` node with multiple resources.
- (2026-02-16) V1 Ticket read scope includes both `Get by ID` and `List/Search`.
- (2026-02-16) V1 update scope includes general update plus dedicated status and assignment operations.
- (2026-02-16) V1 create/update UX uses dynamic dropdowns for required reference IDs.
- (2026-02-16) V1 includes `Delete Ticket` to satisfy full CRUD.
- (2026-02-16) Credential model for v1 is `baseUrl + apiKey` only (no tenant header field in UX).
- (2026-02-16) Expose helper operations (`List Clients`, `List Boards`, `List Statuses`, `List Priorities`) in addition to internal lookup use.
- (2026-02-16) Distribution target is npm availability for Alga users; n8n community-portal submission is not required for v1.
- (2026-03-08) Extend the existing `Ticket` resource instead of adding a separate `Comment` resource; new scope is `List Comments` and `Add Comment`.
- (2026-03-08) Do not expose `time_spent` in the n8n node because current Alga PSA ticket comments do not persist it or translate it into time entries.
## Discoveries / Constraints
- (2026-02-16) Alga ticket CRUD routes already exist and are backed by controller/service implementations:
- `server/src/app/api/v1/tickets/route.ts`
- `server/src/app/api/v1/tickets/[id]/route.ts`
- `server/src/app/api/v1/tickets/[id]/status/route.ts`
- `server/src/app/api/v1/tickets/[id]/assignment/route.ts`
- `server/src/lib/api/controllers/ApiTicketController.ts`
- `server/src/lib/api/services/TicketService.ts`
- (2026-02-16) Ticket create schema requires UUID references: `client_id`, `board_id`, `status_id`, `priority_id`.
- (2026-02-16) Ticket auth uses `x-api-key`; `x-tenant-id` is optional in controller flow and can be inferred from key.
- (2026-02-16) Helper lookup routes exist for v1 dropdowns/helpers:
- `GET /api/v1/clients`
- `GET /api/v1/boards`
- `GET /api/v1/statuses`
- `GET /api/v1/priorities`
- (2026-02-16) n8n docs indicate installation from npm/manual path for community nodes is self-hosted; unverified community nodes are not available on n8n Cloud.
- (2026-02-16) n8n docs recommend choosing declarative vs programmatic/hybrid style; this plan uses declarative-first with focused programmatic request/normalization logic.
- (2026-03-08) Ticket comment API endpoints already exist:
- `GET /api/v1/tickets/{id}/comments`
- `POST /api/v1/tickets/{id}/comments`
- (2026-03-08) `createTicketCommentSchema` still exposes `time_spent`, but `TicketService.addComment()` ignores it and the `comments` table has no `time_spent` column:
- `server/src/lib/api/schemas/ticket.ts`
- `server/src/lib/api/services/TicketService.ts`
- `server/migrations/202409071803_initial_schema.cjs`
- (2026-03-08) `TicketService.getTicketComments()` supports `limit`, `offset`, and `order`, which are the only list-query knobs needed for the n8n comment-read operation.
## Commands / Runbooks
- (2026-02-16) Scaffold plan artifacts:
- `python3 /Users/roberisaacs/.codex/skills/alga-plan/scripts/scaffold_plan.py "Alga PSA n8n Ticket Node CRUD" --slug n8n-ticket-node-crud`
- (2026-02-16) Validate plan format:
- `python3 /Users/roberisaacs/.codex/skills/alga-plan/scripts/validate_plan.py ee/docs/plans/2026-02-16-n8n-ticket-node-crud`
- (2026-02-16) Confirm ticket API routes quickly:
- `find server/src/app/api/v1/tickets -maxdepth 3 -type f | sort`
- (2026-02-16) Confirm helper route existence quickly:
- `find server/src/app/api/v1 -maxdepth 3 -type f | sort | rg "boards|statuses|priorities|clients"`
- (2026-03-08) Verify n8n package after adding ticket comments:
- `npm install --workspace packages/n8n-nodes-alga-psa --ignore-scripts`
- `npm -w packages/n8n-nodes-alga-psa test`
- `npm -w packages/n8n-nodes-alga-psa run build`
## Links / References
- n8n node creation overview:
- https://docs.n8n.io/integrations/creating-nodes/overview/
- n8n build style guidance:
- https://docs.n8n.io/integrations/creating-nodes/build/reference/node-base-files/choose-node-method/
- n8n installation guidance for community nodes:
- https://docs.n8n.io/integrations/community-nodes/installation/
- https://docs.n8n.io/integrations/community-nodes/installation/manual-install/
- Alga API schema and service references:
- `server/src/lib/api/schemas/ticket.ts`
- `server/src/lib/api/services/TicketService.ts`
## Open Questions
- Final npm package name/scope decision for discoverability (`n8n-nodes-alga-psa` vs `@alga-psa/n8n-nodes-alga-psa`).
- Confirm minimum supported n8n version and Node runtime for package README.
- Decide whether to add optional `x-tenant-id` header support in a v1.1 credential update.
- (2026-03-08) Resolved: ticket comments in n8n will include only current server-backed capabilities (`List Comments`, `Add Comment`) and will not surface `time_spent`.
- (2026-03-08) Implemented F031/F032/F033/F034: added `Ticket -> List Comments` and `Ticket -> Add Comment`, omitted unsupported `time_spent`, updated README, and added `examples/add-comment-then-list-comments.workflow.json`.
- (2026-03-08) Verification: `npm -w packages/n8n-nodes-alga-psa test` passed (`52` tests) and `npm -w packages/n8n-nodes-alga-psa run build` passed after installing the declared `n8n-workflow` dependency into this worktree with `npm install --workspace packages/n8n-nodes-alga-psa --ignore-scripts`.
- (2026-02-16) Implemented F001: scaffolded `packages/n8n-nodes-alga-psa` with npm-valid community node package name and canonical n8n folder layout (`nodes/AlgaPsa`, `credentials`) to establish distribution-ready project boundaries.
- (2026-02-16) Implemented F002: added package build metadata/scripts (`clean`, `build`, `typecheck`), TypeScript config, and n8n manifest entries so compiled credential/node artifacts emit under `dist/` for installable packaging.
- (2026-02-16) Verified build artifact emission:
- `npm -w packages/n8n-nodes-alga-psa run build`
- `find packages/n8n-nodes-alga-psa/dist -maxdepth 4 -type f | sort`
- (2026-02-16) Implemented F003: credential type `AlgaPsaApi` now exposes only `baseUrl` and secret `apiKey` fields, matching the v1 credential UX and keeping API key entry hidden via password type options.
- (2026-02-16) Implemented F004: added shared transport helper (`nodes/AlgaPsa/transport.ts`) that trims trailing slashes from `baseUrl`, normalizes endpoint slashes, and injects `x-api-key` on all outbound requests.
- (2026-02-16) Implemented F005: expanded `AlgaPsa` node shell to a single multi-resource node with `Ticket`, `Client`, `Board`, `Status`, and `Priority` selectors.
- (2026-02-16) Implemented F006: operation routing is resource-scoped via resource-specific operation selectors so only valid operations are visible/executable for each resource.
- (2026-02-16) Implemented F007: Ticket create now calls `POST /api/v1/tickets` with required fields and optional field mapping through the create payload builder.
- (2026-02-16) Implemented F008: Ticket get now calls `GET /api/v1/tickets/{id}` with preflight ID validation.
- (2026-02-16) Implemented F009: Ticket list now calls `GET /api/v1/tickets` and serializes pagination/sort/filter query parameters.
- (2026-02-16) Implemented F010: Ticket search now calls `GET /api/v1/tickets/search` with required query and optional search filters.
- (2026-02-16) Implemented F011: Ticket update now calls `PUT /api/v1/tickets/{id}` with partial payload construction that omits empty fields.
- (2026-02-16) Implemented F012: Ticket status update now calls `PUT /api/v1/tickets/{id}/status` with `status_id` payload.
- (2026-02-16) Implemented F013: Ticket assignment update now calls `PUT /api/v1/tickets/{id}/assignment` with assign/clear behavior mapped to `assigned_to`.
- (2026-02-16) Implemented F014: Ticket delete now calls `DELETE /api/v1/tickets/{id}` with required ID validation.
- (2026-02-16) Implemented F015: Delete responses are normalized to a guaranteed non-empty success payload containing `success`, `id`, and `deleted`.
- (2026-02-16) Implemented F016: Success normalization now unwraps `{ data: ... }` responses and preserves pagination metadata when present.
- (2026-02-16) Implemented F017: API failures are parsed into structured `code`/`message`/`details` payloads and surfaced via n8n-friendly error handling.
- (2026-02-16) Implemented F018: Continue On Fail now emits item-level error objects and keeps processing subsequent items.
- (2026-02-16) Implemented F019: Client helper list operation now maps to `GET /api/v1/clients`.
- (2026-02-16) Implemented F020: Board helper list operation now maps to `GET /api/v1/boards`.
- (2026-02-16) Implemented F021: Status helper list operation now maps to `GET /api/v1/statuses`.
- (2026-02-16) Implemented F022: Priority helper list operation now maps to `GET /api/v1/priorities`.
- (2026-02-16) Implemented F023: Dynamic list-search load-options are implemented for `client_id`, `board_id`, `status_id`, and `priority_id` in ticket create/update flows.
- (2026-02-16) Implemented F024: Lookup fields now support explicit manual UUID entry via resource locator ID mode and graceful empty lookup handling.
- (2026-02-16) Implemented F025: Ticket create/update forms keep required fields prominent and group optional inputs into additional-fields collections.
- (2026-02-16) Implemented F026: Operation-level validation now blocks requests when required IDs or search query values are missing/invalid.
- (2026-02-16) Implemented F027: authored package README with credential setup, operation matrix, ticket field requirements, lookup behavior, and output/error expectations.
- (2026-02-16) Implemented F028: README installation section documents self-hosted GUI/npm/manual paths and explicitly notes unverified community-node limitations on n8n Cloud.
- (2026-02-16) Implemented F029: added two minimal workflow example definitions (`create->update-assignment` and `search->update-status`) under `packages/n8n-nodes-alga-psa/examples` and referenced them in README.
- (2026-02-16) Prepared release artifact checks for F030:
- `npm -w packages/n8n-nodes-alga-psa pack --dry-run` succeeded and produced `n8n-nodes-alga-psa-0.1.0.tgz`.
- `npm whoami` returned `401 Unauthorized`; npm publish is currently blocked by missing/invalid registry authentication in this environment.
- (2026-02-16) Added `packages/n8n-nodes-alga-psa/RELEASE_NOTES.md` draft for the 0.1.0 feature surface.
- (2026-02-16) Implemented T001: added package metadata test coverage validating n8n community package naming and dist entrypoint declarations (`__tests__/package-and-credential.test.ts`).
- (2026-02-16) Validation run (current suite baseline):
- `npm -w packages/n8n-nodes-alga-psa test`
- (2026-02-16) Implemented T002: Build test executes `npm run build` and asserts compiled node/credential artifacts exist in `dist/`.
- (2026-02-16) Implemented T003: Credential unit test asserts fields are exactly `baseUrl` and secret `apiKey`.
- (2026-02-16) Implemented T004: Transport helper unit test covers trailing-slash normalization and path joining semantics.
- (2026-02-16) Implemented T005: Transport helper unit test asserts `x-api-key` injection and absence of logging side effects.
- (2026-02-16) Implemented T006: Node description test validates resource selector values for Ticket/Client/Board/Status/Priority.
- (2026-02-16) Implemented T007: Node description test validates only valid operations appear for each resource.
- (2026-02-16) Implemented T010: Execute-path test validates POST payload includes required ticket create fields.
- (2026-02-16) Implemented T011: Execute-path test validates optional create fields are sent only when provided.
- (2026-02-16) Implemented T012: Execute-path test validates create response unwrapping from `{ data: ... }`.
- (2026-02-16) Implemented T013: Execute-path test validates GET route format and empty-ID validation short-circuit.
- (2026-02-16) Implemented T014: Execute-path test validates get response object passthrough for downstream nodes.
- (2026-02-16) Implemented T015: Execute-path test validates list pagination/sort/filter query serialization.
- (2026-02-16) Implemented T016: Execute-path test validates pagination metadata is preserved in normalized output.
- (2026-02-16) Implemented T017: Execute-path test validates query + optional search filter serialization for `/tickets/search`.
- (2026-02-16) Implemented T018: Execute-path test validates both populated and empty search result normalization.
- (2026-02-16) Implemented T019: Execute-path test validates update sends only provided mutable fields.
- (2026-02-16) Implemented T020: Execute-path test validates updated ticket response passthrough for downstream use.
- (2026-02-16) Implemented T021: Execute-path test validates `PUT /tickets/{id}/status` payload contract.
- (2026-02-16) Implemented T022: Execute-path test validates `PUT /tickets/{id}/assignment` payload contract.
- (2026-02-16) Implemented T023: Execute-path test validates DELETE request path and method.
- (2026-02-16) Implemented T024: Execute-path test validates 204-style delete normalization to explicit success object.
- (2026-02-16) Implemented T025: Helper unit test validates `{ data: object }` unwrap behavior.
- (2026-02-16) Implemented T026: Helper unit test validates array unwrap plus pagination retention.
- (2026-02-16) Implemented T027: Error formatting unit test validates actionable 401 mapping with details payload.
- (2026-02-16) Implemented T028: Error formatting unit test validates actionable 403 permission mapping.
- (2026-02-16) Implemented T029: Error formatting unit test validates actionable 404 not-found mapping.
- (2026-02-16) Implemented T030: Error formatting unit test validates actionable 400 validation mapping.
- (2026-02-16) Implemented T031: Execute-path integration test validates item-level error emission and continued processing.
- (2026-02-16) Implemented T032: Execute-path test validates client helper route + list output normalization.
- (2026-02-16) Implemented T033: Execute-path test validates board helper route + list output normalization.
- (2026-02-16) Implemented T034: Execute-path test validates status helper route + list output normalization.
- (2026-02-16) Implemented T035: Execute-path test validates priority helper route + list output normalization.
- (2026-02-16) Implemented T036: Load-options test validates client label/value mapping from clients API response.
- (2026-02-16) Implemented T037: Load-options test validates board label/value mapping from boards API response.
- (2026-02-16) Implemented T038: Load-options test validates status label/value mapping from statuses API response.
- (2026-02-16) Implemented T039: Load-options test validates priority label/value mapping from priorities API response.
- (2026-02-16) Implemented T040: Load-options and execute tests validate empty lookup fallback + manual UUID execution path.
- (2026-02-16) Implemented T041: Node description tests validate required fields are separate from additional optional collections.
- (2026-02-16) Implemented T042: Execute-path tests validate request blocking when required IDs/search query are missing.
- (2026-02-16) Implemented T043: Docs test validates README includes credential setup, operation matrix, and ticket field requirements.
- (2026-02-16) Implemented T044: Docs test validates self-hosted install guidance and n8n Cloud limitation notes.
- (2026-02-16) Implemented T045: Docs test validates both example workflow files and operation chains are present.
- (2026-02-16) Re-validated release publish blocker for F030/T046:
- `npm whoami` still fails with `401 Unauthorized`.
- `npm view n8n-nodes-alga-psa version` returns `404 Not Found` (package not yet published).
- `npm -w packages/n8n-nodes-alga-psa publish --access public` builds and uploads tarball metadata but fails before publish with `Access token expired or revoked`, followed by npm registry `404 ... not found or you do not have permission`.
- `~/.npmrc` contains an npm auth token entry, but it is no longer valid for registry publish.
- (2026-02-16) Rechecked release prerequisites for F030/T046 again from clean git state:
- `cat ~/.npmrc` (redacted) confirms npm auth token is configured but currently unusable (`//registry.npmjs.org/:_authToken=[REDACTED]`).
- `npm whoami` still returns `E401 Unauthorized`.
- `npm view n8n-nodes-alga-psa version` still returns `E404 Not Found`, indicating no public release exists yet.
- `npm -w packages/n8n-nodes-alga-psa publish --access public` still packages successfully, then fails on registry publish with `Access token expired or revoked` and `E404` permission/not found response.
- No alternate npm auth env vars are present in shell environment (`env | rg -i '(^npm_|_npm|token)'` shows npm config vars only, redacted).
- (2026-02-16) Release readiness revalidation for F030/T046 from current worktree:
- `npm -w packages/n8n-nodes-alga-psa test` passed (`44` tests).
- `npm -w packages/n8n-nodes-alga-psa run build` passed and regenerated `dist/`.
- `npm -w packages/n8n-nodes-alga-psa pack --dry-run` succeeded and produced `n8n-nodes-alga-psa-0.1.0.tgz` preview metadata.
- (2026-02-16) Publish remains blocked by npm auth/permissions in this environment:
- `npm whoami` returned `E401 Unauthorized`.
- `npm view n8n-nodes-alga-psa version` returned `E404 Not Found` (package still not published).
- `npm -w packages/n8n-nodes-alga-psa publish --access public` reached publish step but failed with `Access token expired or revoked`, then registry `E404` permission/not-found response.
- (2026-02-16) Non-blocking publish warning observed:
- npm warns `repository.url` is auto-normalized to `git+https://github.com/alga-psa/alga-psa.git`; this does not block package build/publish attempt.
- (2026-02-16) Release validation rerun in current session:
- `npm -w packages/n8n-nodes-alga-psa test` passed (`44` tests).
- `npm -w packages/n8n-nodes-alga-psa run build` passed and regenerated `dist/`.
- `npm -w packages/n8n-nodes-alga-psa pack --dry-run` (run after build) includes compiled `dist/` files and succeeds.
- (2026-02-16) Packaging command-order gotcha:
- Running `npm run build` and `npm pack --dry-run` concurrently can produce a misleading pack preview that omits `dist/` while `clean` is executing; run them sequentially for accurate release verification.
- (2026-02-16) Publish remains externally blocked after rerun:
- `npm whoami` still returns `E401 Unauthorized`.
- `npm view n8n-nodes-alga-psa version` still returns `E404 Not Found`.
- `npm -w packages/n8n-nodes-alga-psa publish --access public` still fails with `Access token expired or revoked` and registry `E404` permission/not-found response.
- (2026-02-16) Release publish revalidation (latest run in this worktree):
- `npm -w packages/n8n-nodes-alga-psa test` passed (`44` tests).
- `npm -w packages/n8n-nodes-alga-psa run build` passed.
- `npm -w packages/n8n-nodes-alga-psa pack --dry-run` passed and included compiled `dist/` artifacts.
- `npm whoami` returned `E401 Unauthorized`.
- `npm view n8n-nodes-alga-psa version` returned `E404 Not Found`.
- `npm -w packages/n8n-nodes-alga-psa publish --access public` failed with `Access token expired or revoked`, then registry `E404` permission/not-found response.
- (2026-02-16) Checked for repo-native automated publish path:
- Searched `.github/workflows` for npm publish/release automation and did not find an existing npm release workflow for this package.
- Current blocker for F030/T046 remains external npm registry credentials/permissions, not local package readiness.
- (2026-02-16) Release publish revalidation (current autonomous run):
- `npm -w packages/n8n-nodes-alga-psa test` passed (`44` tests).
- `npm -w packages/n8n-nodes-alga-psa run build` passed.
- `npm -w packages/n8n-nodes-alga-psa pack --dry-run` passed and includes built `dist/` artifacts.
- `npm whoami` failed with `E401 Unauthorized`.
- `npm view n8n-nodes-alga-psa version` failed with `E404 Not Found`.
- `npm -w packages/n8n-nodes-alga-psa publish --access public` still fails at registry step with `Access token expired or revoked` and npm `E404` permission/not-found response.
- Feature/test completion remains blocked on valid npm registry credentials with permission to publish `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (latest attempt in this session):
- Re-ran release verification in strict order: `npm test`, `npm run build`, then `npm pack --dry-run`; all succeeded and tarball preview includes compiled `dist/` artifacts.
- Re-ran registry checks: `npm whoami` still returns `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` still returns `E404 Not Found`.
- Re-ran publish: `npm -w packages/n8n-nodes-alga-psa publish --access public` still reaches publish stage but fails with `Access token expired or revoked` and registry `E404` permission/not-found response.
- Blocker remains external npm credentials/ownership; no remaining local code/test gaps found for F030/T046.
- (2026-02-16) Release publish revalidation (autonomous run at 23:24 UTC):
- Ran release pipeline sequentially to avoid `dist/` race: `npm -w packages/n8n-nodes-alga-psa test && npm -w packages/n8n-nodes-alga-psa run build && npm -w packages/n8n-nodes-alga-psa pack --dry-run`; all passed (`44` tests, pack tarball includes `dist/`).
- Registry checks remain blocked: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish remains blocked: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` then npm `E404` permission/not-found response.
- F030/T046 cannot be flipped without refreshed npm auth token tied to an owner/publisher for `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:25 UTC):
- Re-ran readiness checks in strict order: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, and `npm -w packages/n8n-nodes-alga-psa pack --dry-run`; all passed and dry-run tarball includes compiled `dist/` outputs.
- `npm whoami` still fails with `E401 Unauthorized` (pipeline halts immediately with `set -e` when included inline).
- Follow-up registry commands still fail: `npm view n8n-nodes-alga-psa version` => `E404 Not Found`; `npm -w packages/n8n-nodes-alga-psa publish --access public` => `Access token expired or revoked` + npm `E404` permission/not-found.
- Auth context remains unchanged: `env | rg -i '(^npm_|_npm|token)'` shows no usable npm token env vars; `~/.npmrc` still contains only `//registry.npmjs.org/:_authToken=[REDACTED]`.
- F030/T046 remain blocked on refreshed npm credentials with publish access to `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:27 UTC):
- Re-ran release flow in strict order: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`; all passed and pack preview includes `dist/` artifacts.
- Registry/account checks still fail unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish attempt still fails at registry step: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports token is expired/revoked and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Blocker remains external npm auth/ownership; no additional local code or test gaps were identified.
- (2026-02-16) Release publish revalidation (autonomous run at 23:29 UTC):
- Re-ran readiness flow in strict order: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`; all passed and dry-run tarball includes compiled `dist/` artifacts.
- Registry checks remain blocked: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish still fails: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked`, then npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- F030/T046 remain blocked on refreshed npm credentials with ownership/publish permission for `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:31 UTC):
- Re-ran readiness flow in strict order: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`; all passed (`44` tests) and pack preview includes compiled `dist/` artifacts.
- Registry/account checks still fail: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish attempt still fails at registry step: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Non-blocking warning repeated: npm auto-normalizes `repository.url` to `git+https://github.com/alga-psa/alga-psa.git`.
- F030/T046 remain externally blocked on refreshed npm credentials with publish access to `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:33 UTC):
- Re-ran readiness flow in strict order: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`; all passed (`44` tests) and dry-run tarball includes compiled `dist/` artifacts.
- Registry checks remain blocked: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish still fails: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked`, then npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- F030/T046 remain externally blocked on refreshed npm credentials with ownership/publish permission for `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:34 UTC):
- `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, and `npm -w packages/n8n-nodes-alga-psa pack --dry-run` all succeeded; dry-run tarball includes compiled `dist/` artifacts.
- `npm whoami` failed with `E401 Unauthorized`.
- `npm view n8n-nodes-alga-psa version` failed with `E404 Not Found`.
- `npm -w packages/n8n-nodes-alga-psa publish --access public` failed with `Access token expired or revoked` and npm registry `E404` permission/not-found response.
- F030/T046 remain externally blocked pending refreshed npm credentials with publish access to `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:36 UTC):
- `npm -w packages/n8n-nodes-alga-psa test && npm -w packages/n8n-nodes-alga-psa run build && npm -w packages/n8n-nodes-alga-psa pack --dry-run` all succeeded (`44` tests) and tarball preview includes compiled `dist/` artifacts.
- `npm whoami` still fails with `E401 Unauthorized`.
- `npm view n8n-nodes-alga-psa version` still fails with `E404 Not Found`.
- `npm -w packages/n8n-nodes-alga-psa publish --access public` still fails with `Access token expired or revoked` and npm registry `E404` permission/not-found response.
- Blocker remains external npm auth/ownership; F030 and T046 cannot be completed from this environment without refreshed publish credentials.
- (2026-02-16) Release publish revalidation (autonomous run at 23:37 UTC):
- Full gated sequence rerun in strict order and succeeded locally: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run` (`44` tests; pack includes compiled `dist/` assets).
- Registry checks still fail unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish still fails unchanged: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports access token revoked/expired and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Exit-code summary from scripted run: `test=0 build=0 pack=0 whoami=1 view=1 publish=1`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:39 UTC):
- Re-ran release gates in order: `npm -w packages/n8n-nodes-alga-psa test` (pass, `44` tests), `npm -w packages/n8n-nodes-alga-psa run build` (pass), `npm -w packages/n8n-nodes-alga-psa pack --dry-run` (pass; tarball includes compiled `dist/` outputs).
- Registry identity/package checks still fail: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish attempt still fails unchanged: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports token expired/revoked and returns npm `E404` permission/not-found.
- `~/.npmrc` still contains an npmjs auth token entry, but it is currently invalid for registry authentication/publish.
- `F030`/`T046` remain blocked on refreshed npm credentials with publish permission for `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:41 UTC):
- Re-ran gated local release sequence in strict order: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`; all passed (`44` tests) and dry-run tarball includes compiled `dist/` artifacts.
- Registry identity/package checks still fail unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish attempt still fails unchanged: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Scripted exit-code summary: `whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with ownership/publish permission for `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:43 UTC):
- Re-ran gated release sequence in strict order: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`; all passed (`44` tests) and dry-run tarball includes compiled `dist/` artifacts.
- Registry/account checks remain blocked: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish still fails unchanged: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Scripted exit-code summary: `test=0 build=0 pack=0 whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with ownership/publish permission for `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:44 UTC):
- Re-ran local release gates in strict order: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`; all passed (`44` tests) and dry-run tarball includes compiled `dist/` artifacts.
- Registry/auth checks unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish unchanged: `npm -w packages/n8n-nodes-alga-psa publish --access public` reached publish step but failed with `Access token expired or revoked` and npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Release notes audit confirms `packages/n8n-nodes-alga-psa/RELEASE_NOTES.md` already documents supported resources/operations and self-hosted installation steps.
- `F030`/`T046` remain externally blocked on refreshed npm credentials with owner/publisher access to `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:46 UTC):
- Local release gates re-ran in strict order and passed: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run` (`44` tests; tarball includes compiled `dist/` artifacts).
- Registry/account checks still fail: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish still fails unchanged: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Scripted exit-code summary: `whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with ownership/publish permission for `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:48 UTC):
- Re-ran release gates sequentially: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`; all passed (`44` tests) and dry-run tarball includes compiled `dist/` artifacts.
- Registry checks unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish remains blocked: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Scripted exit-code summary: `whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with ownership/publish permission for `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:50 UTC):
- Re-ran full local release gate: `npm -w packages/n8n-nodes-alga-psa test` (pass, `44` tests), `npm -w packages/n8n-nodes-alga-psa run build` (pass), `npm -w packages/n8n-nodes-alga-psa pack --dry-run` (pass; tarball includes compiled `dist/` artifacts).
- Registry checks still fail unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish still fails unchanged: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Scripted exit-code summary: `build=0 pack=0 whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with ownership/publish permission for `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:51 UTC):
- Re-ran local release gates in strict order: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`; all passed (`44` tests) and dry-run tarball includes compiled `dist/` artifacts.
- Re-ran registry checks: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Re-ran publish attempt: `npm -w packages/n8n-nodes-alga-psa publish --access public` still reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Scripted exit-code summary: `whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with ownership/publish permission for `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:53 UTC):
- Ran strict sequence in one shell (`test -> build -> pack --dry-run -> whoami -> view -> publish`) to capture a single, comparable result set.
- Local gates all passed: `npm -w packages/n8n-nodes-alga-psa test` (`44` tests), `npm -w packages/n8n-nodes-alga-psa run build`, and `npm -w packages/n8n-nodes-alga-psa pack --dry-run` (tarball preview includes compiled `dist/` artifacts).
- Registry checks remain unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish still fails unchanged: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Scripted exit-code summary: `test=0 build=0 pack=0 whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked on refreshed npm credentials with ownership/publish permission for `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:55 UTC):
- Re-ran strict sequence in one shell (`test -> build -> pack --dry-run -> whoami -> view -> publish`) and outcomes were unchanged.
- Local release gates passed again: `npm -w packages/n8n-nodes-alga-psa test` (`44` tests), `npm -w packages/n8n-nodes-alga-psa run build`, and `npm -w packages/n8n-nodes-alga-psa pack --dry-run` (dry-run tarball includes compiled `dist/` outputs).
- Registry checks remain blocked: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish remains blocked: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` and then returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Additional auth-context check confirms no alternate token source: `env | rg -i '(^npm_|_npm|token)'` shows no usable npm auth env vars; `~/.npmrc` contains only `//registry.npmjs.org/:_authToken=[REDACTED]` which is currently invalid.
- Scripted exit-code summary: `test=0 build=0 pack=0 whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with ownership/publish permission for `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:56 UTC):
- Re-ran strict sequence in one shell (`test -> build -> pack --dry-run -> whoami -> view -> publish`) to re-check whether npm auth had changed.
- Local release gates still pass: `npm -w packages/n8n-nodes-alga-psa test` (`44` tests), `npm -w packages/n8n-nodes-alga-psa run build`, and `npm -w packages/n8n-nodes-alga-psa pack --dry-run` (dry-run tarball includes compiled `dist/` artifacts).
- Registry checks still fail unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish still fails unchanged: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Scripted exit-code summary: `test=0 build=0 pack=0 whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked on valid npm credentials with owner/publish rights for `n8n-nodes-alga-psa`.
- (2026-02-16) Release publish revalidation (autonomous run at 23:58 UTC):
- Re-ran strict release sequence in one shell: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`, `npm whoami`, `npm view n8n-nodes-alga-psa version`, `npm -w packages/n8n-nodes-alga-psa publish --access public`.
- Local package gates all passed (`44` tests; build succeeded; dry-run tarball includes compiled `dist/` assets).
- Registry/auth checks remain blocked and unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`; publish => `Access token expired or revoked` followed by npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Exit-code summary: `test=0 build=0 pack=0 whoami=1 view=1 publish=1`.
- `F030` and `T046` remain externally blocked pending refreshed npm credentials with owner/publisher permission for `n8n-nodes-alga-psa`.
- (2026-02-17) Release publish revalidation (autonomous run at 00:01 UTC):
- Local release gates passed in order: `npm -w packages/n8n-nodes-alga-psa test` (`44` tests), `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run` (tarball includes compiled `dist/` artifacts).
- Registry identity/package checks still fail: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish still fails unchanged: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with ownership/publish permission for `n8n-nodes-alga-psa`.
- (2026-02-17) Release publish revalidation (autonomous run at 00:03 UTC):
- Local release gates passed again: `npm -w packages/n8n-nodes-alga-psa test` (`44` tests), `npm -w packages/n8n-nodes-alga-psa run build`, and `npm -w packages/n8n-nodes-alga-psa pack --dry-run` (tarball includes compiled `dist/` artifacts).
- Registry identity/package checks remain blocked: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish attempt remains blocked: `npm -w packages/n8n-nodes-alga-psa publish --access public` still reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- `F030`/`T046` are still externally blocked pending refreshed npm credentials with owner/publisher permission for `n8n-nodes-alga-psa`.
- (2026-02-17) Release publish revalidation (autonomous run at 00:04 UTC):
- Re-ran strict release sequence in one shell: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`, `npm whoami`, `npm view n8n-nodes-alga-psa version`, `npm -w packages/n8n-nodes-alga-psa publish --access public`.
- Local release gates all passed (`44` tests; build succeeded; dry-run tarball includes compiled `dist/` artifacts).
- Registry/auth checks still fail unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`; publish reports token expired/revoked and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Exit-code summary: `test=0 build=0 pack=0 whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with owner/publisher permission for `n8n-nodes-alga-psa`.
- (2026-02-17) Release publish revalidation (autonomous run at 00:06 UTC):
- Re-ran strict release sequence in one shell: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`, `npm whoami`, `npm view n8n-nodes-alga-psa version`, `npm -w packages/n8n-nodes-alga-psa publish --access public`.
- Local release gates all passed (`44` tests; build succeeded; dry-run tarball includes compiled `dist/` artifacts).
- Registry/auth checks still fail unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`; publish reports token expired/revoked and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Exit-code summary: `test=0 build=0 pack=0 whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with owner/publisher permission for `n8n-nodes-alga-psa`.
- (2026-02-17) Release publish revalidation (autonomous run at 00:07 UTC):
- Re-ran strict release sequence in one shell: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`, `npm whoami`, `npm view n8n-nodes-alga-psa version`, `npm -w packages/n8n-nodes-alga-psa publish --access public`.
- Local release gates all passed (`44` tests; build succeeded; dry-run tarball includes compiled `dist/` artifacts).
- Registry/auth checks still fail unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`; publish reports token expired/revoked and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Exit-code summary: `test=0 build=0 pack=0 whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with owner/publisher permission for `n8n-nodes-alga-psa`.
- (2026-02-17) Release publish revalidation (autonomous run at 00:11 UTC):
- Re-ran strict release sequence in one shell: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`, `npm whoami`, `npm view n8n-nodes-alga-psa version`, `npm -w packages/n8n-nodes-alga-psa publish --access public`.
- Local release gates all passed (`44` tests; build succeeded; dry-run tarball includes compiled `dist/` artifacts).
- Registry checks remain blocked and unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish remains blocked: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Exit-code summary: `test=0 build=0 pack=0 whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with owner/publisher permission for `n8n-nodes-alga-psa`.
- (2026-02-17) Release publish revalidation (autonomous run at 00:13 UTC):
- Re-ran strict release sequence in one shell: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`, `npm whoami`, `npm view n8n-nodes-alga-psa version`, `npm -w packages/n8n-nodes-alga-psa publish --access public`.
- Local release gates all passed (`44` tests; build succeeded; dry-run tarball includes compiled `dist/` artifacts).
- Registry checks remain blocked and unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish remains blocked: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Exit-code summary: `test=0 build=0 pack=0 whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with owner/publisher permission for `n8n-nodes-alga-psa`.
- (2026-02-17) Release publish revalidation (autonomous run at 00:15 UTC):
- Re-ran strict release sequence in one shell: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`, `npm whoami`, `npm view n8n-nodes-alga-psa version`, `npm -w packages/n8n-nodes-alga-psa publish --access public`.
- Local release gates all passed (`44` tests; build succeeded; dry-run tarball includes compiled `dist/` artifacts).
- Registry checks remain blocked and unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish remains blocked: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Exit-code summary: `test=0 build=0 pack=0 whoami=1 view=1 publish=1`.
- Decision: stop repeated publish retries in this environment until npm credentials/ownership are updated; additional local reruns provide no new signal.
- (2026-02-17) Release publish revalidation (autonomous run at 00:17 UTC):
- Local release gates passed in strict order: `npm -w packages/n8n-nodes-alga-psa test` (`44` tests), `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run` (tarball includes compiled `dist/` artifacts).
- Registry checks remain blocked: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish remains blocked: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports `Access token expired or revoked` and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Exit-code summary: `test=0 build=0 pack=0 whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with owner/publisher permission for `n8n-nodes-alga-psa`.
- (2026-02-17) Release publish revalidation (autonomous run at 00:19 UTC):
- Re-ran release checks in sequence: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`; all passed (`44` tests) and dry-run tarball includes `dist/` artifacts.
- Registry/auth state is unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish remains blocked: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports token expired/revoked and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Auth-context check: `env | rg -i '(^npm_|_npm|token)'` shows no alternate npm auth env var; `~/.npmrc` contains a configured npm token entry, but it is currently invalid for `whoami`/publish (token redacted).
- `F030`/`T046` remain blocked on refreshed npm credentials with owner/publisher permission for `n8n-nodes-alga-psa`.
- (2026-02-17) Release publish revalidation (autonomous run at 00:21 UTC):
- Local release gates still pass in order: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run` (`44` tests; dry-run tarball includes compiled `dist/` artifacts).
- Registry/auth checks remain blocked: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`.
- Publish attempt remains blocked: `npm -w packages/n8n-nodes-alga-psa publish --access public` reports token expired/revoked and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Exit-code summary: `whoami=1 view=1 publish=1`.
- `F030`/`T046` remain externally blocked pending refreshed npm credentials with owner/publisher permission for `n8n-nodes-alga-psa`.
- (2026-02-17) Release publish revalidation (autonomous run at 00:22 UTC):
- Re-ran strict release sequence in one shell: `npm -w packages/n8n-nodes-alga-psa test`, `npm -w packages/n8n-nodes-alga-psa run build`, `npm -w packages/n8n-nodes-alga-psa pack --dry-run`, `npm whoami`, `npm view n8n-nodes-alga-psa version`, `npm -w packages/n8n-nodes-alga-psa publish --access public`.
- Local release gates all passed (`44` tests; build succeeded; dry-run tarball includes compiled `dist/` artifacts).
- Registry/auth checks remain blocked and unchanged: `npm whoami` => `E401 Unauthorized`; `npm view n8n-nodes-alga-psa version` => `E404 Not Found`; publish reports token expired/revoked and returns npm `E404` permission/not-found for `n8n-nodes-alga-psa@0.1.0`.
- Exit-code summary: `test=0 build=0 pack=0 whoami=1 view=1 publish=1`.
- Decision: `F030`/`T046` remain externally blocked until a valid npm token with owner/publisher rights for `n8n-nodes-alga-psa` is configured.