Fetching contributors…
Cannot retrieve contributors at this time
210 lines (154 sloc) 9.27 KB


  • Fix focusing an agenda-group without rules #158
  • Fix bump uglify version for security purpose #196
  • Fix callback compile #127

0.4.3 => 0.4.2


  • Fix import nools files under Windows #192
  • Fix memory leak #156
  • Fix compile callback not called when options provided #127
  • Fix parsing error with a constraint value set to null or boolean #157


  • Fixed issue with CustomConstraint not binding this.assert to this. #146 - @raymondfeng
  • Added more tests for custom constraints
  • Updated readme to include docs about custom constraints.


  • Fix for issue #122 referencing defined class within another defined class
    • Also fixes accessing scoped functions within a defined class.
  • Fix for issue #119 window was removed from the nools.js file now it is called in the current scope of this.
  • Allow session.halt even for match() #143 - @raymondfeng
    • Now if you call halt() even if you did not call matchUntilHalt()
  • Now you can use a function as a constraint (Only applies to rules defined programatically) #142 - @raymondfeng
  • You can now define types using scope #142 - @raymondfeng
  • Fix for issue, is the dsl you do not have to escape \ characters #123


  • Added new === and !== operators #110
  • Fix for issue #109
  • Updated Readme
    • Updated agenda groups examples for #105
    • Changed class names not to match property names in readme #99


  • Added new getFacts method to allow for querying of facts currently in session. #52;
  • Added indexing on comparison operators (i.e. >, <, >=, <=).
  • Updated documentation.
    • Added new section about retrieving facts from a session.
    • Created new section for async actions to address #94


  • Performance Upgrades
    • Added BetaNode indexing
    • Abstracted out JoinNode to extend BetaNode (Prevents the checking of constraints if there are not any constraints to check)
    • Refactored BetaNetwork
    • Created a new Memory Class to encapusulate left and right memory for BetaNodes
  • Added new exists logic operator to check for existence of fact (opposite of not)


  • Added support for js expression in the from node addressing issue #86
  • Enhanced JoinReferenceNode performance in the default assert case where there are no references to left or right context.
  • Added ability to use or and not in tandem to check for the non-existence of multiple facts. #85
  • Fixed issue with from node where an undefined property would be tested. #89
  • You can now define a custom resolution strategy.
  • Compiling nools files now supports the from modifier.
  • Documentation updates
    • Updates about from node support with js values.
    • New documentation about using or and not constratints together.
    • Updated or documentation to include a three constraint example.

0.2.0 / 2013-10-14

  • Nools now supports true modify!!!
    • This is a major leap forward for nools opening the door for more complex actions and expressions in the rules.
  • Added support from for from conditions in the rhs.
  • Fixed issue #81.
  • Fixed issue #82.
  • Added new sudoku web example.
  • Added Send More Money benchmark see #78.


  • Fixed issue with async actions and early match termination.


  • Fixed issue #68 where matchUntilHalt uses a lot of CPU
  • Fixed issue #45, now compiled rules support or constraint with more than 2 inner constraints.
  • Added new feature to address #76, now you can use deleteFlows to dispose all flows, or use hasFlow to check if a flow is already registred with nools.


  • Fixed issue in node v0.6 where path.sep is not found.


  • Fixed issue #73 where requires in dsl would treat a file with a . character as a path instead of a module.


  • Added ability to import other nools files to create composible rules files #58
  • When using global to require other files you can now require other files relative to the nools file
  • Added uglify-js as a dependency instead of devDependency
  • Fixed issue #61 where transpile would not properly escape " character.
  • Fixed issue #66 and #67 where regular expression matching was too greedy.
  • Fixed issue #62 where constraints with a " character would produce invalid javascript when transpiling.
  • Fixed issue #69 where rules names with a ' character in a rule would produce invalid javascript when transpiling.
  • Added option to beautify generated code


  • Fixed issues where notNode was not retracting all contexts when a fact was retracted
  • Fixed issue 50 in compiling rule with or condition
  • Fixed issue 53 in constraints with hash refrences.
  • Merged pull request 49
  • Added tests for logicalNot and truthy statements

0.1.8 / 2013-08-14

  • Fixed scoping issue where scoped variables defined in compile were not available to defined classes or functions.

0.1.7 / 2013-06-25

  • Fixed constraint parser to not evaluate functions that have the same name as operators as operators.
  • Fixed the getMatcher to properly return an equality expression for constraints that do not have an explicit equality
  • Added new diganosis example
  • Changed Fibonacci example to support larger number

v0.1.6 / 2012-06-17

  • Fixed issue with the use of next in async actions

v0.1.5 / 2013-06-17

  • More Examples
  • Changed nools compile to transpile to Javascript!
  • Better performance
    • Simple Benchmark: Before ~600ms, Now ~350ms
    • Manners Benchmark (32): Before ~10s, Now ~4sec
    • WaltzDB: Before ~30sec, Now ~15sec

v0.1.4 / 2013-05-25

  • Added new agenda-group (#29)
  • More documentation
    • Salience
    • Agenda Groups
    • Auto-focus
    • Scope
  • Cleaned up agenda and made more modular

v0.1.3 / 2013-05-24

  • Fixed memory leak with FactHashes for the agendas

v0.1.2 / 2013-05-24

  • Removed unneeded calls to .then to address performance degredation (#30)

v0.1.1 / 2013-05-23

  • Updated grunt
  • Fixed nextTick issues for node v0.10 #32
  • Added ability to remove a defined flow from nools. #31 #22
  • Added ability to use getDefined on externally defined fact types. #23
  • Added support for block comments in dsl. #27 @xmltechgeek
  • New globals feature in dsl. #26 @xmltechgeek
  • Fixed all jshint issues
  • Rebuilt nools.js and nools.min.js
  • Added more tests for new globals feature

0.1.0 / 2013-02-27

  • Browser support!
  • Support for compiling nools dsl from string source or path
  • New reactive mode when running a flow
  • Support for emitting custom events from rule actions
  • Can now include $ in your constraint variables
  • Added support for %, !=~, notIn, and notLike in constraints
  • Increased performance
    • Waltdb Bench (Before ~60000ms, Now ~25000ms)
    • Manners (Before ~2000ms, Now ~500ms)
  • Better error reporting if action has reference error
  • Better fact retraction in not and join nodes
  • You can now use properties from object in in expressions.
  • Refactoring of node types into seperate files
  • Support for specifying a scope when compiling which can be used to expose methods and objects to be used in constraints and actions.
  • More Examples (requirejs, browser, conways game of life)
  • More tests and better coverage on or and not nodes.

0.0.5 / 2012-09-10

  • Fix for issue #13 where identifiers were not gathered in property chains that contained functions.

0.0.4 / 2012-09-10

  • Added travis CI

0.0.3 / 2012-09-06

  • Updates for repo rename
  • code clean up

0.0.2 / 2012-05-22

  • Increased performance
    • Manners benchmark 800%
  • Added Parser for nools DSL
  • More helper functions
  • Updated readme