--- 2.23.4 2014/01/09

Engine
  - cf-zserver Xvfb uses font path on CentOS 5 and 6. CP-3680

Runtime
  - step to encode/decode JSON and (later) HTML entities CP-2621

--- 2.23.3 2013/11/05

Engine
  - fix silly xmalloc due to integer overflow CP-3612
  - RPM: remove CF MP so in postun CP-3610
  - use repeated kill to stop stale Xvfb CP-3319
  - RPM: fix test in %post CP-3609
  - Avoid closing invalid FD CP-3607

--- 2.23.2 2013/10/31

Engine
  - Fix problem with session log files not being removed upon
    CF session completeion (in /tmp/cf-engine-metaproxy). CP-3605
  - Package cf-engine with libmetaproxy5 / metaproxy 1.4.0 CP-3606

--- 2.23.1 2013/09/18

CF proxy
  - cf-proxy shipped separately. It's now a Metaproxy module.

Engine
  - cf-zserver functionality part of Metaproxy module metaproxy_filter_cf.so.
    Daemon cf-zserver no longer part of the engine. CP-3259

Runtime
  - Break step CP-3439

--- 2.22.1 2013/08/21

Runtime
  - multiple conditionals in the Conditional step CP-3542
  - fix the missing URL in nav_to. CP-3538
    calculate the "constant" url when it is needed, and don't try to
    precalculate and remember it. Cleaned the code a bit.
  - Fixes loops in block model. CP-3534
  - Can't access dead object error message is becoming
    increasingly annoying in the Parse by XPattern step. CP-3519

Engine
  - clean up and improve logging CP-3544

--- 2.21.1 2013/07/26

Runtime
  - Quick-fix the interrupt-resume problem CP-3534
  
--- 2.21.0 2013/05/25

Engine
  - static auth file /auth.xml for better performance, CR-297

Cfproxy
  - Save also (new) Set-Cookie lines in the session
    The current cproxy still uses the old cookie lines, but the new
    one may at some point start reading the new lines instead, they
    have more data available (most notably path and expires).

--- 2.20.0 2013/03/19

Runtime
  - Block model--steps can be grouped into blocks. Includes several new
    steps to make use of this capability: 

    Conditional - Executes blocks depending if a condition is true
    For each - Iterates across objects matching a path, allowing a block
               to operate on them one at a time.
    Try catch - Provide a block a steps and a block to run should one fail.
    While - Loop over a block while a condition is true.
  - Conditionals use same construct in Assert and above steps
  - New step: Create container. Creates an array with an empty object one can
              then add properties to. For example, $.results without Xpattern.
  - Now can specify a key of '*' to match all properties. Useful to Transform
    all fields at once.
  - Enabled Copy step to copy objects rather than making references
  - Next..if deprecated

Engine
  - log level can be set at engine startup (CP-3336)

XPattern
  - Fixed some #text node processing (CP-3451)
  - Changed the precedence of | and ? so that matching continues on alternatives
    even if a node is optional. This is very rare (doesn't make any sense in
    real life) and should be harmless
  - Improved tests to detect when known failures suddenly start to work 

Cfproxy
  - Switching down to mod_proxy_html 3.0.1 (from 3.1.2). CP 3420
  - Drop mod_xml2enc, not needed with this mod_proxy_html
  - Improvements in character set handling
  - More precise cookie domain/path processing

Builder
  - Redesign of the XPattern designer (and xpatternMaker)
  - Can specify and store test values for $.session

--- 2.19.1 2012/11/20

Engine
  - Various fixes to Makefile to allow CF to be compiled with both
    pkg-config package libxul and libxul-embedding (XPCOM glue enabled).
  - New API method, dom_string, that returns current DOM tree.

CFrepo
  - The cfrepo has now it's own GIT repository "cf-repo", with all important
    branches, history and tags. The sub-directory cf/cfrepo was removed. CP-3359

Builder
  - XPattern designer improvements:
    Builds the designer inputs based on the existing pattern, not on the
    highlights on the screen. That way, it can detect grouping better.
    There are still some problems with groups, but the basics work.
    
    Now pays attention to a few more nodes, if they seem interesting. For
    now, interesting means that they had attributes that matched, but later
    we can make more of those.
    
    Also, displays more information on the history tabs 'Try' button, both
    number of hits, and of pieces, so you can distinguish between patterns
    that return the same number of hits.

--- 2.18.0 2012/10/31

CFrepo
  - display log output and screen shot even the 40 seconds 
    HTTP timeout was reached, CP-3026
  - /admin.pl: sort builder releases in reverse order, numerically, CP-3269
  - allow to upload statistics from a server to the cfrepo using
    POST file upload, EBSCOUSI-224

Engine
  - CF_CONNECTOR_PATH takes precedence over CF_BASE_PATH/connectors, CP-3257
  - CFWS: allow log to be fetched for active session, CP-3026
  - CFWS: allow screen_shot for active session, CP-3273
  - If CF is invoked in engine/src, CF_BASE_PATH is guessed if unset.
  - cfrun: guess for proper module. Tries to be clever in locating the
    module we want to run unit tests for. Tries first the plain module,
    then .../util/module, and then .../steps/module/module. Appends
    the trailing .js if not already there.
  - cf-zserver: make details task optional. If details task returns
    JSON {} it's probably not implemented and we return the brief record
    instead.
    RPM for cf-zserver uses yazgfs.xml.
    RPM: specifies fontpath for Xvfb. This is to change the default
    Xvfb font-path that includes xfs. It increases speed dramatically
    in cases where xfs is not installed.

--- 2.17.1 2012/09/07

CFrepo
  - fix number when connector names end with a digit, #CP-3190
  - Diff selected connector files in the repo, #CP-3201
  - cache connector list view, #CP-3225
  - Log engine version in test output, CP-3191
  - display repo test deduplication problems more prominent, CP-3215
  - The Connector Repo toroid now emits a <cclmap_localID> element
    ("u=localID") when the index-localID capability is present. Enables
    USI searching on localID, and fixes bug CP-3173.
  - test cases for /repo.pl xml/html output, CP-3228
  - test cases for cfws-test output with test2xhtml.xsl, CP-3228
  - Repository test of connectors should test failed Init, CP-2854
    Currently implemented on the command line online.

--- 2.16.1 2012/08/22

CFrepo
  - count stable/instable for production connectors too, #5833 
  - display link to reliability logs for today, yesterday and 7 days
  - Populate 'testingTerm' in the Torus with data from the connector, #5905
  - configurable CFWS HTTP timeout, 5840
  - generate connectors templates on the fly for EBSCO, #5825
  - display the history of the last results, not 
    just OK/Failed/Failed in the past. #5822
  - test framework for /toroid.pl output with xml schema, #4923
  - New statistic for alert.pl: "new broken" connectors which failed today,
    but worked in the past days.
  - display builder version number on /download.html, #7126
  - repo toroid allow direct access to subdb record profiles, #7157
  - toroid.pl: <udb> field: if a sub-database contains spaces, 
    ignore everything after including the spaces, #7157
  - toroid.pl: correct lastmod for single target
  - toroid.pl: use only the keyword from the first test, #7133
  - alert.pl: clickable links in email
  - report directory, username and password in an XML response, #7173 
  - ignore trailing slash in toroid URL, #7183
  - Show full connector, and/or metadata and/or capability flags, #5334
  - Add nojavascript to the connector bug template, #7216
  - allow to upload a connector temporary, and run the
    toroid script on it for ninja tests, #5906
  - toroid.pl: the terminating delimiter for sub-database is ' (', 
    not ' ' , see #CP-3064

Builder
  - no trailing "/" for homerepo, part of #5918
  - Repo button in builder should, if available, link to the
    page for the connector, #5863
  - If a task fails, we will dump the HTML DOM, #5899
    The reasoning is some times a connector behaves differently
    in the engine than in the builder.

CFruntime
  - implement workaround for old connectors which don't run 
    with sandbox'd script step, #4389

Engine
  - change diagnostic if load_info fails. If load_info fails Bib-1
    unspecified error is returned and additional info holds what message
    from the load_cf failure.  Previously Bib-1 database unavailable was
    returned with addinfo=db. The load_cf may return failure due to
    non-existing database, invalid XML, bad version etc.. This is now
    relayed. But non-existing database (connector file) is now a different
    diagnostic. This, however, does not happen often these days when
    connectors are most often fetched from the repo.

--- 2.15.1 2012/06/06

Engine
  - Build/Run with cf-xulrunner10 package (both RPM/Debian).

--- 2.14.5 2012/06/04

Engine
  - Fix engine creation failure/timeout for Metaproxy CF module.
    Bug was introduced in CF 2.14.4.

--- 2.14.4 2012/06/04

Engine
  - Close all files before fork of xulrunner. Fixes service reload
    that failed when CF Metaproxy module was in use.

--- 2.14.3 2012/06/03

Engine
  - Fix lock problem with Xvfb locks being unlocked prematurely
    by threaded CF process (such as Metaproxy CF module).

--- 2.14.2 2012/05/29

Engine
  - Use the system /tmp/.X<no>.lock files for determining whther an
    Xvfb is stale .

Builder
  - Fix a varname pulldown in case of no template.
    When creating a new value in xulHelper.selectMenulistItemWithValue,
    set both the display and the actual value. Without this, the code
    that created pulldowns for var names in parse_xpattern failed in
    a subtle way, when there was not template for variable names. The
    actual name was added to the pulldown, but only to the display side,
    so when generating patterns, they all got variable $undefined.
    This is a situation that should not occur, but Mike did run into
    it, so it was better to be fixed. Might have affected other borderline
    cases of pulldown menus as well.

Runtime
    Fix $.temp and $.session for 6 steps.

--- 2.14.1 2012/05/09

  - cf-zserver and Metaproxy CF module uses regular file locking for
    handling Xvfb lock files. Previously exclusive file-creat was used.
    This scheme ensures that regardless of how an instance of CF is
    terminated all locks are released (it's not possible to ensure that
    files are removed upon termination).
  - Xvfb fork closes all files (so that sockets and other things don't get
    inherited.
  - Log when cf-zserver stops.
  - Change log message when cf-zserver starts.

Runtime
  - New step, SimpleQuery, to mimic the query simplification done in cf-zserver
  - Reorganize lots of the query processing into a queryHelper module
  - Slightly tighter error checking in fullquery, to get in line with what
    cf-zserver (rpn_to_json) and the new simplequery do.
  - fullquerylimit has a better way of making endpoints directly into
    $.temp.startyear and $.temp.endyear. The old way ("Make range") is
    deprecated!
  - option to error on timeout instead of attempting to use DOM as is. Default
    for existing timeouts 30s+
  - One Transform step can now produce multiple outputs.

--- 2.13.5 2012/04/19

CF proxy
  - Proxy uses new scheme for URLs. New scheme:
     http://proxyhost/pre/fix/session/targethost/targetpath/...

--- 2.13.4 2012/04/18

CF proxy
  - Proxy uses new scheme for URLs. New scheme: proxyhost/session/...
    Old schema: session.proxyhost/... .

--- 2.13.3 2012/04/12

Engine
  - Set HOME env variable to that of CF_APP_PATH. Xulrunner becomes
    unstable if HOME is unset.

--- 2.13.2 2012/04/11

Engine
  - Interpret CF assert for search too.

--- 2.13.1 2012/04/11

CFRepo
  - cfws tests: "database" is not a search attribute for the engine, #5432
  - fix init parameters with colon are striped, #5447
  - remove characters which break test XML, #5449
  - If a connector.cfg don't exist, use the account setting
    from "share_status", #5534

Runtime
  - Fullquery now allows not to support phrase searches
  - ListqueryElement can now check if the element was ANDed to the rest of
    the query, and if it contains only ANDs.
  - fix set_value ignoring literal 0 values

Builder
  - null pointer exception if cfrepo browser tab was closed, #5445
  - Better capability flags in fullquery, fullquerylimit, listquery,
    listqueryelement, and map (#4819,#5325)
  - No cap.flag defaults for steps that are disabled (#5253)
  - fullquery examples (#5416)
  - Possible not to support phrases in fullquery (#5368)
  - Possible (and default) to fail on unknown indexes (#4457)
  - Better handling of defaults in fullquery (#5323)
  - Listqueryelement checks for and-only, and-to-previous (#5327)

--- 2.12.1 2012/03/15

Builder
  - New step anyallquery.
  - Re-rename the "renew" task "renew-loan".
  - pre-canned test (e.g always true), ability to skip to the end and
    logging number of steps to skip added to NextIf step

Engine
  - Fixes for the engine for Xulrunner 10 / Debian wheezy.

--- 2.11.2 2012/03/14

Updates for Xulrunner 10 . Build CF for CentOS 5.8 which includes
Xulrunner 10.

--- 2.11.1 2012/03/14

Builder
  - expose the local testing facilites through
    'Tools -> Connector Framework -> Local testing' menu
  - indent Alt steps and NextIf blocks in the step list

Runtime
  - Fullquery supports masking (wate?elon). Configuration with checkboxes
    instead of pull-down, to allow left and right truncation without allowing
    both truncation.
  - #4457: Fullquery now fails (optionally) with unknown fields
  - #5368: fullquery can refuse to support phrase searches
  - #5327: Listqueryelement can now fail if it sees things not ANDed to
    previous, or if there is anything but ANDs in the element.
  - #5175: fix issues with the test order string (init?,search,parse) parsing
    and execution in the tester module (targets builder/cfrun/cfws)
  - #4887: fix timezone related date issues in normalize_date
  - #5338: Collect CDATA nodes in XPattern, just like #text nodes.

Engine
  - Connector session parameters

CFRepo
  - #5255: strict test for task arguments (init, search)
  - #5307: work around a perl IO/XML::LibXML segfault bug
  - toroid.xsl: Removed the 2=102 attribute from emitted <cclmap_term>.
    It's causing mysterious problems for some fullquery steps in some
    connectors on some Engines.
  - #5303: do not set expire time. Let the caching client dictate
    the policy for caching connectors.
  - #5255: validate arguments for task init and search
    (valid proxy:port, trailing white spaces, exclusive fullquery)
  - #5347: avoid duplicated search queries in cfws-test.pl script
  - #5333 better back-links in test results, and always working back links
  - display checkbox to mass-copy connectors only if there is an action
  - keep a record of the test time in XML test output file (e.g. for history)

--- 2.10.1 2012/02/15

Engine manages Xvfbs on its own. This is enabled by setting
CF_DISPLAY_LOCK which specifies the directory for lock files . These
are managed by CF and so the directory must be writable by CF ; if
the directory does not exist, it will be created (parent must be
writable).

Runtime
  - New step, map
  - Fix bug 5108 - transform fails when undefined input and in concat
  - Fix bug 5100, WRT fullquery (undefined). Now fullquery detects
    properly if it gets a listquery or not, and calls the proper function.
  - Fix bugs 5137 and 5138, about capability flags, aliases, and defaults.
  - Add step fullquerylimit to extract query limiters from a fullquery
  - Improve fullquery to handle ranges, typically of years
  - Add flags to fullquery(1.1) to accept missing input query, append/concat

CFRepo
  - enable to configure zero result tests in /admin.pl
  - copy all connectors must use real copies, #5194
  - enable to configure --zero-result parameter per repo user
  - allow to disable automated zero hits test
  - fix nested fullquery zero hit test, #5219
  - perl test framework for CFWS.pm
  - display more info about a test (zero/non-zero hit test)
  - enable session sharing test in cfws-test.pl script
  - toroid: wrong variable cause reported a wrong last modified date, #5144
  - improve fullquery zero hits tests, #4716
  - enable to read compressed test output, #5058

--- 2.9.0 2012/01/18

cf-zserver:
  - Calls task 'details' when element-set F is received during.
    The argument to details is a parsed record from a previous parse
    step (from list of brief records). The 'details' task should
    navigate to details, parse the details and go back to the list
    of results.

Runtime
  - New step, http client, that can fetch GET and POST requests
  - Optionally expanding $.variables in set_result, so we can build
    XML requests with variables expanded.
  - New step, listquery, that takes a fullquery structure and rearranges
    it into a linear list of terms, separated by operators
  - New step, listqueryelement that extracts one (or more) elements from
    a listquery structure, based on which index they refer to.
  - Modified the fullquery step to accept listquery structures for its input,
    so it can be used to create query strings from listqueries.
  - Modified the log step so that JPath substitutions are done --
    e.g. message might by "logging in as {$.input.username}".
  - JPath substitutions also enabled for URLs in the nav_to step.
  - New Transform option to remove matches from source.

CFRepo
  - set XSLT output method="xhtml". This fix the "<br></br>" bug
  - display test url, #5030
  - display log of successful connector tests in repo, #5034
  - enable to read test history results from last days, with CGI
    parameter: &day=1
  - a single test failure is broken, not instable, #5055
  - test for zero hits: use an valid startyear/endyear/year value, #5051
  - enable to configure to disable an engine for testing at all,
    or to ignore the reliability statistics

CFRun
  - add script command to run JavaScript in an engine context
  - add write command to save connector

Cproxy
  - If the url contains /cproxydebug/, that is removed, and the debug flag
    is set. This way, you can always get debug info from the cproxy by using
    an url like http://cproxy.indexdata.com/cproxydebug/www.indexdata.com?...
  - RPM package now builds and include Apache 2 modules mod_proxy_html and
    mod_xml2enc. Debian has a system package libapache2-mod-proxy-html so
    for that distribution we don't need to compile these modules ourselves.
  - The RPM/Deb packages now provide a daily cron job for cleaning cf-temp
    files.

--- 2.8.6 2011/12/29

  - Engine proxy'ing also proxies SSL/https connections.

--- 2.8.5 2011/12/28

  - cproxy relays realm

  - capability flags for truncation used in RPN to JSON conversion

  - The Connector Repo Toroid now emits sortStrategy=type7 for each
    record, since this is always the correct way to do sorting with a
    CF target.  Fixes bug #4987.

--- 2.8.4 2011/12/21

Runtime
  - When matching a task to the available parameters, make sure
    that the init task matches always. #4973
  - ProxyUrl step will refuse to do any proxying, if the init
    task was called with the nocproxy argument.

Engine
  - honor new database argument nocproxy which disables proxx-url
    step.

CF Repo
  - Add checkboxes to select connectors to copy all, #4765
  - Turn the url field in the test results in to a link, #4956

--- 2.8.3 2011/12/09

Runtime
  - Fix the capability flag default values, broken by the data model

Engine
  - Fix SEGV that could occur in JSON to XML conversion, bug #4935.
  - Facilities to save a connector:  save_cf. Allows CF to upgrade
    connector files to new versions with capability flags, etc.

--- 2.8.2 2011/11/23

Engine
  - Fix x-args JSON string (no separator between multiple arguments)

CF Repo
  - Enable sub-database testing in the UI, #4823
  - Extract highest connector version for public repo, part of #4877
    This is needed for public connectors, which are not released

--- 2.8.1 2011/11/22

CF proxy
  - RPM package packged differently, so that config is in /etc/cf-proxy
    and README + proxy.pl is in /usr/share/cf-proxy . CF proxy also
    packaged for Debian.
  - Proxy relays proxy paramter - passed as proxyip to init task.

Runtime
  - ProxyUrl reports back the arguments it uses. Helps with matching
    a suitable init task for content connectors.

Engine
  - throw exception in engine construction if proxy is not of the form
    host:port . Translates to Temporary system error -- v2 addinfo
    'proxy: missing port' in Z39.50.

CF
  - Toroid can now correctly handle exceptions thrown by the system
    (e.g. file not found) which are thrown as strings rather than
    structures.  Allows proper reporting, rather than an internal
    error, when a symbolic link is broken.

--- 2.8.0 2011/11/17

Runtime
  - Fix a bug in data model that broke many steps and made 2.7.18 unusable.
  - Fullquery: fixed a bug in handling explicit no truncation (Truncation:not,
      @attr 5=100)

Engine
  - implement application info interface, to avoid JavaScript warnings
    during start up. Bug 2489.

Builder
  - Allow mutliple-item selection in the step list (also non-consecutive)
    and add ability to use Run, MoveUp, MoveDown, Cut, Copy and Disable/En
    on the whole selection
  - Better metadata editor, with capability flags on separate tabs
  - Recalculating flags just before saving or pushing to the repo,
    in case the user has changed something in the steps that affects
    flags.

CF Repo
  - Extend CF Repo testing to work with a specific subdatabase, #4823

--- 2.7.18 2011/11/10

  - Engine relays database x-args to init task.
  - cf-{squid,engine,zserver,xvfb} must be same version in RPM/Deb.
  - Added a function to copy all connectors from a repo to an
    other repo, #4754
  - The admin will see all repos which have the status "production" or
    "development". Repos with the status "disabled" or "testing" are ignored.
  - Testing with the CFWS test script: extract proxyip value from init
    task and submit it to the engine, #4760
  - Fullquery: Rudimentary support for proximity searches: The proximity
    search arguments are passed to the engine, and the fullquery step knows
    how to handle simple cases (ordered/unordered proximity within a given
    distance, always measured in words. Other operators, units, etc. are
    rejected)

--- 2.7.17 2011/10/18

  - Fix SEGV in engine that occurred for most unsupported queries

--- 2.7.16 2011/10/14

  - Updates for XULRunner 7.0 (Debian wheezy)
  - Exit task also executed between searches.
  - Many more capabilities defined in the Search template, and code
    added to the Set Value, Full Query and Parse By XPattern steps to
    populate these with reasonable defaults.
  - Bugfixes to the Connector Repo Toroid so that it correctly
    exports the serviceProvider, comment and various cclmap_* fields
    in the multiple records generated by connectors with
    subdatabases.  (Previously there were omitted.)
  - Connector Repo Toroid extended to export the space-separated list
    of capabilities as the new <capabilities> field.
  - Connector Repo Toroid's code to generate cclmap_* fields modified
    to work from capabilities rather than set_value steps.  This
    allows it to work correctly for both fullquery and old-style
    fielded query Search tasks.

--- 2.7.15 2011/10/04

Engine
  - Accept common Bib-1 attributes again. Version 2.7.13-14 rejected
    otherwise acceptable attributes.

--- 2.7.14 2011/10/03

Builder
  - Load raw XML displays the loaded XML
  - highlighting works also with XML
  - extract highlights the node it extracts from
  - The node selector works with XML documents
  - The node selector handles namespaces correctly

CFRepo
  - Bug 4667: Nightly tests use the right engine for customers
  - fix broken Non-production connectors test results links

Engine
  - Loosen the RPN checking a bit: 2=102 accepted again (wasn't in 2.7.13)
  - Fix a bad memory reference that could result in SEGV when diagnostics
    were thrown in query check (RPN to JSON).

--- 2.7.13 2011/09/27

Engine/Builder
  - New task, exit, called when a browser session terminates.

Engine
  - Updates for XULRunner 6.0 which is currently in use by Debian wheezy.

CFRepo
  - display mtime/lastModified of a connector file in each toroid record.
    This enable us to sort records by upload date, or to do a range search.
  - add cclmap_* rules for search parameters publisher, peerreviewed,
    fulltext, description and language.

Runtime
  - allow nodeSpecs to specify namespaces for XML documents, so far
    only in text mode like   xpath @@ ns1="..."
  - Use namespace definitions from the document, if none defined in
    the nodeSpec. This should be enough for many cases

--- 2.7.12 2011/09/16

Engine
  - allow proxy ports 1..65535 (was 81 . 65534 before)

Builder
  - add medium to search template

CFRepo
  - notifiy repo user when a CF connector has released, #4596
  - replace star with '+', #4575
  - support fullquery JSON object for connector tests, #4581
  - toroid: set Last-Modified header based on the newest connector, #4611

--- 2.7.11 2011/09/02

  - If proxy=xyz is given as a component in a rich database name
    passed to the cfzserver, it is now made available as a parameter
    to the Init task as well as being used for HTTP connections.  This
    is necessary so that its value is available to Proxy URL steps in
    the connector, enabling the ProxyIP value to be written to the
    Context Proxy session file.

--- 2.7.10 2011/08/25 RPM package only

cproxy
  - Fix cproxy - was broken in 2.7.8, 2.7.9.

--- 2.7.9 2011/08/24

Engine
  - fix proxy setting for Mozilla. Properties for setting up proxy were
    not set correctly . Also the format of proxy database argument is now:
    host:port.

Repo
  - switching between repo users as admin, #4553

XPattern
  - Allow #comment nodes inside ()-groups, part of bug #4554
  - More unit tests
  - Allow attributes for #comment nodes as well. Useful for regexps

--- 2.7.8 2011/08/23

RPM
  - ensure post rule is always executed so that location of
    /usr/lib/metaproxy4/modules is symlinked correctly

Debian package
  - Fixes for Debian wheezy/testing

Engine
  - caches credntials; to reduce repo traffix, bug #3670

cproxy
  - May use http proxy, if specified

Repo
  - may be configured to list visible repos, bug #4550

XPattern
  - allOptional now detects groups and alternatives
  - slight change in the greediness of #text node matching
  - better matching of empty subtrees
  - matching regexps in #text nodes , bug #4552

--- 2.7.7 2011/08/18

Engine
  - added sortkey parameter to search, extracting it from attr-7 stuff
    Bug 4410
  - a proxy may be used for cf-zserver/Metaproxy when fetching CF content.
  - fixed problem with small screen shots, #4438.

Repo Toroid
  - Some connectors show up by file name--not title--in MK Admin, #4205

--- 2.7.6 2011/08/01

Repo
  - display subdatabases in connector list with a star
  - allow to configure the maxVersion of the builder.xpi without changing
    the repo code
  - support external engines for reliabitly statistics and periodical testing, #4243

Repo Admin
  - allow spaces in comments about a user, #3639
  - display Engine URL (zurl)
  - highlight the current selected user in table (hoover)
  - enable to configure 'sharing status', default is "public"
  - add an option to enable/disable a repo user account, #4440
  - use different colors for repo user status (green: in production,
    red:disabled, black:development/testing


rpm packaging: Add proxy_html.conf

Fullquery: Get defaults from template, not hard-coded.

--- 2.7.5 2011/07/18

Fullquery step: Simplify UI and configuration

Cfproxy: Added cfg file in rpm package

--- 2.7.4 2011/07/07

Cproxy and ProxyUrl step

  Read a config file (currently /etc/cfproxy/cproxy.cfg) and use
  proxy hostname and session dir from there

Fullquery step

  Add a new step, fullquery, to produce advanced queries. Also modify
  the cf-zserver to pass the full Z39.50 query to the engine, and on
  to the fullquery step.

Repo

  Fix CF Repo Toroid output to properly handle connectors with
  sub-databases.  The sub-database name is now made part of the <id>
  (so that IDs are unique as they should always have been rather than
  being the same for all subdatabases), and also incorporated in the
  <displayName> so that they do not look like duplicates when listed
  in MKAdmin.


--- 2.7.3 2011/06/30

A builder 2.7.1 release with support for Firefox 5.x or later

--- 2.7.2 2011-04-29 (text includes 2.7.1, 2.7.0)


Runtime

  XPattern: Fixed handling of un-bound field (fields not associated
  with a name) inside of a complex data structure (Bug 4018, 2011-04-29)

  Fixed discrepancy between the handling of empty strings in the Builder
  and Engine -- it lead to discrepancies between the handling of connectors
  in the two places (Bug 4172, 2011-04-28)

  XPattern: Added negation to ANY node sequences. Example: ANY+ !BR will match
  a sequence of any nodes other than a BR. See also
  http://www.indexdata.com/node/211. (Bug 3408, 2011-04-08).

  Transform steps FAILING to find a match would change data, causing
  an alternate step (if supplied) to behave different than expected
  (Bug 4015, 2011-04-07).

  Page load detection issues fixed (Bug 3432, 2011-03-31).

  Extended metasearch template (search.cft) with additional fields
  (Bug 3974, 2011-03-29).


Builder

  XPattern: Made match highlighting optional in the XPattern builder. This is
  useful for the (obscure) case where you need to match on the background
  color when you are parsing results. The Builder's use of background colors
  to mark matches makes this confusing. A checkbox has been added
  (Bug 3619, 2011-04-13)

  XPattern:  Added a multi-line XPattern editing with live result highlighting
  function. Designed to make hand-crafting complex patterns (using Firebug
  or similar to discover HTML structure) much easier (Bug 3648,
  2011-04-01)

  Fix to constant-result step, to correctly set target field name.
  The target dropdown field in the step configuration pane was
  malfunctioning for this step (Bug 4079, 2011-03-23).


Repo

  Allow admin to set a password for new users (Bug 4100, 2011-04-08).

  Various changes: Auto-generated list of available
  builder releases; the alias 'latest' always point to the latest
  builder release; changed date display: last 24 hours -> today


Engine

  Fixed a possible directory traversal vulnerability -- would have
  allowed a client to access a connector file outside of the
  designated connector directory (Bug 4180, 2011-04-28).

  Fixed dependencies on YAZ, etc., in RPM package (Bug 4178, 2011-04-27).

  Change in default options for xvfb to reduce useless diagnostic
  output (Bug 4056, 2011-03-18).

  Stability issues observed for XVFB on RHEL 5.5. Created cf-xvfb.pl,
  a daemon which monitors and restarts a preconfigured number of xvfb
  processes.
