Skip to content

Develop#61

Merged
wzrdx merged 27 commits intomainfrom
develop
Mar 3, 2026
Merged

Develop#61
wzrdx merged 27 commits intomainfrom
develop

Conversation

@aledefra
Copy link
Collaborator

No description provided.

aidamian and others added 16 commits February 20, 2026 00:35
* fix: use remaining epochs threshold for usage warning

* fixes
* fix: avoid false 404 redirects in deeploy flows

* fixes
* feat: add tunnel setup alternatives for app params

* refactor: compact tunnel selector with custom option

* fix: restore missing cloudflare secrets helper text

* fixes

* fix: resolve tunnel dropdown select typing

* style: align tunnel refresh control with selector

* fix

* fix
* feat: add target node info tooltip on job forms

* feat: add node info tooltip to spare nodes and color status icon

* refactor: dedupe node info tooltip logic

* fix: show unrecognized state instead of raw node info errors

* feat: prefetch node details on initial render

* fixes

* refactor: key node info lookup state by address

* fix: address unresolved PR review feedback on node info UX

* Update src/shared/jobs/target-nodes/nodeInfo.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix(auth): redirect to intended page after login

* fix(auth): harden next redirect validation

* fix(ci): avoid suspense bailout in auth redirects

* fix
* fix: confirm before leaving dirty job forms

* fix: address PR review comments for dirty form guard
Copilot AI review requested due to automatic review settings February 23, 2026 17:56
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request implements significant feature enhancements and improvements to the Deeploy dApp, primarily focusing on node address format updates, node information lookup, tunnel management, and unsaved changes protection.

Changes:

  • Updated R1 address format from 0xai${string} to 0xai_${string} with corresponding regex validation
  • Added node information lookup and status display for target/spare nodes with real-time validation
  • Implemented comprehensive tunnel selector with existing tunnel reuse capability in job deployment flows
  • Added unsaved changes guard to prevent accidental navigation away from forms with unsaved data
  • Enhanced job loading states with better error handling and missing job detection
  • Implemented login redirect functionality to return users to their requested path after authentication
  • Added OpenBao service (version 2.5.0) as a new deployable service option
  • Enhanced usage warning threshold logic to differentiate between devnet (15 days) and other environments (15 epochs)

Reviewed changes

Copilot reviewed 27 out of 28 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/typedefs/blockchain.ts Updated R1Address type definition to use 0xai_ prefix format
src/shared/projects/Usage.tsx Updated warning threshold calculation based on environment (devnet vs others)
src/shared/jobs/target-nodes/nodeInfo.ts New hook implementing node information lookup with abort controller management
src/shared/jobs/target-nodes/TargetNodesSection.tsx Integrated node info lookup with status display and improved clipboard functionality
src/shared/jobs/target-nodes/SpareNodesSection.tsx Added node info lookup for spare nodes with updated placeholder
src/shared/jobs/target-nodes/NodeInfoStatusPopover.tsx New component displaying node status, alias, and online state in a popover
src/lib/hooks/useUnsavedChangesGuard.ts New hook preventing navigation away from dirty forms
src/lib/hooks/useRunningJob.ts Enhanced with detailed status tracking and error state management
src/lib/api/oracles.tsx Updated to support both R1 and Ethereum addresses with proper query parameters
src/data/services.ts Added OpenBao service configuration
src/components/job/JobBreadcrumbs.tsx Added job ID display alongside alias
src/components/edit-job/JobEditFormWrapper.tsx Integrated unsaved changes guard and exposed dirty state
src/components/draft/DraftOverview.tsx Added callbacks for delete operation lifecycle management
src/components/create-job/steps/deployment/ServiceDeployment.tsx Refactored tunnel generation to return result for tunnel selector
src/components/create-job/steps/deployment/GenericDeployment.tsx Added tunnel generation support for generic deployments
src/components/create-job/sections/AppParametersSection.tsx Implemented tunnel selector with existing tunnel fetching and selection
src/components/create-job/JobFormWrapper.tsx Integrated unsaved changes guard for job creation flow
src/components/create-job/JobFormHeader.tsx Added cancel callback support
public/services/openbao-color.svg Added OpenBao service logo
app/(public)/login/page.tsx Implemented secure redirect logic after authentication
app/(protected)/protected-layout.tsx Added current path to login redirect for post-auth navigation
app/(protected)/deeploys/project-draft/[projectHash]/page.tsx Added redirect suppression logic to prevent race conditions during deletion
app/(protected)/deeploys/job/[jobId]/page.tsx Enhanced error handling with detailed error display
app/(protected)/deeploys/job/[jobId]/extend/page.tsx Added error state handling for missing/failed job loads
app/(protected)/deeploys/job/[jobId]/edit/page.tsx Integrated unsaved changes guard with proper job error handling
.github/workflows/pr_lint_build.yml Added CI workflow for linting and building on pull requests
.codex/environments/environment.toml Added Codex environment configuration
package.json Version bump from 1.1.5 to 1.5.2
Comments suppressed due to low confidence (1)

src/shared/projects/Usage.tsx:2

  • There are extra spaces in the import statement. The import should be import { environment } instead of import { environment }.
import {  environment } from '@lib/config';

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings February 23, 2026 18:14
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.

Copilot AI review requested due to automatic review settings February 23, 2026 18:16
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.

Copilot AI review requested due to automatic review settings February 24, 2026 10:28
@aledefra aledefra review requested due to automatic review settings February 24, 2026 10:28
Copilot AI review requested due to automatic review settings March 2, 2026 11:36
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.

Copilot AI review requested due to automatic review settings March 3, 2026 10:10
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 30 out of 32 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (6)

src/components/create-job/sections/AppParametersSection.tsx:209

  • When tunneling is toggled off (value === BOOLEAN_TYPES[1]), the form clears tunnelingToken but does not clear the associated tunnelURL (via onTunnelUrlChange). This can leave a stale tunnelURL in the form data, and JobFormWrapper persists data.tunnelURL for service jobs even if tunneling is later disabled. Consider calling onTunnelUrlChange?.(undefined) (and/or explicitly clearing the tunnelURL field) in this branch so the submitted draft doesn't keep an outdated tunnel link.
                                    if (value === BOOLEAN_TYPES[1]) {
                                        setSelectedTunnelId(CUSTOM_TUNNEL_OPTION);
                                        setValue(`${baseName}.tunnelingToken`, undefined);
                                        clearErrors(`${baseName}.tunnelingToken`);
                                    }

src/shared/projects/Usage.tsx:2

  • There is an extra space in the named import (import { environment } ...). This looks like a formatting typo and can cause lint/style violations; please format it as a normal named import.
    src/data/TODO_SERVICES.md:27
  • The misp service image is pinned to the latest tag, which is a mutable reference and creates a supply‑chain risk: if the upstream image for latest is compromised or changed unexpectedly, your deployment will automatically run untrusted code with access to your database and other secrets. To reduce this risk, pin the image to a specific version tag or immutable digest (e.g., a fixed release version) and update it explicitly as part of your deployment process.
    image: ghcr.io/misp/misp-core:latest  # Or misp/misp-web:latest

src/data/TODO_SERVICES.md:138

  • The misp-core service image defaults to the latest tag via CORE_RUNNING_TAG, which is a mutable reference and introduces a supply‑chain risk: if the latest image is ever compromised or replaced upstream, your deployment will silently pull and run that code with access to MISP data and credentials. Prefer pinning this to a specific, vetted version tag or immutable image digest and updating it through a controlled release process.
    image: ${REGISTRY_MIRROR_URL:-}ghcr.io/misp/misp-docker/misp-core:${CORE_RUNNING_TAG:-latest}

src/data/TODO_SERVICES.md:372

  • The misp-modules service image is configured to use ${MODULES_RUNNING_TAG:-latest}, so by default it pulls the mutable latest tag, which creates a supply‑chain risk if that tag is compromised or changed without your control. To harden deployments, pin this image to a specific, trusted release tag or immutable digest and only update it deliberately as part of your release process.
    image: ${REGISTRY_MIRROR_URL:-}ghcr.io/misp/misp-docker/misp-modules:${MODULES_RUNNING_TAG:-latest}

src/data/TODO_SERVICES.md:398

  • The misp-guard service image also defaults to ${GUARD_RUNNING_TAG:-latest}, meaning it will pull the mutable latest tag and can silently run untrusted code if that tag is ever compromised or replaced upstream. Pin this image to a specific, vetted version tag or immutable digest to avoid unexpected image changes and reduce supply‑chain compromise risk.
    image: ${REGISTRY_MIRROR_URL:-}ghcr.io/misp/misp-docker/misp-guard:${GUARD_RUNNING_TAG:-latest}

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@wzrdx wzrdx merged commit 43d8133 into main Mar 3, 2026
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.

4 participants