EternaJS Release Notes

From EteRNA WiKi
Revision as of 23:25, 13 December 2019 by LFP6 (Talk | contribs)

Jump to: navigation, search

Version numbers are in the format <major>.<minor>.<patch>. The major version number is incremented when a release contains revolutionary features, significant interface changes, significant code refactoring, or once cumulative minor updates amount to one of this. The minor version number is incremented when a release contains new features, notable enhancements, and significant but contained refactoring. The patch version number is incremented in releases where only bugfixes are made.


v1.2.3 (2019-12-07)

Bug Fixes

  • Fix get_tracked_indices API function, which was rendered nonfunctional in v1.2.2

v1.2.2 (2019-12-06)


  • Make the base markers' thickness be proportional to their radius, and make it so they aren't re-rendered when moved/zoomed, improving their performance

v1.2.1 (2019-12-01)

Bug Fixes

  • Fix lab submit button from being nonfunctional

v1.2.0 (2019-11-24)


  • CustomLayout ("2.5-dimensional" representations), particularly useful for ribosome puzzles
  • Pasting sequences with index numbers at end of sequence allows solutions of 'partial' or sub-puzzles to be pasted into more complex puzzles
  • Ts get changed to Us when pasting sequences
  • Comma hotkey for low graphics mode


  • Update load screen messages
  • Improve base rope rendering


  • Build the energy models straight from source plus patch files
  • Dependency updates


  • Additional development and deployment info in the README

v1.1.6 (2019-10-30)

Bug Fixes

  • Fix crash and improper behavior in multistrand puzzles caused by restricted highlights being applied across all states, fix highlight location in natural mode
  • Fix restricted sequence highlights when multiple highlights are desired (reworked HighlightBox to accumulate highlights and take type at initialization)

v1.1.5 (2019-10-29)

Bug fixes

  • Fix crash in puzzles with MinimumAnyPairConstraint

v1.1.4 (2019-10-18)

Bug Fixes

  • Fix constraint names that weren't properly set, causing (early) tutorials to fail and the constraints to not work

v1.1.3 (2019-10-17)

Bug Fixes

  • Fully resolve issues with null script inputs (resolving a rare crash in the ribosome POTW)

v1.1.2 (2019-10-16)

Bug Fixes

  • Fix reversed oligo constraint
  • Fix oligo starting indices generated by UndoBlock.reorderedOligosIndexMap, fixing shape constraints failing for oligo puzzles
  • Fix eternascript handling of null input value, again (resolving a rare crash in the ribosome POTW)

v1.1.1 (2019-10-04)

Bug Fixes

  • Fix MultiStrandConstraint crash with hidden oligos
  • Fix display of OligoUnbound constraint showing as bound
  • Fix icon drawing artifacts in all BindingsConstraints
  • Remove puzzleInfo parameter passed to scripts

v1.1.0 (2019-09-27 - Cumulative)

This release contains all fixes and improvements prior to regular tracking of deployments/creation of release notes


  • Implement explosion factor for puzzles with overlap
  • Explosion factor hotkeys
  • Split LinearFold into V and C varients
  • Implement LinearFold structure energies, prevent erronious output from LinearFold per older builds
  • Energy delta
  • Simple graphics mode
  • Add colored marker API
  • Add support for multi-colored base markers
  • Load screen blurbs
  • BaseRope


  • Lower margins on the design browser when the window is smaller
  • Explosion factor button delta 0.05 -> 0.25
  • Add LinearFold to model rotation
  • Improved mutation constraint box
  • Add tag in puzzle name for LFC/LFV
  • Disable LFC
  • Delta label Native -> Natural
  • Set -g2 in energy model compilation so that we get function names (the JS bootstrapping will get minified via webpack).
  • Patch to improve delta display lag
  • If no folder is defined in the puzzle settings, verify the last folder is valid, otherwise cycle to a valid one
  • Only redraw base markers if dirty
  • Puzzle info for constraint scripts
  • We haven't used Jeecache in years, don't tell users to wait for a puzzle to show
  • Prevent negative numbers in explosion factor
  • Use the sequence string when converting puzzle to JSON
  • Added validation to set_tracked_indices
  • Makes shift-tab go to the previous state
  • Fix highlight box strangely sharp corners

Bug Fixes

  • Hide structure input in puzzlemaker when settings is opened since they overlap
  • Fix total score update when not hovering over pose
  • Fix touch input
  • Don't panic in natural mode when going from oligo to no oligo.
  • Fix explosion factor buttons from getting beat out by the PoseField dragger
  • Don't panic since we apparently call a TextInputObject text set from within a valueChanged or something
  • Don't try and reassign explosion factor if input doesnt contain a number
  • Proper checks for usable engines + fix the delta again
  • Fix delta in puzzlemaker
  • Actually make delta work in both poseedit and puzzleedit
  • NuPACK can cofold
  • Fix delta for puzzles with oligos
  • Fix oligos in Vienna
  • Decouple strand label from aux info
  • Show PuzzleEdit structure field errors, don't panic on unbalanced parenthesis, pointer events on GamePanel, use fontweight in fake text input, use element padding to determine position in fake text input, update fake text input on text change, use fake text input for StructureInput
  • Apparently adding a hitarea to all panels isn't a good idea since that'll prevent children from getting events
  • Move flyout menus down a pixel (for easier hovering)
  • Load autosave even if sequence is specified
  • Wrap description and comments in data browser, make sure scrollbar shows up if needed
  • Scrollwheel capability for solution description/comments
  • Allow taps to open flyout menus
  • Set posefield hitarea
  • Render hint text as HTML
  • Reimplement PointerCapture correctly (capturing outside the given object), use it where appropriate, and make setting interactive explicit when creating a DisplayObjectPointerTarget. Hopefully resolves buttons not responding properly
  • Strand label should go away after the cursor leaves the strand
  • Actually hide RNABASE_CUT ("fake" bases denoting oligos)
  • Fix puzzlemaker failing to register max GC of 0
  • Localforage/IndexedDB powered save game system
  • Attempt to fix stuck base marks
  • Script interface is obnoxious
  • Don't show explosion factor in screenshots
  • Don't flip out if a non-number is in the explosion factor box and the +/- buttons are clicked
  • Prevent energy delta from overlapping when the primary energy has the molecule text
  • Fix energy delta in non-pip mode
  • Fix Eternascript parameter values with single quotes
  • Fix eternascripts where input has no value
  • UndoBlock.getOrderMap: minor bugfix from bad AS->TS translation
  • Fix Oligo Glue
  • Remove the gap background gap in some conditions

Chores, Refactoring, and Cleanup

  • Fix a couple typing issues
  • Drop lodash for ES6
  • Null checks are better than a try catch
  • Fix some reference stuff
  • Type fixes
  • Minor style fix
  • Update LinearFold repo files
  • Update CMake and bindings for new LinearFold version
  • Shift dev server port
  • Set gitattributes so that LF is used
  • Package bump
  • Package bump
  • Package security update
  • Switch development web server (something something JS politics)
  • Use new eslint typescript parser/plugin
  • Eslint autofix
  • Fix reference to old ts eslint plugin
  • Update eslint config
  • Couple style fixes
  • Package bump
  • Default exports, index files, and general import cleanup
  • Lint autofix
  • Fix code xref to GH permalink
  • Unify toolbars into one class
  • Clarify UndoBlock.getOrderMap (rename reorderedOligosMap)
  • Fix a bunch of import related stuff, imports in the same package shouldn't import from the index
  • Fix typing issues
  • Lint autofix
  • Syntax typo fix
  • Package bump
  • Improved/safer regex
  • We're using JS regex, not PCRE, and negative lookbehinds aren't well supported (or transformed by Babel), so use an alternate method for that instead
  • Lint fixes and general style improvements
  • Fix tests, auto run lint + typecheck + tests on commit
  • Package bump
  • Remove commented out portions of eslintrc
  • No index files for subpackages, decouple flashbang Button from Eterna by moving SoundManager into Flashbang
  • Add underscore prefix to internal fields
  • Directly access Flashbang.sound singleton in Sound
  • Class-based constraints (minus SCRIPT)
  • Move constraint implementations into subfolder
  • Temporary constraints aren't actually used for anything, remove them
  • ConstraintBar, integrate new constraint architecture with PoseEdit, constraint bugfixes + completed pairity
  • Constraint config should be readonly
  • Accidentally removed parameter set on boost constraint
  • Target conditions aren't in puzzlemaker either
  • Remove dead code
  • Reject promise if script preload fails
  • More dead code
  • runPendingScript -> runScriptInternal, delegating pending script/script lock stuff to maybeRunNextScript
  • Even more dead code
  • Removed the Booster.ts callback and markRadius setting
  • Remove console.log
  • moving getExtraBlurb and blurbs to LoadingMode.ts. allow (centered) multiline blurbs
  • synchronous -> requireSynchronous
  • runScript -> runScriptThroughQueue
  • ExternalInterface.runScriptSync: just throw an error on error, don't bother doing the weird error return thing
  • Package bump (with lint updates)
  • Use constraint bar in puzzlemaker, drop remaining old constraint stuff


  • Correct VLayoutContainer documentation
  • Update lib docs to account for LFC/LFV split
  • Note in lib readme about increasing node memory limit for debug builds
  • Correct comments - one things shouldn't be removed, a different thing thing should
  • Update to README with improved build instructions

v1.0.0 (2018-10-12)

Initial Release

Personal tools
Main page
Introduction to the Game