Skip to content

integrate and harden useful upstream patches#193

Closed
mylogmia wants to merge 16 commits into
synthetic-sciences:mainfrom
mylogmia:agent/integrate-useful-upstream-patches
Closed

integrate and harden useful upstream patches#193
mylogmia wants to merge 16 commits into
synthetic-sciences:mainfrom
mylogmia:agent/integrate-useful-upstream-patches

Conversation

@mylogmia

Copy link
Copy Markdown

Summary

This integrates the useful upstream PR backlog into one validated branch, while fixing conflicts and correctness gaps found during review.

Validation

  • bun test from backend/cli: 1156 passed, 1 intentionally skipped, 0 failed
  • root bun run typecheck: 7/7 packages passed
  • bun run build from frontend/workspace: passed
  • English/Chinese dictionaries: 1448/1448 keys, no missing or extra keys
  • NMR end-to-end run: synthetic 1H spectrum ranked ethanol first and produced PNG, CSV, JSON, and Markdown artifacts
  • Prettier and git diff --check: passed
  • pre-commit gitleaks scan: no leaks found

The JavaScript SDK was not regenerated because this patch does not change the generated SDK schema or route surface.

Aayam Bansal (aayambansal) and others added 16 commits July 8, 2026 17:49
The wrapper masked a signal-killed child (spawnSync status === null) as a
clean exit 0. A subprocess killed by SIGINT/SIGTERM/SIGKILL therefore looked
successful to callers and CI. Report failure using the shell convention
128 + signal number when status is null and a signal is present, and fall
back to exit 1 for the no-status/no-signal case.
Add NMR compound inference skill for 1D 1H/13C spectrum analysis.
Uses nmrglue for processing Bruker/NMRPipe/text data, generates
spectrum plots and peak tables, and compares against BMRB, HMDB,
SDBS, and nmrshiftdb2 reference libraries.

- SKILL.md with full OpenScience frontmatter
- scripts/nmr_candidate_report.py: evidence package generator
- references/standard-libraries.md: library targets and comparison rules
Bumps the actions group with 4 updates: [github/codeql-action/init](https://github.com/github/codeql-action), [github/codeql-action/analyze](https://github.com/github/codeql-action), [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) and [actions/stale](https://github.com/actions/stale).


Updates `github/codeql-action/init` from 4.36.3 to 4.37.0
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@54f647b...99df26d)

Updates `github/codeql-action/analyze` from 4.36.3 to 4.37.0
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@54f647b...99df26d)

Updates `github/codeql-action/upload-sarif` from 4.36.3 to 4.37.0
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@54f647b...99df26d)

Updates `actions/stale` from 10.3.0 to 10.4.0
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](actions/stale@eb5cf3a...1e223db)

---
updated-dependencies:
- dependency-name: github/codeql-action/init
  dependency-version: 4.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: github/codeql-action/analyze
  dependency-version: 4.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: actions/stale
  dependency-version: 10.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
… regress_out (synthetic-sciences#102)

Complements the thread-cap already in main (pythonThreadCapEnv) with the axes it
doesn't cover:

- Reap orphaned workers: python/R kernels now spawn detached (own process group)
  and every kill path (timeout, abort, idle-reap, shutdown, process-exit) routes
  through Shell.killTree/killTreeSync, so joblib/BLAS worker children die with the
  kernel instead of lingering and thrashing swap. Group kill only fires when the
  child leads its own group (verified via /proc on Linux).
- Bound concurrent compute subagents (biology/ml/physics) with an abort-aware
  counting semaphore (OPENSCIENCE_MAX_COMPUTE_SUBAGENTS, default 2): N parallel
  subagent kernels each holding a dataset copy no longer sum to an OOM. A cancelled
  subagent still queued unblocks immediately and leaks no slot.
- Scanpy template: size regress_out's n_jobs to the worker copies that fit in RAM
  and skip (with guidance) only when even one won't fit; warn on a dense adata.X.
  regress_out stays enabled by default.

Full suite green (1138 pass).
Constraint: OpenScience exposes subscription access as openai-codex, not plain openai.
Rejected: Treat all OpenAI OAuth sessions as Codex | plain OpenAI OAuth must not inherit Codex request shaping.
Confidence: high
Scope-risk: narrow
Directive: Keep subscription-specific request shaping keyed to openai-codex OAuth credentials.
Tested: bun test test/session/llm.test.ts test/plugin/codex-401-retry.test.ts test/plugin/codex-refresh.test.ts test/session/billing-gate.test.ts; bun run typecheck; live streamText smoke openai-codex/gpt-5.4-mini returned openscience-codex-ok.
Not-tested: Browser interactive connect callback completion; live smoke reused existing Codex OAuth refresh token.
The science agents' prompts carry a static Skill Routing Table (ml.txt,
biology.txt, physics.txt) that names skills like peft/unsloth. When those
skills aren't loaded in the current environment the model still routes to
them and skill({name}) fails with "not found". Inject a runtime
<available-skills> section built from the real loaded registry (permission
-filtered, grouped by category) so routing targets skills that resolve;
when none are loaded, tell the model not to call the skill tool. The
curated tables stay intact as guidance.
Complements main's cross-turn text doom-loop guard, which can't see a model that
re-emits the same block many times WITHIN one turn (only one finished turn exists,
so the 3-turn cross-turn check never fills). Observed live with a local qwen3:4b
re-printing the same research-state block ~7x in a single generation.

Detect a repeated tail as the assistant text streams (throttled, O(window),
bounded to the last 8KB) and break the stream — disposing the iterator aborts the
underlying request so the model stops instead of spinning. The aborted turn is
finalized as 'stop' so the outer loop ends cleanly.

Full suite green (1135 pass).
@vercel

vercel Bot commented Jul 16, 2026

Copy link
Copy Markdown

JinHyeok Jeong (@Kesta-bos) is attempting to deploy a commit to the InkVell Team on Vercel.

A member of the Team first needs to authorize it.

@mylogmia mylogmia closed this Jul 16, 2026
@mylogmia mylogmia deleted the agent/integrate-useful-upstream-patches branch July 16, 2026 02:56
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.

9 participants